On Fri, 22 Nov 2013, Ravi Vaid wrote:


Jesse,

The clipping of the larger map by a smaller region works perfectly, but the 
resulting map (the clipped version) has the data component of the SP object 
missing. I can't merge anything if the data component is not there. I have 
tried directly using the gintersection function to clip the map but that seems 
to fail (waited more than 2 hours for the program to run).
When I run the command: slotNames(czout) I should get an object of name "data" 
along with the other 4 components below
but I only get,
I get: [1] "polygons"    "plotOrder"   "bbox"        "proj4string"So, somehow the "data" object is 
getting lost. I am fairly new to GIS, I just found the code for clipping on the sig-geo list and tried it and it worked, but the "data" 
object is missing. I know how to merge data but I just can't figure out how to recover the "data" component of the SP object.

No, you get a SpatialPolygons object. Obviously, the intersection will be some subset of your clipped input object, but the function cannot lknow or guess what you want. Suppose that you had a variable in the data slot that was a count of some phenomenon - we don't know what proportion of the count to retain if only part of the geometry is returned. This is clearly up to the user to decide. Use the row.names() of the input and output objects to identify which are which - use the accessor method to retrieve the string values

row.names(camapzip_temp)
row.names(camap_base)

and

row.names(cz_zip)

which are catenated from the input object row.names.

Hope this clarifies,

Roger

PS. Never, ever, assign directly to the data slot - this almost always creates havoc and confusion by sidestepping checking of row.name values. It's a really great way of randomising your data by accident, but otherwise has no good justification.


Ravi


Date: Fri, 22 Nov 2013 08:36:52 -0800
From: berman.je...@gmail.com
To: r-sig-geo@r-project.org
Subject: Re: [R-sig-Geo] Clipping a Map

Hi Ravi,

After performing 'gIntersects' try merging this result to your dataframe,
then select the TRUE values?

Jesse

 cz_zip <- gIntersects(camapzip_temp,camap_base, byid=TRUE)
camap_base@data<-cbind(camap_base@data, czip)
camap2<-camap_base[(camap_base@data[,/???/] %in% c("TRUE)),] # Insert your
column number for czip in place of ???

plot(camap2)
head(camap2@data)



-----
--------------------------------------------------------
Jesse D Berman, PhD
Yale University
School of Forestry and Environmental Studies
Post-Doc Fellow
--
View this message in context: 
http://r-sig-geo.2731867.n2.nabble.com/Clipping-a-Map-tp7585156p7585162.html
Sent from the R-sig-geo mailing list archive at Nabble.com.

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



        [[alternative HTML version deleted]]

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


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

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

Reply via email to