Two SpatRasters are compatible (in terms of combining layers) if the
crs, extent and resolution are similar. In those cases you can combine
the SpatRasters simply as c(x, y)
.
This function compares those attributes informing of the results. See Solving issues section for minimal guidance.
compare_spatrasters(x, y, digits = 6)
SpatRaster objects
Integer to set the precision for comparing the extent and the resolution.
A invisible logical TRUE/FALSE
indicating if the SpatRasters are
compatible, plus an informative message flagging the issues found (if any).
On non-equal crs, try terra::project()
. On non-equal extent try
terra::resample()
. On non-equal resolution you can try
terra::resample()
, terra::aggregate()
or terra::disagg()
.
Other helpers:
is_regular_grid()
,
pull_crs()
# NOT RUN {
library(terra)
x <- rast(matrix(1:90, ncol = 3), crs = "epsg:3857")
# Nothing
compare_spatrasters(x, x)
# Different crs
y_nocrs <- x
crs(y_nocrs) <- NA
compare_spatrasters(x, y_nocrs)
# Different extent
compare_spatrasters(x, x[1:10, , drop = FALSE])
# Different resolution
y_newres <- x
res(y_newres) <- res(x) / 2
compare_spatrasters(x, y_newres)
# Everything
compare_spatrasters(x, project(x, "epsg:3035"))
# }
Run the code above in your browser using DataLab