Apply a function to a range of the layers of a SpatRaster that varies by cell. The range is specified for each cell with one or two SpatRasters (arguments
last). For either
last you can use a single number instead.
You cannot use single numbers for both
last because in that case you could use
subsetting the layers of a SpatRaster.
selectRange to create a new SpatRaster by extracting one or more values starting at a cell-varying layer.
# S4 method for SpatRaster rapp(x, first, last, fun, ..., allyrs=FALSE, fill=NA, clamp=FALSE, circular=FALSE, filename="", overwrite=FALSE, wopt=list())
SpatRaster or positive integer between 1 and nlyr(x), indicating the first layer in the range of layers to be considered
SpatRaster or positive integer between 1 and nlyr(x), indicating the last layer in the range to be considered
function to be applied
additional arguments passed to
TRUE, values for all layers are passed to
fun but the values outside of the range are set to
numeric. The fill value for the values outside of the range, for when
FALSE and the specified range is outside
1:nlyr(x) all cells are considered
NA. Otherwise, the invalid part of the range is ignored
TRUE the values are considered circular, such as the days of the year. In that case, if first > last the layers used are c(first:nlyr(x), 1:last). Otherwise, the range would be considered invalid and
NA would be returned
character. Output filename
filename is overwritten
list with named options for writing files as in
r <- rast(ncols=9, nrows=9) values(r) <- 1:ncell(r) s <- c(r, r, r, r, r, r) s <- s * 1:6 s[1:2] <- NA start <- end <- rast(r) start <- 1:3 end <- 4:6 a <- rapp(s, start, end, fun="mean") b <- rapp(s, start, 2, fun="mean") # cumsum from start to nlyr(x). return all layers r <- rapp(s, start, nlyr(s), cumsum, allyrs=TRUE, fill=0) # return only the final value rr <- rapp(s, start, nlyr(s), function(i) max(cumsum(i)))