[R] extracting slot "coords" from a Polygons class object

Monica Pisica pisicandru at hotmail.com
Thu Apr 9 14:55:31 CEST 2015


Hi Sarah,


Thank you so much. This is exactly what i need it. I was wondering if my parsing was totally wrong. I read the SpatialPolygons-class help, but obviously i didn't understand it. 


Again, thanks so much,


Monica

----------------------------------------
> Date: Wed, 8 Apr 2015 20:42:56 -0400
> Subject: Re: [R] extracting slot "coords" from a Polygons class object
> From: sarah.goslee at gmail.com
> To: pisicandru at hotmail.com
> CC: r-help at r-project.org
>
> You didn't parse the output you pasted in correctly:
>
> pt1.cpoly at polygons[[1]]@Polygons[[1]]@coords
>
> or
>
> coordinates(pt1.cpoly at polygons[[1]]@Polygons[[1]])
>
>> class(pt1.cpoly)
> [1] "SpatialPolygons"
> attr(,"package")
> [1] "sp"
>
> So see
> ?"SpatialPolygons-class"
> for details.
>
> Sarah
>
> On Wed, Apr 8, 2015 at 5:07 PM, Monica Pisica <pisicandru at hotmail.com> wrote:
>>
>> Hi,
>>
>>
>>
>> I am struggling to extract the polygon vertices from a list of an object class "Polygons", specifically the slot "coords".
>>
>>
>>
>> I have a point, and i "draw" a buffer around with gBuffer, i am "extracting" the polygon form the SpatialPolygons class and i end up with a list of 1 one object Polygons class that seems to have slots, but if i try to extract them i get an error.
>>
>>
>>
>> So here it goes after i load the respective libraries: sp, maptools, rgdal, rgeos
>>
>> pt1 <- data.frame(x=217680.2, y = 3817555)
>>
>> coordinates(pt1) <- c("x", "y")
>>
>> crs = "+proj=utm +zone=11 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0"
>>
>>
>>
>> proj4string(pt1) <- CRS(crs)
>>
>> pt1.cpoly <- gBuffer(pt1, width = 100, byid = TRUE)
>>
>>
>>
>> pt1.cpoly
>>
>> class : SpatialPolygons
>>
>> features : 1
>>
>> extent : 217580.2, 217780.2, 3817455, 3817655 (xmin, xmax, ymin, ymax)
>>
>> coord. ref. : +proj=utm +zone=11 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0
>>
>>
>>
>> pt1.poly <- pt1.cpoly at polygons
>>
>>
>>
>> pt1.poly
>>
>> [[1]]
>>
>> An object of class "Polygons"
>>
>> Slot "Polygons":
>>
>> [[1]]
>>
>> An object of class "Polygon"
>>
>> Slot "labpt":
>>
>> [1] 217680.2 3817554.7
>>
>>
>>
>> Slot "area":
>>
>> [1] 30901.7
>>
>>
>>
>> Slot "hole":
>>
>> [1] FALSE
>>
>>
>>
>> Slot "ringDir":
>>
>> [1] 1
>>
>>
>>
>> Slot "coords":
>>
>> x y
>>
>> [1,] 217780.2 3817555
>>
>> [2,] 217775.3 3817524
>>
>> [3,] 217761.1 3817496
>>
>> [4,] 217739.0 3817474
>>
>> Etc. …..
>>
>>
>>
>> pt1.crd <- pt1.poly[[1]]@coords
>>
>> Error: no slot of name "coords" for this object of class "Polygons"
>>
>>
>>
>> So my question is: How do i access the "coords" slot i clearly see when i print pt1.poly on the screen?
>>
>>
>>
>> Thanks for any help,
>>
>>
>>
>> Monica
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
>
>
> --
> Sarah Goslee
> http://www.functionaldiversity.org 		 	   		  


More information about the R-help mailing list