R_Extracting coordinates from SpatialPolygonsDataFrame

MaMu picture MaMu · Apr 22, 2015 · Viewed 16.1k times · Source

Is it only me who have the problem with extracting coordinates of a polygon from SpatialPolygonsDataFrame object? I am able to extract other slots of the object (ID,plotOrder) but not coordinates (coords). I don't know what I am doing wrong. Please find below my R session where bdryData being the SpatialPolygonsDataFrame object with two polygons.

> bdryData
An object of class "SpatialPolygonsDataFrame"
Slot "data":
  ID GRIDCODE
0  1        0
1  2        0

Slot "polygons":
[[1]]
An object of class "Polygons"
Slot "Polygons":
[[1]]
An object of class "Polygon"
Slot "labpt":
[1] 415499.1 432781.7

Slot "area":
[1] 0.6846572

Slot "hole":
[1] FALSE

Slot "ringDir":
[1] 1

Slot "coords":
         [,1]     [,2]
[1,] 415499.6 432781.2
[2,] 415498.4 432781.5
[3,] 415499.3 432782.4
[4,] 415499.6 432781.2



Slot "plotOrder":
[1] 1

Slot "labpt":
[1] 415499.1 432781.7

Slot "ID":
[1] "0"

Slot "area":
[1] 0.6846572


[[2]]
An object of class "Polygons"
Slot "Polygons":
[[1]]
An object of class "Polygon"
Slot "labpt":
[1] 415587.3 432779.4

Slot "area":
[1] 20712.98

Slot "hole":
[1] FALSE

Slot "ringDir":
[1] 1

Slot "coords":
           [,1]     [,2]
  [1,] 415499.6 432781.2
  [2,] 415505.0 432781.8
  [3,] 415506.5 432792.6
  [4,] 415508.9 432792.8
  [5,] 415515.0 432791.5
  [6,] 415517.7 432795.6
  [7,] 415528.6 432797.7
  [8,] 415538.8 432804.2
  [9,] 415543.2 432805.8
 [10,] 415545.1 432803.6
 [11,] 415547.1 432804.7
 [12,] 415551.7 432805.8
 [13,] 415557.5 432812.3
 [14,] 415564.2 432817.1
 [15,] 415568.5 432823.9
 [16,] 415571.0 432826.8
 [17,] 415573.2 432828.7
 [18,] 415574.1 432829.7
 [19,] 415576.2 432830.7
 [20,] 415580.2 432833.8
 [21,] 415589.6 432836.0
 [22,] 415593.1 432841.0
 [23,] 415592.2 432843.7
 [24,] 415590.6 432846.6
 [25,] 415589.0 432853.3
 [26,] 415584.8 432855.3
 [27,] 415579.7 432859.8
 [28,] 415577.7 432866.2
 [29,] 415575.6 432868.1
 [30,] 415566.7 432880.7
 [31,] 415562.7 432887.5
 [32,] 415559.2 432889.1
 [33,] 415561.5 432890.7
 [34,] 415586.2 432889.7
 [35,] 415587.1 432888.6
 [36,] 415588.5 432890.2
 [37,] 415598.2 432888.7
 [38,] 415599.1 432887.7
 [39,] 415601.2 432886.7
 [40,] 415603.1 432885.7
 [41,] 415605.2 432884.7
 [42,] 415606.1 432882.7
 [43,] 415607.2 432880.7
 [44,] 415608.3 432878.3
 [45,] 415612.2 432874.8
 [46,] 415614.7 432871.9
 [47,] 415617.1 432870.7
 [48,] 415622.4 432868.2
 [49,] 415622.0 432862.4
 [50,] 415624.2 432855.4
 [51,] 415633.2 432845.3
 [52,] 415639.0 432841.1
 [53,] 415642.8 432832.9
 [54,] 415647.5 432828.7
 [55,] 415654.3 432820.3
 [56,] 415654.1 432816.5
 [57,] 415658.2 432812.8
 [58,] 415661.9 432808.6
 [59,] 415663.5 432808.7
 [60,] 415668.1 432803.5
 [61,] 415676.5 432801.3
 [62,] 415679.1 432802.7
 [63,] 415680.1 432802.7
 [64,] 415681.1 432802.7
 [65,] 415682.2 432802.7
 [66,] 415685.8 432804.7
 [67,] 415691.8 432802.2
 [68,] 415693.6 432798.9
 [69,] 415696.2 432777.0
 [70,] 415689.8 432773.5
 [71,] 415683.7 432771.6
 [72,] 415680.2 432766.7
 [73,] 415679.0 432765.6
 [74,] 415676.8 432753.7
 [75,] 415671.4 432747.7
 [76,] 415662.7 432747.2
 [77,] 415658.7 432750.0
 [78,] 415657.0 432746.3
 [79,] 415654.1 432743.7
 [80,] 415652.3 432739.8
 [81,] 415649.6 432739.6
 [82,] 415648.0 432739.7
 [83,] 415641.9 432736.4
 [84,] 415633.4 432736.9
 [85,] 415630.2 432734.7
 [86,] 415622.3 432733.6
 [87,] 415614.4 432726.5
 [88,] 415617.1 432719.1
 [89,] 415612.5 432718.1
 [90,] 415610.0 432720.9
 [91,] 415606.2 432716.6
 [92,] 415603.2 432713.9
 [93,] 415601.4 432710.0
 [94,] 415580.3 432708.7
 [95,] 415545.1 432709.7
 [96,] 415543.5 432711.5
 [97,] 415534.0 432715.7
 [98,] 415527.1 432713.7
 [99,] 415521.1 432711.6
[100,] 415505.6 432710.6
[101,] 415501.3 432710.9
[102,] 415499.3 432708.7
[103,] 415495.6 432711.6
[104,] 415482.6 432726.2
[105,] 415477.2 432734.0
[106,] 415478.1 432737.7
[107,] 415479.2 432739.7
[108,] 415480.9 432743.4
[109,] 415486.5 432751.2
[110,] 415493.2 432760.7
[111,] 415494.1 432762.7
[112,] 415498.1 432767.9
[113,] 415497.2 432770.7
[114,] 415490.6 432773.2
[115,] 415493.2 432775.6
[116,] 415496.0 432778.7
[117,] 415499.2 432779.7
[118,] 415499.6 432781.2



Slot "plotOrder":
[1] 1

Slot "labpt":
[1] 415587.3 432779.4

Slot "ID":
[1] "1"

Slot "area":
[1] 20712.98



Slot "plotOrder":
[1] 2 1

Slot "bbox":
       min      max
x 415477.2 415696.2
y 432708.7 432890.7

Slot "proj4string":
CRS arguments:
 +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000
+datum=OSGB36 +units=m +no_defs +ellps=airy
+towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894 

Subsetting second polygon from bdryData

> bdryData@polygons[[2]]
An object of class "Polygons"
Slot "Polygons":
[[1]]
An object of class "Polygon"
Slot "labpt":
[1] 415587.3 432779.4

Slot "area":
[1] 20712.98

Slot "hole":
[1] FALSE

Slot "ringDir":
[1] 1

Slot "coords":
           [,1]     [,2]
  [1,] 415499.6 432781.2
  [2,] 415505.0 432781.8
  [3,] 415506.5 432792.6
  [4,] 415508.9 432792.8
  [5,] 415515.0 432791.5
  [6,] 415517.7 432795.6
  [7,] 415528.6 432797.7
  [8,] 415538.8 432804.2
  [9,] 415543.2 432805.8
 [10,] 415545.1 432803.6
 [11,] 415547.1 432804.7
 [12,] 415551.7 432805.8
 [13,] 415557.5 432812.3
 [14,] 415564.2 432817.1
 [15,] 415568.5 432823.9
 [16,] 415571.0 432826.8
 [17,] 415573.2 432828.7
 [18,] 415574.1 432829.7
 [19,] 415576.2 432830.7
 [20,] 415580.2 432833.8
 [21,] 415589.6 432836.0
 [22,] 415593.1 432841.0
 [23,] 415592.2 432843.7
 [24,] 415590.6 432846.6
 [25,] 415589.0 432853.3
 [26,] 415584.8 432855.3
 [27,] 415579.7 432859.8
 [28,] 415577.7 432866.2
 [29,] 415575.6 432868.1
 [30,] 415566.7 432880.7
 [31,] 415562.7 432887.5
 [32,] 415559.2 432889.1
 [33,] 415561.5 432890.7
 [34,] 415586.2 432889.7
 [35,] 415587.1 432888.6
 [36,] 415588.5 432890.2
 [37,] 415598.2 432888.7
 [38,] 415599.1 432887.7
 [39,] 415601.2 432886.7
 [40,] 415603.1 432885.7
 [41,] 415605.2 432884.7
 [42,] 415606.1 432882.7
 [43,] 415607.2 432880.7
 [44,] 415608.3 432878.3
 [45,] 415612.2 432874.8
 [46,] 415614.7 432871.9
 [47,] 415617.1 432870.7
 [48,] 415622.4 432868.2
 [49,] 415622.0 432862.4
 [50,] 415624.2 432855.4
 [51,] 415633.2 432845.3
 [52,] 415639.0 432841.1
 [53,] 415642.8 432832.9
 [54,] 415647.5 432828.7
 [55,] 415654.3 432820.3
 [56,] 415654.1 432816.5
 [57,] 415658.2 432812.8
 [58,] 415661.9 432808.6
 [59,] 415663.5 432808.7
 [60,] 415668.1 432803.5
 [61,] 415676.5 432801.3
 [62,] 415679.1 432802.7
 [63,] 415680.1 432802.7
 [64,] 415681.1 432802.7
 [65,] 415682.2 432802.7
 [66,] 415685.8 432804.7
 [67,] 415691.8 432802.2
 [68,] 415693.6 432798.9
 [69,] 415696.2 432777.0
 [70,] 415689.8 432773.5
 [71,] 415683.7 432771.6
 [72,] 415680.2 432766.7
 [73,] 415679.0 432765.6
 [74,] 415676.8 432753.7
 [75,] 415671.4 432747.7
 [76,] 415662.7 432747.2
 [77,] 415658.7 432750.0
 [78,] 415657.0 432746.3
 [79,] 415654.1 432743.7
 [80,] 415652.3 432739.8
 [81,] 415649.6 432739.6
 [82,] 415648.0 432739.7
 [83,] 415641.9 432736.4
 [84,] 415633.4 432736.9
 [85,] 415630.2 432734.7
 [86,] 415622.3 432733.6
 [87,] 415614.4 432726.5
 [88,] 415617.1 432719.1
 [89,] 415612.5 432718.1
 [90,] 415610.0 432720.9
 [91,] 415606.2 432716.6
 [92,] 415603.2 432713.9
 [93,] 415601.4 432710.0
 [94,] 415580.3 432708.7
 [95,] 415545.1 432709.7
 [96,] 415543.5 432711.5
 [97,] 415534.0 432715.7
 [98,] 415527.1 432713.7
 [99,] 415521.1 432711.6
[100,] 415505.6 432710.6
[101,] 415501.3 432710.9
[102,] 415499.3 432708.7
[103,] 415495.6 432711.6
[104,] 415482.6 432726.2
[105,] 415477.2 432734.0
[106,] 415478.1 432737.7
[107,] 415479.2 432739.7
[108,] 415480.9 432743.4
[109,] 415486.5 432751.2
[110,] 415493.2 432760.7
[111,] 415494.1 432762.7
[112,] 415498.1 432767.9
[113,] 415497.2 432770.7
[114,] 415490.6 432773.2
[115,] 415493.2 432775.6
[116,] 415496.0 432778.7
[117,] 415499.2 432779.7
[118,] 415499.6 432781.2



Slot "plotOrder":
[1] 1

Slot "labpt":
[1] 415587.3 432779.4

Slot "ID":
[1] "1"

Slot "area":
[1] 20712.98

Extracting slots

> bdryData@polygons[[2]]@ID 
[1] "1"

> bdryData@polygons[[2]]@plotOrder
[1] 1

But problem with coordinates

> bdryData@polygons[[2]]@coords
Error: no slot of name "coords" for this object of class "Polygons"

Any help is really appreciated. Thanks.

Answer

MaMu picture MaMu · Apr 23, 2015

Finally, I figured out that I didn't parse the output correctly. The correct way to do is bdryData@polygons[[2]]@Polygons[[1]]@coords. Mind the difference in command polygons(Polygons and polygons) and it took me ages to find out.