thinnedSpatialPoly

0th

Percentile

Douglas-Peuker line generalization for Spatial Polygons

The function applies the implementation of the Douglas-Peuker algorithm for line generalization or simplification (originally from shapefiles) to objects inheriting from Spatial Polygons. It does not preserve topology, so is suitable for visualisation, but not for the subsequent analysis of the polygon boundaries, as artefacts may be created, and boundaries of neighbouring entities may be generalized differently. If the rgeos package is available, thinnedSpatialPolyGEOS will be used with partial topology preservation instead of the R implementation here by passing arguments through.

Keywords
spatial
Usage
thinnedSpatialPoly(SP, tolerance, minarea=0, topologyPreserve = FALSE,
                 avoidGEOS = FALSE)
Arguments
SP
an object inheriting from the SpatialPolygons class
tolerance
the tolerance value in the metric of the input object
minarea
the smallest area of Polygon objects to be retained, ignored if rgeos used
topologyPreserve
choose between two rgeos options: logical determining if the algorithm should attempt to preserve the topology (nodes not complete edges) of the original geometry
avoidGEOS
use R DP code even if rgeos is available
Value

  • An object of the same class as the input object

Note

Warnings reporting: Non-finite label point detected and replaced, reflect the changes in the geometries of the polygons induced by line generalization.

References

Douglas, D. and Peucker, T. (1973). Algorithms for the reduction of the number of points required to represent a digitized line or its caricature. The Canadian Cartographer 10(2). 112-122.

Aliases
  • thinnedSpatialPoly
Examples
xx <- readShapeSpatial(system.file("shapes/sids.shp", package="maptools")[1],
      IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
object.size(as(xx, "SpatialPolygons"))
xxx <- thinnedSpatialPoly(xx, tolerance=0.05, minarea=0.001)
object.size(as(xxx, "SpatialPolygons"))
par(mfrow=c(2,1))
plot(xx)
plot(xxx)
par(mfrow=c(1,1))
Documentation reproduced from package maptools, version 0.8-26, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.