The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
CRAN resubmission. No user-visible changes to package functionality.
calculate_geometric_attributes() is now wrapped in
\donttest{} instead of \dontrun{}, and
operates on two features so that the cluster code path is genuinely
exercised.parallel::detectCores().Accuracy improvements for geodesic workflows. Values of
reock, elongation_rectangle and
maxlength may change for lon/lat input, especially
at high latitudes:
reock) and minimum
bounding rectangle (elongation_rectangle) are now computed
in a local Lambert azimuthal equal-area projection centred on each
feature, instead of in raw lon/lat degrees. GEOS hull constructions are
planar, so minimizing in degree space distorted the “minimum” geometry
wherever a degree of longitude is shorter than a degree of latitude. The
hull is measured back in the input’s CRS.maxlength (and the
distance/bearing outputs of
get_distant_points()) are now found by evaluating
all convex-hull vertex pairs geodesically in a single
vectorised terra::distance() call. The previous
rotating-calipers candidate search operated in planar coordinate space
and could miss the true geodesic maximum. The internal rotating-calipers
helper was removed.Performance and packaging:
calculate_geometric_attributes() gains a vectorised
fast path when only area, perimeter,
decimallongitude and/or decimallatitude are
requested: terra’s multi-feature methods are called once instead of
looping per feature.by_feature branches of calc_extent(),
calc_elongation() and get_distant_points() no
longer compute (and discard) the convex hull of the entire input
set.NAMESPACE now uses targeted importFrom()
declarations instead of blanket import(terra) /
import(methods); the two previously unqualified
subset() / aggregate() calls are now
terra::-qualified.Breaking changes to documented metric contracts:
bearing is now documented as an axial
orientation in [-90, 90] degrees: the maximum-length line is
always oriented from its southernmost to its northernmost endpoint, so
values outside that range were unreachable. 0 = north-south axis, -90/90
= east-west axis. Computed values are unchanged.northerness = cos(bearing) is now documented to range
in [0, 1]; negative values were unreachable.fractaldimension now follows the FRAGSTATS convention
2 * log(0.25 * P) / log(A) (McGarigal & Marks 1995,
doi:10.2737/PNW-GTR-351). Values change relative to the
previous 2 * log(P) / log(A), which could fall outside [1,
2] for small polygons.hole_area_pct now uses the gross area
(including holes) as denominator, matching its documentation.
Values change relative to the previous net-area
denominator.decimallongitude / decimallatitude are now
always in decimal degrees: the centroid is reprojected to EPSG:4326 when
the input CRS is projected. Previously, method = "cosine"
on a projected CRS returned metres under these column names.Other fixes and improvements:
method = "cosine" as
“for planar CRS”. geo, haversine and
cosine are all lon/lat great-circle methods in
terra::distance(); on a projected CRS the argument is
ignored and distances are Cartesian.calc_elongation() computes rectangle side lengths
explicitly from the unique corners in ring order, instead of relying on
undocumented ordering of terra::crds() output, and returns
Inf for degenerate (zero-width) rectangles instead of
failing or dividing by zero.transform argument passed to
terra::expanse(); area is geodesic on lon/lat input and
Cartesian on projected input.num_holes is counted from the hole column
of terra::geom() instead of length() on the
fillHoles() result; num_polygons uses
nrow()."subscript out of bounds" error in
calc_extent(direction = <single>, output = "polygon", by_feature = TRUE).parallel in Imports (used by
calculate_geometric_attributes()).inst/CITATION now uses the installed package version
instead of a hardcoded one.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.