[R-sig-Geo] Clipping a Map

Roger Bivand Roger.Bivand at nhh.no
Fri Nov 22 19:59:53 CET 2013


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.jesse at gmail.com
>> To: r-sig-geo at 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 at data<-cbind(camap_base at data, czip)
>> camap2<-camap_base[(camap_base at data[,/???/] %in% c("TRUE)),] # Insert your
>> column number for czip in place of ???
>>
>> plot(camap2)
>> head(camap2 at 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 at r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
>
>
> 	[[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at 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.Bivand at nhh.no



More information about the R-sig-Geo mailing list