Title: | Intra- and Inter-Regional Similarity |
---|---|
Description: | Calculates intra-regional and inter-regional similarities based on user-provided spatial vector objects (regions) and spatial raster objects (cells with values). Implemented metrics include inhomogeneity, isolation (Haralick and Shapiro (1985) <doi:10.1016/S0734-189X(85)90153-7>, Jasiewicz et al. (2018) <doi:10.1016/j.cageo.2018.06.003>), and distinction (Nowosad (2021) <doi:10.1080/13658816.2021.1893324>). |
Authors: | Jakub Nowosad [aut, cre] |
Maintainer: | Jakub Nowosad <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.4.4 |
Built: | 2025-03-05 04:33:18 UTC |
Source: | https://github.com/nowosad/regional |
Distinction is an average distance between the focus region and all of the other regions. This value is between 0 and 1, where large value indicates that the values in the region stands out from the other regions.
reg_distinction( region, raster, dist_fun = "euclidean", sample_size = 1, unit = "log2", na.rm = FALSE, ... )
reg_distinction( region, raster, dist_fun = "euclidean", sample_size = 1, unit = "log2", na.rm = FALSE, ... )
region |
An object of class |
raster |
An object of class SpatRaster (terra) |
dist_fun |
Distance measure used. This function uses |
sample_size |
Proportion of the cells inside of each region to be used in calculations. Value between 0 and 1. It is also possible to specify an integer larger than 1, in which case the specified number of cells of each region will be used in calculations. |
unit |
a character string specifying the logarithm unit that should be used to compute distances that depend on log computations. |
na.rm |
Whether NA values should be stripped from the calculations. |
... |
Additional arguments for |
A vector with the distinction values
## Not run: library(terra) if (requireNamespace("sf", quietly = TRUE)) { library(sf) volcano = rast(system.file("raster/volcano.tif", package = "regional")) vr = read_sf(system.file("regions/volcano_regions.gpkg", package = "regional")) vr$dis = reg_distinction(vr, volcano, sample_size = 0.5) mean(vr$dis) plot(volcano) plot(vect(vr), add = TRUE) plot(volcano) plot(vr["dis"], add = TRUE) } ## End(Not run)
## Not run: library(terra) if (requireNamespace("sf", quietly = TRUE)) { library(sf) volcano = rast(system.file("raster/volcano.tif", package = "regional")) vr = read_sf(system.file("regions/volcano_regions.gpkg", package = "regional")) vr$dis = reg_distinction(vr, volcano, sample_size = 0.5) mean(vr$dis) plot(volcano) plot(vect(vr), add = TRUE) plot(volcano) plot(vr["dis"], add = TRUE) } ## End(Not run)
Inhomogeneity measures a degree of mutual dissimilarity between values of all cells in a region. This value is between 0 and 1, where small value indicates that values of all cells in the region represent consistent patterns so the cluster is pattern-homogeneous.
reg_inhomogeneity( region, raster, dist_fun = "euclidean", sample_size = 1, unit = "log2", na.rm = FALSE, ... )
reg_inhomogeneity( region, raster, dist_fun = "euclidean", sample_size = 1, unit = "log2", na.rm = FALSE, ... )
region |
An object of class |
raster |
An object of class SpatRaster (terra) |
dist_fun |
Distance measure used. This function uses |
sample_size |
Proportion of the cells inside of each region to be used in calculations. Value between 0 and 1. It is also possible to specify an integer larger than 1, in which case the specified number of cells of each region will be used in calculations. |
unit |
A character string specifying the logarithm unit that should be used to compute distances that depend on log computations. |
na.rm |
Whether NA values should be stripped from the calculations. |
... |
Additional arguments for |
A vector with the inhomogeneity values
## Not run: library(terra) if (requireNamespace("sf", quietly = TRUE)) { library(sf) volcano = rast(system.file("raster/volcano.tif", package = "regional")) vr = read_sf(system.file("regions/volcano_regions.gpkg", package = "regional")) vr$inh = reg_inhomogeneity(vr, volcano, sample_size = 1) mean(vr$inh) plot(volcano) plot(vect(vr), add = TRUE) plot(volcano) plot(vr["inh"], add = TRUE) } ## End(Not run)
## Not run: library(terra) if (requireNamespace("sf", quietly = TRUE)) { library(sf) volcano = rast(system.file("raster/volcano.tif", package = "regional")) vr = read_sf(system.file("regions/volcano_regions.gpkg", package = "regional")) vr$inh = reg_inhomogeneity(vr, volcano, sample_size = 1) mean(vr$inh) plot(volcano) plot(vect(vr), add = TRUE) plot(volcano) plot(vr["inh"], add = TRUE) } ## End(Not run)
Isolation is an average distance between the focus region and all of its neighbors. This value is between 0 and 1, where large value indicates that values of the region stands out from its surroundings.
reg_isolation( region, raster, dist_fun = "euclidean", sample_size = 1, unit = "log2", na.rm = FALSE, ... )
reg_isolation( region, raster, dist_fun = "euclidean", sample_size = 1, unit = "log2", na.rm = FALSE, ... )
region |
An object of class |
raster |
An object of class SpatRaster (terra) |
dist_fun |
Distance measure used. This function uses |
sample_size |
Proportion of the cells inside of each region to be used in calculations. Value between 0 and 1. It is also possible to specify an integer larger than 1, in which case the specified number of cells of each region will be used in calculations. |
unit |
a character string specifying the logarithm unit that should be used to compute distances that depend on log computations. |
na.rm |
Whether NA values should be stripped from the calculations. |
... |
Additional arguments for |
A vector with the isolation values
## Not run: library(terra) if (requireNamespace("sf", quietly = TRUE)) { library(sf) volcano = rast(system.file("raster/volcano.tif", package = "regional")) vr = read_sf(system.file("regions/volcano_regions.gpkg", package = "regional")) vr$iso = reg_isolation(vr, volcano, sample_size = 1) mean(vr$iso) plot(volcano) plot(vect(vr), add = TRUE) plot(volcano) plot(vr["iso"], add = TRUE) } ## End(Not run)
## Not run: library(terra) if (requireNamespace("sf", quietly = TRUE)) { library(sf) volcano = rast(system.file("raster/volcano.tif", package = "regional")) vr = read_sf(system.file("regions/volcano_regions.gpkg", package = "regional")) vr$iso = reg_isolation(vr, volcano, sample_size = 1) mean(vr$iso) plot(volcano) plot(vect(vr), add = TRUE) plot(volcano) plot(vr["iso"], add = TRUE) } ## End(Not run)