Metric functions now return NA
in all cases where
they previously returned NaN
. This improves cross-platform
consistency; in particular, MacOS often returned NA
when
every other platform would return NaN
. (#63)
ww_multi_scale()
now handles classification and
class probability metrics better when called with raster arguments
(either to data
or to truth
and
estimate
):
ww_multi_scale()
will now convert truth
and
estimate
to factors before passing them to the metric set.
Thanks to @nowosad
for the report in #60 (#61).ww_multi_scale()
will convert truth
to a
factor and will pass estimate
as an unnamed argument.
(#62)ww_multi_scale()
will error. (#62)ww_multi_scale()
now warns if you provide
crs
as an argument to sf::st_make_grid()
via
...
. Grids created by this function will always take their
CRS from data
.
ww_multi_scale()
now throws an error if you pass
arguments via ...
while also providing a list of grids
(because those arguments would be ignored).
ww_multi_scale()
is now faster when
data
is an sf object, particularly when grids are created
by passing arguments to sf::st_make_grid()
(rather than
passing grids via grids
).
ww_multi_scale()
did not correctly handle grid
cellsizes with units. Units (set using the units
package)
are now respected.
ww_multi_scale()
using sf data always returned “1”
for truth and estimate counts. This was because counts were calculated
post-aggregation by mistake. Calculation order has been fixed, and these
counts should now be correct.
ww_build_neighbors()
(and by extent, every spatial
dependence metric) will no longer calculate neighbors for non-point or
non-polygon geometries.
Functions dealing with local Moran’s I and related p-values (both data frame and vector variants) now return unnamed vectors.
Added a new method to support passing a SpatRaster
to data
in ww_multi_scale()
, with
truth
and estimate
being indices used to
subset data
. This is a bit faster than passing
SpatRaster
objects to truth
and
estimate
, as extraction is only done once per grid rather
than twice, but does not easily support passing R functions to
aggregation_function
.
Metric functions now have better error messages including the name of the function the user called that errored, not the internal function that errored. Huge thanks to @EmilHvitfeldt for their PR (#40).
Data frame metric functions now guarantee that
.estimate
will be an unnamed vector.
The sf
method for ww_multi_scale()
is
now much faster (and more memory efficient).
Fixed the warning when ww_area_of_applicability()
calculates an AOA threshold of 0. It now includes “Did you accidentally
pass the same data as testing and training?” as a bullet.
Removed combination functions – ww_global_geary
,
ww_global_moran
, ww_local_geary
,
ww_local_moran
, ww_local_getis_ord
. Use
metric_set()
to combine functions instead.
Renamed ww_local_getis_ord_pvalue_vec()
and variants
to ww_local_getis_ord_g_pvalue_vec()
; this change allows
internal functions to work properly, and makes it easier for the output
to indicate if the p-value is associated with a g or g* value.
Yardstick metrics will no longer include geometry columns in their returns.
The na_action
argument to
ww_area_of_applicability()
has been replaced by
na_rm
, with a default value of FALSE
.
na_rm
is now TRUE
by default for
non-spatial-autocorrelation functions. NA values will cause
spatial-autocorrelation functions to fail with an error.
Added functions (primarily ww_multi_scale()
) and a
vignette for multi-scale assessment of model predictions.
Added functions to calculate metrics from Ji and Gallo (2006) and
Willmott (1981, 1982, 2012): ww_agreement_coefficient()
,
ww_systematic_agreement_coefficient()
,
ww_unsystematic_agreement_coefficient()
,
ww_unsystematic_mpd(),
, ww_systematic_mpd()
,
ww_unsystematic_rmpd()
, ww_systematic_rmpd()
,
ww_willmott_d()
, ww_willmott_dr()
,
ww_willmott_d1()
, ww_systematic_mse()
,
ww_unsystematic_mse()
, ww_systematic_rmse()
,
ww_unsystematic_rmse()
. Note that
ww_willmott_dr()
uses the version from Willmott (2012);
other implementations (sometimes called “d1r”) seem to use an unbounded
variant that I haven’t found a reference to support.
Changed a call in ww_area_of_applicability()
to use
FNN for nearest neighbors, rather than fields. This sped up prediction
by a lot.
Rewrote README and moved the old content to a new vignette on assessing the spatial dependency in model residuals.
Added a dependency on FNN.
Minimum version for dplyr has been bumped to 1.1.0
Added functions for automatically constructing nb
and listw
objects
Added functions for global and local Geary’s C values.
Added functions for local Getis-Ord G and G* values.
Added functions for global and local Moran’s I values.
Added a NEWS.md
file to track changes to the
package.