spatialEco (version 2.0-2)

cross.tab: Class comparison between two nominal rasters

Description

Creates a labeled cross tabulation between two nominal rasters

Usage

cross.tab(x, y, values = NULL, labs = NULL, pct = FALSE, ...)

Value

a table with the cross tabulated counts

Arguments

x

A terra SpatRaster class object

y

A terra SpatRaster class object to compare to x

values

Expected values in both rasters

labs

Labels associated with values argument

pct

(TRUE/FALSE) return proportions rather than counts

...

Additional arguments

Author

Jeffrey S. Evans <jeffrey_evans@tnc.org>

Details

This function returns a cross tabulation between two nominal rasters. Arguments allow for labeling the results and returning proportions rather than counts. It also accounts for asymmetrical classes between the two rasters

References

Pontius Jr, R.G., Shusas, E., McEachern, M. (2004). Detecting important categorical land changes

Examples

Run this code
library(terra)
 
e <- ext(179407.8, 181087.9, 331134.4, 332332.1)
lulc2010 <- rast(e, resolution=20)
  lulc2010[] <- sample(1:5, ncell(lulc2010), replace=TRUE)
lulc2020 <- rast(e, resolution=20)
  lulc2020[] <- sample(1:5, ncell(lulc2020), replace=TRUE)
 
 ( v = sort(unique(c(lulc2010[], lulc2020[]))) )
 l = c("water","urban","forest",
       "ag","barren")

cross.tab(lulc2010, lulc2020) 
cross.tab(lulc2010, lulc2020, values = v, labs = l)
cross.tab(lulc2010, lulc2020, values = v, labs = l, pct=TRUE)

# Create asymmetrical classes 
na.idx <- which(!is.na(lulc2010[]))
lulc2020[na.idx] <- sample(c(1,2,4,5), length(na.idx), replace=TRUE)
cross.tab(lulc2010, lulc2020, values = v, labs = l, pct=TRUE)


Run the code above in your browser using DataLab