x
, y
, shapeid
(총 289 개)으로 그룹화되고 다각형을 형성하는 + 500k 행을 포함하는 하나의 표가 있습니다.인접한 다각형 찾기 R
shapeid x y
1 679400.3 6600354
1 679367.9 6600348
1 679313.3 6600340
1 679259.5 6600331
1 679087.5 6600201
0 661116.3 6606615
0 661171.5 6606604
0 661182.7 6606605
0 661198.9 6606606
0 661205.9 6606605
... ... ...
내가 교차 또는 서로 가까운 자리 잡고 좌표를 찾으려면, 각각의 물리적 이웃을 찾는 본질적으로 는을 shapeid. 내가 클래스를 실행하면
library(sp)
library(rgeos)
mydata <- read.delim('d:/temp/testfile.txt', header=T, sep=",")
sp.mydata <- mydata
coordinates(sp.mydata) <- ~x+y
, 다 괜찮 은데 :
class(sp.mydata)
[1] "SpatialPointsDataFrame"
attr(,"package")
[1] "sp"
을
shapeid shapeid_neighbour1 shapeid_neighbour2
그래서 내가 지금처럼 SP와 rgeos를 사용하여 시도 :
결과는 같을한다
이제 각 지점별로 거리를 계산해보십시오.
d <- gDistance(sp.mydata, byid=T)
R Studio에서 치명적인 오류가 발생했습니다. 어떤 아이디어?
min.d <- apply(d, 1, function(x) order(x, decreasing=F)[2])
하는, 즉 가장 가까운 지점 두 번째 최단 거리를 찾으려면 : 내 계획은 사용 후입니다. 그러나 아마도 이것은 내가 원하는 것을 할 수있는 최선의 방법이 아니겠습니까? 각 셰이드 아이디에 대한 물리적 이웃을 찾는 것일까요? 당신의 dataframe의 각 shapeid
다각형의 정점을 식별하는 가정
정말 모양 사이의 유클리드 거리에 관심이 있습니까? 일반적으로 SHP는 지구 타원체의 기하학을 나타냅니다. –
질문 주제로 돌아 가기. 다각형 사이의 거리 행렬을 계산 중입니다. 100k x 100k는 RAM보다 좋을 수 있습니다. 이 행렬을 계산하여 행 단위로 파일에 저장해보십시오. –
다각형의 모든 꼭지점에서'SpatialPOINTSDataFrame'을 생성했습니다. 'SpatialPOLYGONS'가 필요합니다. 2 열 매트릭스의 집합에서 spatialPolygons을 만드는 방법을 연구하면,'spdep '패키지의 함수를 사용하여 인접성을 계산할 수 있습니다. – Spacedman