[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