R로 작성된 코드를 사용하여 마을 (또는 shapefile 다각형의 점) 사이의 물의 양을 감지합니다. 나는 2379 개가 넘는 마을 (마을에 숫자가있는 이름)이있는 방향이없는 그래프를 만들어서 28 억 개의 조합을 가져올 것입니다. 그래프는 단지 하나의 데이터 프레임 일뿐입니다. 나는 100m 간격으로 Village2에 Village1, 말에서 지점을 생성하는 기능을 가지고, 모든 조합에 대한모양 파일 다각형의 점을 더 빨리 찾도록하십시오. R
VillageName1, VillageName2
Village1, Village2
Village1, Village3
Village1, Village4
...
Village2379, Village2378
: I는 각 마을의 좌표를 가지고있다. 따라서 Village1과 Village2가 1km 떨어져 있다면 8 점이 생성됩니다. 이 기능은 비교적 빠르게 실행됩니다.
문제는 Village1과 Village2가 두 개의 분리 된 섬에있을 경우 100 미터의 물의 양을 감지 할 수 있도록 세계 해양 shapefile (6.9mb)을 사용하고 있지만 문제가 있습니다 (계산 당 약 4 초) 28 억 번 실행하면 영원히 걸릴 것입니다. ,
sea <- readOGR('World_EEZ_v8_2014.shp')
ocean_indo_shapefile <- sea[sea$Country == "Indonesia", ]
#this function creates the points from Village1 to Village2 in 100m intevals, output is a dataframe
points <- create_coordinates(village1_lat, village1_long, village2_lat, village2_long, 0.1)
coordinates(points) <- ~ Longitude + Latitude
proj4string(points) <- proj4string(ocean_indo_shapefile)
#the calculation below is slow
water_in_meter <- length(points[ocean_indo_shapefile,])
나는 사람이 내가이 훨씬 빨리 만들 수있는 방법에 대한 제안 도울 수 있다면 확실하지 않다 :
나는 그 마을을 기반으로 국가에 Shape 파일 (ocean_indo_shapefile) (인도네시아)를 필터링 시도 어떤 도움을 주셔서 감사합니다. 미리 감사드립니다.
포스트 기어가 될 수 있습니다 –
마지막 줄만 느립니다? 'points'는 데이터 프레임입니까? –
전 PostGIS를 사용한 적이 없으므로이 컨텍스트에서 그렇게하는 방법을 모르겠습니다. – iPho