polyAtBorder: Indicate Polygons at the Border

polyAtBorderR Documentation

Indicate Polygons at the Border

Description

Determines which polygons of a "\linkSPclass{SpatialPolygons}" object are at the border, i.e. have coordinates in common with the spatial union of all polygons (constructed using unionSpatialPolygons).

Usage

polyAtBorder(SpP, snap = sqrt(.Machine$double.eps),
             method = "sf", ...)

Arguments

SpP

an object of class "\linkSPclass{SpatialPolygons}".

snap

tolerance used to consider coordinates as identical.

method

method to use for unionSpatialPolygons. Defaults to sf, since polyclip uses integer arithmetic, which causes rounding errors usually requiring tuning of (i.e., increasing) the tolerance parameter snap (see example below).

...

further arguments passed to the chosen method.

Value

logical vector of the same length as SpP also inheriting its row.names.

Author(s)

Sebastian Meyer

Examples

## Load districts of Germany
load(system.file("shapes", "districtsD.RData", package = "surveillance"))

## Determine districts at the border and check the result on the map
if (requireNamespace("sf")) {
    atBorder <- polyAtBorder(districtsD, method = "sf")
    if (interactive()) plot(districtsD, col = atBorder)
    table(atBorder)
}

## For method = "polyclip", a higher snapping tolerance is required
## to obtain the correct result
if (requireNamespace("polyclip")) {
    atBorder <- polyAtBorder(districtsD, snap = 1e-6, method = "polyclip")
    if (interactive()) plot(districtsD, col = atBorder)
    table(atBorder)
}

surveillance documentation built on Oct. 2, 2024, 1:08 a.m.