Adds clusters' ids to a lsp object.
The output can be of stars, sf, or terra class.
See examples.
lsp_add_clusters(x, clust, output = "sf", window = NULL)Object of class lsp - usually the output of
the lsp_signature() function
Vector containing an id value for each row in x
The class of the output. Either stars, sf, or terra
Specifies areas for analysis. It can be either: NULL or an sf object. If window=NULL calculations are performed based on the metadata from x. If an sf object is provided, each feature (row) defines the extent of a local pattern. The sf object should have one attribute (otherwise, the first attribute is used as an id).
Object of class stars, sf, or terra (depending on the output argument) with an additional column "clust" representing clusters' id values.
library(stars)
#> Loading required package: abind
#> Loading required package: sf
#> Linking to GEOS 3.13.0, GDAL 3.8.5, PROJ 9.5.1; sf_use_s2() is TRUE
library(sf)
landform = read_stars(system.file("raster/landforms.tif", package = "motif"))
landform_cove = lsp_signature(landform,
type = "cove",
window = 200,
normalization = "pdf")
landform_dist = lsp_to_dist(landform_cove,
dist_fun = "jensen-shannon")
#> Metric: 'jensen-shannon' using unit: 'log2'; comparing: 15 vectors.
landform_hclust = hclust(landform_dist, method = "ward.D2")
#plot(landform_hclust)
clusters = cutree(landform_hclust, k = 4)
landform_grid_sf = lsp_add_clusters(landform_cove, clusters)
#plot(landform_grid_sf["clust"])
#landform_grid_sfq = lsp_add_quality(landform_grid_sf,
# landform_dist)
#plot(landform_grid_sfq["quality"])
## larger data example
# library(stars)
# library(sf)
# landform = read_stars(system.file("raster/landform.tif", package = "motif"),
# proxy = FALSE)
# landform_cove = lsp_signature(landform,
# type = "cove",
# window = 200,
# normalization = "pdf")
#
# landform_dist = lsp_to_dist(landform_cove,
# dist_fun = "jensen-shannon")
#
# landform_hclust = hclust(landform_dist, method = "ward.D2")
# plot(landform_hclust)
#
# clusters = cutree(landform_hclust, k = 6)
#
# landform_grid_sf = lsp_add_clusters(landform_cove, clusters)
# plot(landform_grid_sf["clust"])
#
# landform_grid_sfq = lsp_add_quality(landform_grid_sf,
# landform_dist)
# plot(landform_grid_sfq["quality"])