[R-sig-Geo] Converting Spatial Polygons to data frame for krige.conv
Ben Madin
lists at remoteinformation.com.au
Mon May 30 07:13:48 CEST 2011
G'day,
I'm re-running some old models with new data, but in the same location as previously. In the past I had a text file with the border coordinates, but this is no longer anywhere to be found - thus I'm coming unstuck with krige.conv() and the borders option.
I have otherwise moved very happily into using sp classes for everything, so can load a set of boundaries from PostGIS in using rgdal but although I find discussion about this (see below) for SpatialPoints, I am stumped for a method to convert Spatial Polygons to a list of coordinates - I guess I could manually split the object into it's component polygons and then iterate through the coords ... but I was hoping that there might be a method that I've overlooked.
I confess I have also forgotten how I originally created the text file I had - there must have been a method, but I'm not sure I can remember where it was. (> 5years ago). I thought it was maptools, but all the maptools functions seem to read into sp classes...
cheers
Ben
> Subject: Re: [R-sig-Geo] Spatial data tower of babel
> Date: 25 August 2010 8:53:33 PM AWST
>
On 25/08/2010, at 8:53 PM, Edzer Pebesma wrote:
> Barry, what exactly did you try out before you posted?
>
> Your claim is not completely true: geoR has a function
> as.geodata.SpatialPointsDataFrame, so you can do, for instance:
>
> library(geoR)
> data(meuse) # from sp
> coordinates(meuse) = ~x+y
> krige.bayes(as.geodata(meuse, "zinc"))
>
> and its locations argument can be a SpatialPoints object.
>
> Best regards,
>
> On 08/18/2010 09:05 PM, Roger Bivand wrote:
>> On Wed, 18 Aug 2010, Barry Rowlingson wrote:
>>
>>> Hi,
>>>
>>> Recently while teaching at SFU I hit the problem that infects R when
>>> many people work on similar projects - the multitude of data formats
>>> for similar data. The sp project was partly an attempt to give a
>>> standard format for spatial data but its widespread non-use in older
>>> packages causes trouble.
>>>
>>> So for example I taught the students all about 'sp' objects, and then
>>> they had to use spatstat and splancs for some point-process stuff,
>>> then geoR for some kriging, none of which use sp objects.
>>>
>>> So I figured maybe we need a whole load of 'as' functions that can
>>> convert between the various spatial data formats (there are more in
>>> CRAN, I am sure) to help us all out on this. Some of these functions
>>> may already exist, indeed I just found something about converting
>>> fairly raw x-y coordinate objects to SpatialPolygons hidden away in
>>> the SpatialEpi package (polygons2spatial.polygons).
>>
>> Barry,
>>
>> I think that spatstat is well provided for, mostly in maptools, but also
>> in the spatstat vignette on using shapefiles. Of course, the available
>> functionalities sp <-> spatstat classes could probably be documented
>> more fully, and the coercion functions updated, but I think that they do
>> most of what is needed.
>>
>> I agree that there may be others out there, and like you come across
>> them from time to time. Sometimes the CRAN reverse dependencies show who
>> they might be. Since splancs is largely pre-S3 (right?) and doesn't use
>> classes, coercion isn't an option, so documentation and a wrapper
>> function or two might be sensible. I started on this, but only got as
>> far as the spkernel2d() that uses a call to GridTopology() to set up the
>> output grid.
>>
>> geoR does use S3 classes, so might be closer, and does depend on sp.
>> There is a method for coercing a SpatialPointsDataFrame to "geodata".
>> The borders component of a "geodata" object is harder to introduce.
>> Taking the coordinates() of a SpatialPixels object to pass to locations=
>> is OK, as are the subsetting of data frame columns for the trend.d= and
>> trend.l= arguments. I guess Paulo would need to move to a formula= data=
>> interface to likfit(), krige.bayes() and krige.conv(), at least, to
>> permit sp objects to be used "closer" to the actual core.
>>
>> Probably a good deal could be done by documentation, and by
>> communicating better about what already is there.
>>
>> Useful topic!
>>
>> Best wishes,
>>
>> Roger
>>
>>>
>>> Would it be a good idea to stick all the conversions we can think of
>>> into a single package, "spBabel" say (or spConversion to avoid any
>>> cultural reference), so people have a one-stop shop? And if we find
>>> routines stuck in other packages (such as polygons2spatial.polygons)
>>> we rip them out and bundle them?
>>>
>>> Yes, its a matter of time and effort and we're all busy, but I'd like
>>> to put it out as a proposal. It might make a nice intern or GSOC
>>> project, but we're a bit late for that, so maybe if anyone has a PhD
>>> student starting who needs to get up to speed with R packages and
>>> spatial data it would be a good introduction for them. Once its all
>>> set up (on R-forge or similar) contributing shouldn't be a problem.
>>>
>>> Okay, that's my one crazy idea for the day done.
>>>
>>> Barry
>>>
>>>
>>>
>>
>
> --
> Edzer Pebesma
> Institute for Geoinformatics (ifgi), University of Münster
> Weseler Straße 253, 48151 Münster, Germany. Phone: +49 251
> 8333081, Fax: +49 251 8339763 http://ifgi.uni-muenster.de
> http://www.52north.org/geostatistics e.pebesma at wwu.de
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
More information about the R-sig-Geo
mailing list