R: Aggregate Polygons in a SpatialPolygons object

unionSpatialPolygons {maptools} | R Documentation

## Aggregate Polygons in a SpatialPolygons object

### Description

The function aggregates Polygons in a SpatialPolygons object, according to the IDs vector specifying which input Polygons belong to which output Polygons; internal boundaries are dissolved using the rgeos package `gUnaryUnion` function. If the rgeos package is not available, and if the gpclib package is available and the user confirms that its restrictive license conditions are met, its `union` function will be used.

### Usage

    unionSpatialPolygons(SpP, IDs, threshold=NULL, avoidGEOS=FALSE, avoidUnaryUnion=FALSE)

### Arguments

`SpP` | A SpatialPolygons object as defined in package sp
`IDs` | A vector defining the output Polygons objects, equal in length to the length of the polygons slot of SpRs; it may be character, integer, or factor (try table(factor(IDs)) for a sanity check). It may contain NA values for input objects not included in the union
`threshold` | if not NULL, an area measure below which slivers will be discarded (some polygons have non-identical boundaries, for instance along rivers, generating slivers on union which are artefacts, not real sub-polygons)
`avoidGEOS` | default FALSE; if TRUE force use of gpclib even when GEOS is available
`avoidUnaryUnion` | avoid gUnaryUnion if it is available; not relevant before GEOS 3.3.0

### Value

Returns an aggregated SpatialPolygons object named with the aggregated IDs values in their sorting order; see the ID values of the output object to view the order.

### Warning

When using GEOS Unary Union, it has been found that some polygons are not dissolved correctly when the absolute values of the coordinates are very small. No work-around is available at present.

### Author(s)

Roger Bivand

### Examples

    if (rgeosStatus()) {
    nc1 <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
     proj4string=CRS("+proj=longlat +datum=NAD27"))
    lps <- coordinates(nc1)
    ID <- cut(lps[,1], quantile(lps[,1]), include.lowest=TRUE)
    reg4 <- unionSpatialPolygons(nc1, ID)
    row.names(reg4)
    }

[Package maptools version 0.9-9 Index]