Singlepart to multipart
On Tue, 1 Apr 2014, Jonathan Greenberg wrote:
This is a counter-question to the previous one: how would I go about taking a multipart SpatialPolygon* and "flattening" it so each individual polygon is its own component, "repeating" the data frame (if a SpatialPolygonsDataFrame) for the new polygons, effectively "undoing" the previous suggestion?
Crucially, and typically for me, what do you mean by "polygon"? Do you mean SFS POLYGON (one exterior ring and zero or more interior rings aka holes), or Polygon as defined in sp, which is a linear ring either hole or non-hole? I suspect the former, but the answers would differ. The IDs on the Polygons objects (features) are tied to rows in the data frame, so you are breaking up each Polygons object either to the lowest level of each component linear ring irrespective of its hole status, or, more likely, to that of each constituent SFS POLYGON. Something like this happens as Polygons objects enter GEOS, but there such a Polygons object may go to MULTIPOLYGON (multiple exterior rings) or POLYGON (single exterior ring) as encoded in the comment attribute of Polygons objects (yes, a nasty kludge, knowing about SFS postdated the definition of polygon vector objects in sp). Some mechainsm for assigning ID values would also be needed. Roger
--j On Tue, Oct 29, 2013 at 2:32 PM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
On Tue, 29 Oct 2013, Jonathan Greenberg wrote:
R-sig-geo'ers: If I have a SpatialPolygonsDataFrame with a field "MYID", how do I go about coercing that object to a multipart polygon, where I am "merging" on the MYID field?
maptools::unionSpatialPolygons() which calls rgeos::gUnaryUnion, so go to rgeos::gUnaryUnion first unless you have challenged geometries - if hole problems use maptools::checkPolygonsHoles first. Hope this helps, Roger
--j
-- Roger Bivand Department of Economics, NHH Norwegian School of Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43 e-mail: Roger.Bivand at nhh.no
Roger Bivand Department of Economics, Norwegian School of Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; fax +47 55 95 91 00 e-mail: Roger.Bivand at nhh.no