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)
You can install the released version of sabre
from
CRAN with:
install.packages("sabre")
You can install the development version from GitHub with:
# install.packages("devtools")
devtools::install_github("Nowosad/sabre")
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
- ansf
object containing the first regionalizationx_name
- a name of the column with regions names of the first regionalizationy
- ansf
object containing the second regionalizationy_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.
Hex logo was created with hexmake using icons made by Smashicons and Creaticca Creative Agency from www.flaticon.com.
- 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.