Skip to contents

Compare two SpatRasters for (near) equality.

First the attributes of the objects are compared. If these are the same, a (perhaps small) sample of the raster cells is compared as well.

The sample size used can be increased with the maxcell argument. You can set it to Inf, but for large rasters your computer may not have sufficient memory. See the examples for a safe way to compare all values.

Usage

# S4 method for SpatRaster,SpatRaster
all.equal(target, current, maxcell=100000, ...)

Arguments

target

SpatRaster

current

SpatRaster

maxcell

positive integer. The size of the regular sample used to compare cell values

...

additional arguments passed to all.equal.numeric to compare cell values

Value

Either TRUE or a character vector describing the differences between target and current.

Examples

x <- sqrt(1:100)
mat <- matrix(x, 10, 10)
r1 <- rast(nrows=10, ncols=10, xmin=0, vals = x)
r2 <- rast(nrows=10, ncols=10, xmin=0, vals = mat)

all.equal(r1, r2)
#> [1] "Mean relative difference: 0.3858482"
all.equal(r1, r1*1)
#> [1] TRUE
all.equal(rast(r1), rast(r2))
#> [1] TRUE

# compare geometries 
compareGeom(r1, r2)
#> [1] TRUE

# Compare all cell values for near equality
# as floating point number imprecision can be a problem
m <- minmax(r1 - r2)
all(abs(m) < 1e-7)
#> [1] FALSE

# comparison of cell values to create new SpatRaster
e <- r1 == r2