[R-sig-Geo] unique spatial polygons

Roger Bivand Roger.Bivand at nhh.no
Wed Apr 29 08:42:35 CEST 2009


On Tue, 28 Apr 2009, Alina Sheyman wrote:

> I'm trying to combine two shapefiles using
> zipmaps5 <- spRbind(zipmaps1,zipmaps2)
>
> and getting the following error message
> Error in spRbind(as(obj, "SpatialPolygons"), as(x, "SpatialPolygons")) :
>  non-unique polygon IDs
>
> Does anyone know how I can get rid of duplicate polygons in a shapefile?

This isn't the problem. The real problem is that zipmaps1 and zipmaps2 
have non-unique polygon IDs, so that it isn't obvious to the function what 
you want to do. By default:

sapply(slot(zipmaps1, "polygons"), slot, "ID")

is set to the FID of the shapefile in readOGR() and equivalently in 
readShapeSpatial() in maptools. These typically run 0:(n-1). For two 
objects, they obviously overlap. Please use spChFIDs() methods in maptools 
to assign IDs that are unique for the output object; in the worst case:

zipmaps1 <- spChFIDs(zipmaps1, paste("map1", sapply(slot(zipmaps1,
   "polygons"), slot, "ID"), sep="_"))

and a different "map*" string for zipmaps2 will work, but a unique, 
meaningful ID is best.

This is covered in detail in the code examples for Chapter 5 in our book, 
and on the help page for ?"spChFIDs-methods".

Hope this helps,

Roger

>
> thank you!
>
> 	[[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, 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



More information about the R-sig-Geo mailing list