R: ifelse for SpatRasters

ifel {terra} | R Documentation

## ifelse for SpatRasters

### Description

Implementation of `ifelse` for SpatRasters. This method allows for a concise approach to what can otherwise be achieved with a combination of `classify`, `mask`, and `cover`.

`ifel` is an `R` equivalent to the `Con` method in ArcGIS (arcpy).

### Usage

    ## S4 method for signature 'SpatRaster'
    ifel(test, yes, no, filename="", ...)

### Arguments

`test` | SpatRaster
`yes` | SpatRaster or numeric
`no` | SpatRaster or numeric
`filename` | character. Output filename
`...` | additional arguments for writing files as in `writeRaster`

### Value

SpatRaster

### Examples

    r <- rast(nrows=5, ncols=5, xmin=0, xmax=1, ymin=0, ymax=1)
    values(r) <- c(-10:0, NA, NA, NA, 0:10)

    x <- ifel(r > 1, 1, r)
    # same as
    a <- classify(r, cbind(1, Inf, 1))
    # or
    b <- app(r, fun=function(i) {i[i > 1] <- 1; i})
    # or
    d <- clamp(r, -Inf, 1)
    # or (not recommended for large datasets)
    e <- r
    e[e>1] <- 1

    ## other examples
    f <- ifel(is.na(r), 100, r)

    z <- ifel(r > -2 & r < 2, 100, 0)

    # nested expressions
    y <- ifel(r > 1, 1, ifel(r < -1, -1, r))

    k <- ifel(r > 0, r+10, ifel(r < 0, r-10, 3))

[Package terra version 1.2-10 Index]