Apply a terra function that takes only a single layer and returns a SpatRaster to all layers of a SpatRaster
sapp.Rd
Apply to all layers of a SpatRaster a function that only takes a single layer SpatRaster and returns a SpatRaster (these are rare). In most cases you can also use lapply
or sapply
for this.
Or apply the same method to each sub-dataset (SpatRaster) in a SpatRasterDataset
Arguments
- x
SpatRaster or SpatRasterDataset
- fun
if
x
is aSpatRaster
: a function that takes a SpatRaster argument and can be applied to each layer ofx
(e.g.terrain
. ifx
is aSpatRasterDataset
: a function that is applied to all layers of the SpatRasters inx
(e.g.mean
- ...
additional arguments to be passed to
fun
- filename
character. Output filename
- overwrite
logical. If
TRUE
,filename
is overwritten- wopt
list with named options for writing files as in
writeRaster
Examples
s <- rast(system.file("ex/logo.tif", package="terra")) + 1
#SpatRasterDataset
sd <- sds(s*2, s/2)
y <- sapp(sd, mean)
z <- sapp(sd, \(i) 2 * mean(i))