Given a SpatRaster whose cell values represent categories (e.g., soil types, land use/cover classes), a dummy layer indicating the presence/absence of each category is created, and optionally written on disk. Each category in the raster layer must be represented by a unique integer cell value. Output values indicating the presence or absence of categories in the dummy layers may be set using preval and absval arguments, respectively.
Usage
dummies(
ca.rast,
vals = NULL,
preval = 100,
absval = 0,
to.disk = FALSE,
outdir = ".",
extension = ".tif",
...
)
Arguments
- ca.rast
SpatRaster, as in
rast
. Single-layer SpatRaster whose (integer) cell values represent numeric IDs for categories.- vals
Integer. Vector or sequence of values representing the categories for which dummy layers will be created. If NULL, all categories will be processed. Default: NULL
- preval
Integer. Value indicating presence of category. Default: 100
- absval
Integer. Value indicating absence of category. Default: 0
- to.disk
Boolean. Write output dummy layers to disk? Default: FALSE
- outdir
Character. If to.disk = TRUE, string specifying the path for the output dummy raster layers. Default: "."
- extension
Character. If to.disk = TRUE, String specifying the extension for the output raster layers (see Details). Default: ".tif"
- ...
If to.disk = TRUE, additional arguments as for
writeRaster
.
Details
This function mainly differs from segregate
in
that presence and absence values can be set arbitrarily, thus allowing for
values other than those traditionally used in one-hot/dummy encoding (i.e.,
1 and 0).
Please note that the argument extension does not correspond to the
argument filetype in writeRaster
. However,
writeRaster
should recognize the appropriate extension
for the output raster layers from the extension argument. For
instance, by setting extension = ".tif",
writeRaster
will recognize the extension as
GeoTiff, which is the GDAL driver name.
Examples
require(terra)
p <- system.file("exdat", package = "rassta")
# Single-layer SpatRaster of geologic units
f <- list.files(path = p, pattern = "geology2.tif", full.names = TRUE)
geol <- terra::rast(f)
# Dummy layer from geologic unit 1
dums <- dummies(ca.rast = geol, vals = 1, preval = 100, absval = 0)