Standard arithmetic operators for computations with Raster* objects and numeric values. The following operators are available:
+, -, *, /, ^, %%, %/%
The input Raster* objects should have the same extent, origin and resolution. If only the extent differs, the computation will continue for the intersection of the Raster objects. Operators are applied on a cell by cell basis. For a RasterLayer, numeric values are recycled by row. For a RasterStack or RasterBrick, recycling is done by layer. RasterLayer objects can be combined RasterStack/Brick objects, in which case the RasterLayer is 'recycled'. When using multiple RasterStack or RasterBrick objects, the number of layers of these objects needs to be the same.
In addition to arithmetic with Raster* objects, the following operations are supported for SpatialPolygons* objects.
Given SpatialPolygon objects
x+y is the same as
union(x, y). For SpatialLines* and SpatialPoints* it is equivalent to
x*y is the same as
x-y is the same as
If the values of the output Raster* cannot be held in memory, they will be saved to a temporary file.
You can use
options to set the default file format, datatype and progress bar.
A Raster* object, and in some cases the side effect of a new file on disk.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
r1 <- raster(ncols=10, nrows=10) r1 <- runif(ncell(r1)) r2 <- setValues(r1, 1:ncell(r1) / ncell(r1) ) r3 <- r1 + r2 r2 <- r1 / 10 r3 <- r1 * (r2 - 1 + r1^2 / r2) # recycling by row r4 <- r1 * 0 + 1:ncol(r1) # multi-layer object mutiplication, no recycling b1 <- brick(r1, r2, r3) b2 <- b1 * 10 # recycling by layer b3 <- b1 + c(1, 5, 10) # addition of the cell-values of two RasterBrick objects b3 <- b2 + b1 # summing two RasterBricks and one RasterLayer. The RasterLayer is 'recycled' b3 <- b1 + b2 + r1