패키지 sp
은 서로 다른 공간 개념 (점, 선, 다각형)에 대해 다양한 클래스를 제공합니다. 일부 클래스의 경우 피쳐 좌표에 액세스하는 것이 간단합니다. . 모든 예제는 각 클래스 도움말 페이지에서 가져 왔습니다. SpatialPolygons
를 들어SpatialPolygons 및 기타 sp 클래스의 피쳐 좌표 추출
l1 = cbind(c(1,2,3),c(3,2,2))
l1a = cbind(l1[,1]+.05,l1[,2]+.05)
l2 = cbind(c(1,2,3),c(1,1.5,1))
Sl1 = Line(l1)
Sl1a = Line(l1a)
Sl2 = Line(l2)
S1 = Lines(list(Sl1, Sl1a), ID="a")
S2 = Lines(list(Sl2), ID="b")
Sl = SpatialLines(list(S1,S2))
coordinates(Sl)
# [prints a list of two with corresponding segments]
, coordinates()
반환 다각형 센터 아래 입증한다.
Sr1 = Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))
Sr2 = Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))
Sr3 = Polygon(cbind(c(4,4,5,10,4),c(5,3,2,5,5)))
Sr4 = Polygon(cbind(c(5,6,6,5,5),c(4,4,3,3,4)), hole = TRUE)
Srs1 = Polygons(list(Sr1), "s1")
Srs2 = Polygons(list(Sr2), "s2")
Srs3 = Polygons(list(Sr3, Sr4), "s3/4")
SpP = SpatialPolygons(list(Srs1,Srs2,Srs3), 1:3)
coordinates(SpP)
[,1] [,2]
[1,] 2.696970 3.545455
[2,] 3.666667 2.333333
[3,] 6.133333 3.933333
기능 좌표를 추출하는 공통 패키지에는 편리한 기능이 있습니까? 내가 SpatialPolygons
에 대한 함수를 생각해 냈지만, 더 잘 테스트되었고 일관성이 있으며, 아마도 대부분의/모든 sp
클래스에 걸쳐있는 것을 찾고 있습니다. 내가 생각할 수있는
getEdges <- function(x) {
stopifnot(class(x) == "SpatialPolygons")
lapply([email protected], function(y) {
[email protected][[1]]@coords
})
}
getEdges(SpP)
# [returns a list of three, coordinates in a matrix]
내가 당신에게 아주 좋은 책 추천 : 세리에 "사용 R에"R과 응용 공간 데이터 분석 "귀하의 예제 데이터를 사용하여 ! " -> http://www.springerlink.com/content/978-0-387-78171-6#section=147788&page=1 – Pop
일반적으로'@ property'를 사용하여 물건을 추출하는 것은 바람직하지 않습니다. 이것은 개체의 내부 조직이며 예고없이 변경 될 수 있습니다. –