merging several shapefiles into one
On Wed, May 25, 2011 at 8:06 AM, Nicolas Degallier
<nicolas.degallier at ird.fr> wrote:
Hi All, I have read different shapefiles that are contiguous and that have different column names with the function "readShapePoly". example : noumea <- readShapePoly(noumea.file, IDvar = "NOUMEA2_ID", proj4string = crs_rgnc) and dumbea <- readShapePoly(dumbea.file, IDvar = "DUMBEA2_", proj4string = crs_rgnc) Now I would like to create a new shapefile with all the polygones in the "noumea" and "dumbea" spatial polygone data frames. I tried : spRbind(noumea, dumbea) I get this message error : Error in spRbind(as(obj, "SpatialPolygons"), as(x, "SpatialPolygons")) : ?non-unique polygon IDs I have tried with the function rbind() I have tried to set noumea$NOUMEA2_ID and dumbea$DUMBEA2_ with unique values but I still get the same message error as if the function spRbind was not using those two columns as polygons ID... Does anyone know how I can fix this problem ?
once you've read in your data using NOUMEA2_ID and DUMBEA2_ as the ID variables, changing the values in the data frame won''t change the ID attached to each feature. You need to use the "spChFIDs-methods" to create new spatial polygons data frames with unique IDs between them. Here, scot1 is the first 10 features from scot_BNG as read in help(rgdal) > scot2=scot1 > scot12=spRbind(scot1,scot2) Error in spRbind(as(obj, "SpatialPolygons"), as(x, "SpatialPolygons")) : non-unique polygon IDs - that fails because the IDs are the same. So we change scot2 to be "A" to "J" (which isnt what the IDs are currently...) > scot2=spChFIDs(scot2,letters[1:10]) > scot12=spRbind(scot1,scot2) and that works. Barry