[R-sig-Geo] SpatialPolygons decomposition...

Peter S. Hayes pshayes at maine.rr.com
Sat Feb 14 14:39:50 CET 2009


Thank you, everyone!

Let me go walk through some of this, look at the help for some functions 
that I haven't yet looked at, and see what I can make of it all! :-)

I let myself become trapped in a lab class with this issue... found that 
the as.data.frame() worked fine on SpatialPoints, but ran into a problem 
when someone asked to decompose a polygon similarly (I should have 
looked before class, but ran out of time - too many commitments, not 
enough time!).

Thank you again!


Pete

Roger Bivand wrote:
> On Fri, 13 Feb 2009, Jim Burke wrote:
>
>> Hi Peter,
>>
>> I think I am three days ahead of you on the learning curve. So come 
>> join me! Below is a cumulation of suggestions from Rodger Bivand.
>>
>> Perhaps the code below may help. Start out with your own 
>> SpatialPolygon. Change it to a dataframe. Then do something data like 
>> to the dataframe. Then coerce back to a SpatialPolygon dataframe. 
>> Then dump the SpatialPolygon in various ways. Or you could simply 
>> dump the SpatialPolygon. # the following code takes an sp to a df to 
>> add the two columns
>> # then the df is coerced back into an sp. This solves a merge
>> # issue when merging an sp and df together. R thinks the result
>> # should be a data.frame so good bye SpatialPolygons
>>   tx2_df <- as(tx2_sp, "data.frame")   #make a sp into a df
>>
>>   tx2_df1      <- merge(tx2_df, votes2_df, sort=FALSE, by.x="PCT",
>>   by.y="PCT", all.x=TRUE, all.y=TRUE)
>>   remove(tx2_df)
>>   remove(votes2_df)
>>   # notice that the data frame row IDs we print are sequential
>>   # 1,2,3,4... and not proper precinct names like 1234....
>>   rownames(as(tx2_df1, "data.frame"))  #show us the row IDs
>
> Have you looked at spRbind and spChFIDs methods in maptools? I would 
> be worried about ignoring the IDs unless you are very confident that 
> the order of the geometric objects and the rows in the data frame are 
> identical. Since Peter mentioned our book, there is an extensive 
> example on pp. 120-126; the code and data are available in the Chapter 
> 5 set on www.asdar-book.org, but without the explanations of the steps 
> involved.
>
> Roger
>
>>
>>   # key here is match.ID = FALSE so that it does not try to take
>>   # the 1,2,3 data frame sequence numbers and think they are IDs.    
>> # both sp and df must have rows aligned the same.
>>   tx3_sp <- SpatialPolygonsDataFrame(as(tx2_sp,"SpatialPolygons"),
>>             data=tx2_df1, match.ID = FALSE)
>>   remove(tx2_sp)
>>   remove(tx2_df1)
>>
>>   # debug tx3_sp a little, lets make sure its a 
>> SpatialPologonsDataFrame!
>>   sapply(slot(tx3_sp, "polygons"), function(x) slot(x, "ID")) #what 
>> are row "ID"s?
>>   str(as(tx3_sp, "data.frame"))         #show representation of 
>> variables
>>   (str(tx3_sp))                         #shows representation of 
>> geometries too.
>>   names(tx3_sp)                         #nice but lengthy Let us know 
>> if this helps you any.
>>
>> Good luck,
>> Jim Burke
>>
>>
>>
>> Peter S. Hayes wrote:
>>> Hi All,
>>>
>>> I'm trying to teach a spatial analysis class using R as a means of 
>>> learning some details... I'm not an expert in R myself, but am 
>>> learning it while using it as a 'tool' for lessons in the class...
>>>
>>> In getting the students familiar with some of the SP classes, we 
>>> began looking at the class components and manipulating some of the 
>>> components (such as translating by modifying coordinates..).
>>>
>>> Is there a means of decomposing SpatialPolygons to access the list 
>>> of Polygons and contained classes? The help files (for example, 
>>> polygons()) appear to hint so, but not function so... the 
>>> SpatialPolygons isn't quite a traditional R dataframe and won't 
>>> flatten with a call to as.data.frame() to allow access to the 
>>> individual slots... but there must be a means of doing that...
>>>
>>> Also, I have "Applied Spatial Data Analysis with R" as one of the 
>>> texts... any thoughts for more references... especially for 
>>> non-programmers: I've some software experience (C/C++...) but most 
>>> of the students are environmental study, environmental science, or 
>>> biology students and this is one of their first experiences with 
>>> anything having a command line. We've been taking things slow, but R 
>>> is still a bit cryptic... any thoughts on that would be appreciated!
>>>
>>> Thank you for all!
>>>
>>>
>>> Pete
>>>
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>>>
>>
>> _______________________________________________
>> 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