R: Arithmetic with Raster* objects

Arith-methods {raster} | R Documentation

## Arithmetic with Raster* objects

### Description

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` and `y`:

`x+y` is the same as `union(x, y)`. For SpatialLines* and SpatialPoints* it is equivalent to `bind(x, y)`

`x*y` is the same as `intersect(x, y)`

`x-y` is the same as `erase(x, y)`

### Details

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.

### Value

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

### See Also

`Math-methods`, `overlay`, `calc`

### Examples

    r1 <- raster(ncols=10, nrows=10)
    values(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

[Package raster version 3.5-15 Index]