Package 'regional'

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

Help Index


Distinction

Description

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.

Usage

reg_distinction(
  region,
  raster,
  dist_fun = "euclidean",
  sample_size = 1,
  unit = "log2",
  na.rm = FALSE,
  ...
)

Arguments

region

An object of class sf with a POLYGON or MULTIPOLYGON geometry type

raster

An object of class SpatRaster (terra)

dist_fun

Distance measure used. This function uses philentropy::distance (run philentropy::getDistMethods() to find possible distance measures) or proxy::dist (run names(proxy::pr_DB$get_entries()) to find possible distance measures) in the background. It is also possible to use "dtw" (dynamic time warping)

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 philentropy::dist_one_one, proxy::dist, or dtwclust::dtw_basic. When dist_fun = "dtw" is used, ndim should be set to specify how many dimension the input raster time-series has.

Value

A vector with the distinction values

Examples

## 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

Description

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.

Usage

reg_inhomogeneity(
  region,
  raster,
  dist_fun = "euclidean",
  sample_size = 1,
  unit = "log2",
  na.rm = FALSE,
  ...
)

Arguments

region

An object of class sf with a POLYGON or MULTIPOLYGON geometry type

raster

An object of class SpatRaster (terra)

dist_fun

Distance measure used. This function uses philentropy::distance (run philentropy::getDistMethods() to find possible distance measures) or proxy::dist (run names(proxy::pr_DB$get_entries()) to find possible distance measures) in the background. It is also possible to use "dtw" (dynamic time warping)

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 philentropy::dist_one_one, proxy::dist, or dtwclust::dtw_basic. When dist_fun = "dtw" is used, ndim should be set to specify how many dimension the input raster time-series has.

Value

A vector with the inhomogeneity values

Examples

## 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

Description

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.

Usage

reg_isolation(
  region,
  raster,
  dist_fun = "euclidean",
  sample_size = 1,
  unit = "log2",
  na.rm = FALSE,
  ...
)

Arguments

region

An object of class sf with a POLYGON or MULTIPOLYGON geometry type

raster

An object of class SpatRaster (terra)

dist_fun

Distance measure used. This function uses philentropy::distance (run philentropy::getDistMethods() to find possible distance measures) or proxy::dist (run names(proxy::pr_DB$get_entries()) to find possible distance measures) in the background. It is also possible to use "dtw" (dynamic time warping)

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 philentropy::dist_one_one, proxy::dist, or dtwclust::dtw_basic. When dist_fun = "dtw" is used, ndim should be set to specify how many dimension the input raster time-series has.

Value

A vector with the isolation values

Examples

## 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)