Learn R Programming

terra (version 1.4-7)

patches: Detect patches (clumps) of cells

Description

Detect patches (clumps). Patches are groups of cells that are surrounded by cells that are NA. Set zeroAsNA to TRUE to also identify patches separated by cells with values of zero.

Usage

# S4 method for SpatRaster
patches(x, directions=4, zeroAsNA=FALSE, filename="", ...)

Arguments

x

SpatRaster

directions

integer indicating which cells are considered adjacent. Should be 8 (Queen's case) or 4 (Rook's case)

zeroAsNA

logical. If TRUE treat cells that are zero as if they were NA

filename

character. Output filename

...

options for writing files as in writeRaster

Value

SpatRaster. Cell values are either a patch number

See Also

focal, boundaries

Examples

Run this code
# NOT RUN {
r <- rast(nrows=18, ncols=36, xmin=0)
r[1:2, 5:8] <- 1
r[5:8, 2:6] <- 1
r[7:12, 22:36] <- 1
r[15:16, 18:29] <- 1
p <- patches(r)

r <- rast(nrows=10, ncols=10, xmin=0)
r[] <- 0
r[3, 3] <- 10
r[4, 4] <- 10
r[5, 5:8] <- 12
r[6, 6:9] <- 12

# remove zeros if need be with zeroAsNA

p4 <- patches(r, zeroAsNA=TRUE)
p8 <- patches(r, 8, zeroAsNA=TRUE)

# patches for different values
# remove zeros
rr <- classify(r, cbind(0, NA))
# first make layers for each value
s <- segregate(rr, keep=TRUE, other=NA)
p <- patches(s)

# }

Run the code above in your browser using DataLab