Learn R Programming

raster (version 1.8-3)

stackApply: Apply a function on subsets of a RasterStack or RasterBrick

Description

Apply a function on subsets of a RasterStack or RasterBrick. The layers to be combined are indicated with the vector indices. The function used should return a single value, and the number of layers in the output Raster* equals the number of unique values in indices. For example, if you have a RasterStack with 6 layers, you can use indices=c(1,1,1,2,2,2) and fun=sum. This will return a RasterBrick with two layers. The first layer is the sum of the first three layers in the input RasterStack, and the second layer is the sum of the last three layers in the input RasterStack. See calc if you want to use a function that returns multiple layers based on _all_ layers in the Raster* object.

Usage

stackApply(x, indices, fun, filename='', na.rm=TRUE, ...)

Arguments

x
A Raster* object
indices
A vector of length nlayers(x) containing all integer values between 1 and the number of layers of the output Raster*
fun
A function that returns a single value, e.g. mean or min, and that takes an 'na.rm' argument
na.rm
Logical. If TRUE, NA cells are removed from calculations
filename
Character. Optional output filename
...
Additional arguments. See below, under Methods

Value

  • A new Raster* object, and in some cases the side effect of a new file on disk.

Methods

The following additional arguments can be passed, to replace default values for this function rll{ format Character. Output file type. See writeRaster datatype Character. Output data type. See dataType overwrite Logical. If TRUE, "filename" will be overwritten if it exists progress Character. "text", "window", or "" (the default, no progress bar) }

See Also

calc, stackSelect

Examples

Run this code
r <- raster(ncol=10, nrow=10)
r[]=1:ncell(r)
s <- brick(r,r,r,r,r,r)
s <- s * 1:6
b1 <- stackApply(s, indices=c(1,1,1,2,2,2), fun=sum)
b1
b2 <- stackApply(s, indices=c(1,2,3,1,2,3), fun=sum)
b2

Run the code above in your browser using DataLab