R: Arithmetic, logical and general mathematical methods

math {terra} | R Documentation

## Arithmetic, logical and general mathematical methods

### Description

Standard operators and mathematical methods for computations with SpatRaster objects. Computations are local (applied on a cell by cell basis). If multiple SpatRaster objects are used, these must have the same extent and resolution. These have been implemented:

Arith: `+, -, *, /, ^, %%, %/%`

Compare: `==, !=, >, <, <=, >=, is.na, is.nan, is.finite, is.infinite`

The terra package does not distinguish between `NA` (not available) and `NaN` (not a number). In most cases this state is represented by `NaN`.

Logical: `!, &, |, isTRUE, isFALSE`

Summary: `max, min, range, prod, sum, any, all`

Math: `abs, sign, sqrt, ceiling, floor, trunc, cummax, cummin, cumprod, cumsum, log, log10, log2, log1p, acos, acosh, asin, asinh, atan, atanh, exp, expm1, cos, cosh, sin, sinh, tan, tanh, round, signif`

The following methods have been implemented for SpatExtent: `round, floor, ceil, ==`, for (SpatExtent, SpatExtent): `==, +, -`, and for (SpatExtent, numeric) : `+, -, *, /, %%`

### Usage

    ## S4 method for signature 'SpatRaster'
    log(x, base=exp(1))

### Arguments

`x` | SpatRaster
`base` | a positive or complex number: the base with respect to which logarithms are computed

### Value

SpatRaster or SpatExtent

### seealso

`ifel` to convieniently combine operations and `app` to use mathematical functions not implemented by the package.

### Examples

    r1 <- rast(ncols=10, nrows=10)
    v <- runif(ncell(r1))
    v[10:20] <- NA
    values(r1) <- v
    r2 <- rast(r1)
    values(r2) <- 1:ncell(r2) / ncell(r2)
    r3 <- r1 + r2
    r2 <- r1 / 10
    r3 <- r1 * (r2 - 1 / r2)

    b <- c(r1, r2, r3)
    b2 <- b * 10
    s <- sqrt(b2)
    round(s, 1)

    max(s)
    max(s, na.rm=TRUE)

    x <- is.na(s)

    y <- which.max(s)

    ### SpatExtent methods
    x <- ext(0.1, 2.2, 0, 3)
    y <- ext(-2, 1, -2,2)
    # union
    x + y
    # intersection
    x * y

    e <- x
    e
    e * 2
    e / 2
    e + 1
    e - 1

[Package terra version 1.2-5 Index]