The sabre (Spatial Association Between REgionalizations) is an R package for calculating a degree of spatial association between regionalizations or categorical maps. This package offers support for sf, RasterLayer, SpatRaster, and stars spatial objects, and the following methods:

  • the V-measure method (Nowosad and Stepinski, 2018)
  • the MapCurve method (Hargrove et al., 2006)

Installation

You can install the released version of sabre from CRAN with:

You can install the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("Nowosad/sabre")

Example

We use two simple regionalization, regions1 and regions2 to show the basic concept of calculating a degree of spatial association.

library(sabre)
library(sf)
data("regions1")
data("regions2")

The first map, regions1 consists of four regions of the same shape and size, while the second one, regions2 has three irregular regions.

The vmeasure_calc() function allows for calculation of a degree of spatial association between regionalizations or categorical maps using the information-theoretical V-measure. It requires, at least, four arguments:

  • x - an sf object containing the first regionalization
  • x_name - a name of the column with regions names of the first regionalization
  • y - an sf object containing the second regionalization
  • y_name - a name of the column with regions names of the second regionalization
regions_vm = vmeasure_calc(x = regions1, y = regions2, x_name = z, y_name = z)

The result is a list with three metrics of spatial association - V-measure, Homogeneity, Completeness - and two sf objects with preprocessed input maps - $map1 and $map2.

regions_vm
#> The SABRE results:
#> 
#>  V-measure: 0.36 
#>  Homogeneity: 0.32 
#>  Completeness: 0.42 
#> 
#>  The spatial objects can be retrieved with:
#>  $map1 - the first map
#>  $map2 - the second map

Both spatial outputs have two columns. The first one contains regions’ names/values and the second one (rih) describes regions’ inhomogeneities.

plot(regions_vm$map1["rih"], main = "Map1: rih")
plot(regions_vm$map2["rih"], main = "Map2: rih")

More examples can be found in the package vignette and in the sabre: or how to compare two maps? blog post.

Additionally, examples presented in the Spatial association between regionalizations using the information-theoretical V-measure article can be reproduced using data available at http://sil.uc.edu/index.php?id=data-1#vmeasure.

Hex logo was created with hexmake using icons made by Smashicons and Creaticca Creative Agency from www.flaticon.com.

References

  • Nowosad, Jakub, and Tomasz F. Stepinski. “Spatial association between regionalizations using the information-theoretical V-measure.” International Journal of Geographical Information Science (2018). https://doi.org/10.1080/13658816.2018.1511794
  • Rosenberg, Andrew, and Julia Hirschberg. “V-measure: A conditional entropy-based external cluster evaluation measure.” Proceedings of the 2007 joint conference on empirical methods in natural language processing and computational natural language learning (EMNLP-CoNLL). 2007.
  • Hargrove, William W., Forrest M. Hoffman, and Paul F. Hessburg. “Mapcurves: a quantitative method for comparing categorical maps.” Journal of Geographical Systems 8.2 (2006): 187.