raster (version 2.6-7)

# Arith-methods: 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)`

## Value

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

## 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.

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

## Examples

Run this code
``````# NOT RUN {
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
# }
``````

Run the code above in your browser using DataCamp Workspace