Learn R Programming

BoundaryStats

BoundaryStats was designed to test for the presence of geographic boundaries in ecological variables and overlap between such boundaries. Users can calculate boundary and boundary overlap statistics with raster data. BoundaryStats can create null distributions for the statistics based on various neutral landscape models that are parameterized on the empirical data. The primary functions are statistical tests for the presence of spatial boundaries of a variable and significant overlap between the spatial boundaries of two variables.

Installation

You can install BoundaryStats with either:

install.packages('BoundaryStats')
remotes::install_github("aluo734/BoundaryStats")

Statistical Tests

Function

Category

Description

n_boundaries

Boundary

The number of subgraphs, or sets of contiguous boundary elements, in the data.

longest_boundary

Boundary

The length of the longest subgraph.

n_overlap_boundaries

Boundary Overlap

The number of directly overlapping boundary elements, or raster cells labeled as part of a boundary, of two traits.

average_min_x_to_y

Boundary Overlap

The average minimum distance between each boundary element in raster x and the nearest boundary element in raster y. Uses Euclidean distance. The boundaries of trait x depend on the boundaries of trait y.

average_min_distance

Boundary Overlap

The average minimum distance between boundary elements in two raster layers. Uses Euclidean distance. Boundaries for each trait affect one another reciprocally (x affects y and y affects x).

Example

library(BoundaryStats)
library(tidyverse)

data(ecoregions)
ecoregions <- terra::rast(ecoregions_matrix, crs = ecoregions_crs)
terra::ext(ecoregions) <- ecoregions_ext

data(L.flavomaculatus)
L.flavomaculatus <- terra::rast(L.flavomaculatus_matrix, crs = L.flavomaculatus_crs)
terra::ext(L.flavomaculatus) <- L.flavomaculatus_ext

terra::crs(ecoregions) <- terra::crs(L.flavomaculatus)
ecoregions <- terra::resample(ecoregions, L.flavomaculatus) |>
  terra::crop(L.flavomaculatus) |>
  terra::mask(L.flavomaculatus)
L.flavomaculatus <- terra::crop(L.flavomaculatus, ecoregions) |>
  terra::mask(ecoregions)

L.flavomaculatus_boundary <- define_boundary(L.flavomaculatus, cat = TRUE)
ecoregions_boundary <- define_boundary(ecoregions, cat = T)
plot_boundary(L.flavomaculatus, ecoregions)

Tcrist_ovlp_null <- overlap_null_distrib(L.flavomaculatus, ecoregions, rand_both = FALSE, x_cat = T, n_iterations = 100, x_model = 'random_cluster')

n_overlap_boundaries(L.flavomaculatus, ecoregions, Tcrist_ovlp_null)
average_min_x_to_y(L.flavomaculatus, ecoregions, Tcrist_ovlp_null)
average_min_distance(L.flavomaculatus, ecoregions, Tcrist_ovlp_null)

Data source: Cox, Karen; Schepers, Robbert; Van Breusegem, An; Speybroeck, Jeroen (2023), The common ground in landscape effects on gene flow in two newt species in an agroecosystem, Dryad, Dataset, https://doi.org/10.5061/dryad.bk3j9kdhz.

Copy Link

Version

Install

install.packages('BoundaryStats')

Monthly Downloads

194

Version

2.3.0

License

GPL (>= 3)

Maintainer

Amy Luo

Last Published

July 23rd, 2025

Functions in BoundaryStats (2.3.0)

A.delicatus_crs

Afrixalus delicatus genetic groups projection
gauss_random_field_sim

Gaussian random field neutral model
longest_boundary

Length of the longest boundary
sobel_operator

Sobel-Feldman operator for edge detection
grassland_matrix

Grassland land cover
n_boundaries

Number of boundaries
ecoregions_matrix

Ecoregion data for East Africa
A.sylvaticus_crs

Afrixalus sylvaticus genetic groups projection
overlap_null_distrib

Null distribution for boundary overlap statistics
n_overlap_boundaries

Direct overlap between boundary elements.
grassland_ext

Grassland land cover extent
grassland_crs

Grassland land cover projection
ecoregions_crs

Ecoregion data for East Africa projection
ecoregions_ext

Ecoregion data for East Africa extent
random_raster_sim

Stochastic neutral landscape model
plot_boundary

Map the boundary elements of two raster layers
L.concolor_crs

Leptopelis concolor genetic groups projection
L.flavomaculatus_crs

Leptopelis flavomaculatus genetic groups projection
A.sylvaticus_ext

Afrixalus sylvaticus genetic groups extent
A.delicatus_ext

Afrixalus delicatus genetic groups extent
L.flavomaculatus_ext

Leptopelis flavomaculatus genetic groups extent
T.cristatus_crs

Triturus cristatus genetic groups projection
L.concolor_ext

Leptopelis concolor genetic groups extent
L.concolor_matrix

Leptopelis concolor genetic groups
average_min_distance

Average minimum distance between boundary elements of two variables
A.delicatus_matrix

Afrixalus delicatus genetic groups
L.flavomaculatus_matrix

Leptopelis flavomaculatus genetic groups
A.sylvaticus_matrix

Afrixalus sylvaticus genetic groups
T.cristatus_matrix

Triturus cristatus genetic groups
categorical_boundary

Define the boundary elements of a SpatRaster with categorical data
T.cristatus_ext

Triturus cristatus genetic groups extent
mod_random_clust_sim

Modified random cluster neutral landscape model
average_min_x_to_y

Average minimum distance from x boundary elements to nearest y boundary element.
boundary_null_distrib

Null distribution for overlap statistics
define_boundary

Define the boundary elements of a SpatRaster with numeric data or boundary intensities