On Tue, 5 May 2009, Alina Sheyman wrote:

and for some reason I am still getting the error that I have non-unique id's
eventhough i had deduped both of my files. Any idea why this would be
happening?

Please refer to comments below:


On Tue, May 5, 2009 at 10:16 AM, Alina Sheyman <alina...@gmail.com> wrote:


I'm still working on trying to combine two spatial files.
So far I've done the following

zipmaps1a<- unionSpatialPolygons(zipmaps1,IDs=paste(zipmaps1$ZCTA))
zipmaps1_df<- as(zipmaps1, "data.frame") [!duplicated(zipmaps1$ZCTA),
-(1:4)]
row.names(zipmaps1_df)<- paste(zipmaps1_df$ZCTA)
zipmaps1b <- SpatialPolygonsDataFrame(zipmaps1a,zipmaps1_df)

zipmaps2a<- unionSpatialPolygons(zipmaps2,IDs=paste(zipmaps2$ZCTA))
zipmaps2_df<- as(zipmaps2, "data.frame") [!duplicated(zipmaps2$ZCTA),
-(1:4)]
row.names(zipmaps2_df)<- paste(zipmaps2_df$ZCTA)
zipmaps2b <- SpatialPolygonsDataFrame(zipmaps2a,zipmaps2_df)

I've checked both of my files and at this point they DO both contain unique
id's - no duplicate records. However when I try to go ahead and combine them
using

zipmaps_1_2 <- spRbind(spRbind(zipmaps1b, zipmaps1a))

                  ^^^^^^^^^^^^^^^

Maybe I'm seeing double, but there do seem to be two spRbind() calls here. Are they really here, or an artefact of copy&paste? I cannot reproduce the problem. In addition, why are you using paste() on zipmaps2$ZCTA etc. in the unionSpatialPolygons() calls - shouldn't you use as.character()? have you examined the SpatialPolygons object IDs as I've suggested earlier?

(hint sapply(slot(zipmaps1a, "polygons"), slot, "ID"))

Do you have a local source of help, you do not seem to be making progress?

Roger

I get the following error message
Error in spRbind(spRbind(zipmaps1b, zipmaps1a)) :
  error in evaluating the argument 'obj' in selecting a method for function
'spRbind'

I'm not sure what else I need to specify in my spRbind command



On Wed, Apr 29, 2009 at 12:32 PM, Roger Bivand <roger.biv...@nhh.no>wrote:

On Wed, 29 Apr 2009, Alina Sheyman wrote:

 Using examples in Chapter 5, I am trying to get rid of non-unique
polygons.


Actually, maybe my advice wasn't well-judged, unless you are happy to
interpret code in a fairly naked setting, you may actually need the book
text to see what is going on. The code treats a number of different issues,
not all of which are necessarily relevant for your case.

 I'm working with a Massachusetts shapefile by zips. The file consists the
following fields
ZCTA  NAME LSAD   LSAD_TRANS

I've done the following  to get rid of duplicate records

 zipmaps1_df <- as(zipmaps1,
"data.frame")[!duplicated(zipmaps1$LSAT_TRANS)]

# not LSAD_TRANS?

row.names(zipmaps1_df) <- zipmaps1_df$LSAD_TRANS
zipmaps1a <- SpatialPolygonsDataFrame(zipmaps1, zipmaps1_df) ,



I guess that you need all of the features (geometries) in zipmaps1, but
that some zipcodes have several features. Don't discard geometries unless
you know that that is what you really want to do. Even if they are not
contiguous, use:

zipmaps1u <- unionSpatialPolygons(as(zipmaps1, "SpatialPolygons"),
 as.character(zipmaps1$LSAD_TRANS))

to group all of the features belonging to each value of LSAD_TRANS as
Polygon objects in unique Polygons objects (with multiple features).

The output (re. your next mail) is a SpatialPolygons object. How you then
aggregate the data.frame part of the input object is up to you. The ID
values of the Polygons objects in zipmaps1u will be the unique values of
LSAD_TRANS. Unless you need to work with attribute data, you could stay just
with SpatialPolygons objects until you are through.

 but get the following error message
Error in SpatialPolygonsDataFrame(zipmaps1, zipmaps1_df) :
 row.names of data and Polygons IDs do not match


How do I find out what field R is treating as Polygon ID, so that I can
set
my row.names to that?


If you need it later on, you could look at spChFIDs as I suggested before.

Hope this helps,

Roger




On Wed, Apr 29, 2009 at 2:42 AM, Roger Bivand <roger.biv...@nhh.no>
wrote:

 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@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.biv...@nhh.no




--
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.biv...@nhh.no





--
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.biv...@nhh.no

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to