label: Labelling of unique patches and detection of percolation.

View source: R/label.R

labelR Documentation

Labelling of unique patches and detection of percolation.

Description

Label each patch with a number in a binary matrix

percolation() detects whether percolation occurs in the matrix (i.e. a patch has a width or a height equal to the size of the matrix)

Usage

label(mat, nbmask = "von_neumann", wrap = FALSE)

percolation(mat, nbmask = "von_neumann")

Arguments

mat

A binary matrix

nbmask

Either "moore" for 8-way neighborhood, "von_neumann" for four-way neighborhood (default), or a 3x3 matrix describing which neighbors to consider around a cell. See patchsizes for details on how to specify such neighborhoods.

wrap

Whether to wrap around lattice boundaries ('TRUE'/'FALSE'), effectively using periodic boundaries.

Details

The label function "labels" the patches of a binary (TRUE/FALSE) matrix. It returns a matrix of similar height and width, with integer values representing the ID of each unique patch (contiguous cells). Empty cells are labelled as NA.

Value

A matrix containing ID numbers for each connected patch. Default parameters assume 4-cell neighborhood and periodic boundaries. The distribution of patch sizes is returned as the attribute "psd" and the percolation status as "percolation" (whether a TRUE patch has a width or height equal to the size of the matrix).

See Also

patchsizes, patchdistr_sews

Examples


data(forestgap)

rmat <- matrix(rnorm(100) > .1, ncol = 10)
display_matrix(label(rmat))

# With 8-way neighborhood mask and no wrapping around borders
display_matrix(label(rmat, "moore", wrap = FALSE))

# On real data: 
display_matrix(label(forestgap[[5]], "moore", wrap = FALSE))


spatialwarnings documentation built on Sept. 11, 2024, 8:55 p.m.