많은 포인트를 공간 분할하는 방법은 무엇입니까?


9

1 억 3 천만 건이 넘는 고객의 위치 데이터가 전국에 퍼져 있습니다. PostGIS의 공간 테이블입니다.

이제 각 서비스 지역에 다음과 같이 국가 전체를 '서비스 지역'으로 분할하고 싶습니다.

  • Atleast 30 고객
  • 최대 1000 평방 킬로미터입니다.

ArcGIS의 Aggregate 도구를 연구했지만 다음과 같은 이유로 기준에 맞지 않습니다.

  • 최소 카운트를 고려하지 않습니다
  • Qgis & Grass 만 사용할 수 있습니다.

이를 달성하기 위해 어떤 도구 / 프로세스를 사용할 수 있습니까?

답변:


4

나는 작은 실험을했다 :

  • 900 개의 랜덤 포인트 생성
  • 최소 스패닝 트리를 사용하여 연결
  • 중앙 어딘가에 싱크대를 골랐다

여기에 이미지 설명을 입력하십시오

  • 방향 그래프를 형성하기 위해 링크를 뒤집 었습니다. 즉, 각 노드는 결국 동일한 싱크로 방전됩니다.

여기에 이미지 설명을 입력하십시오

  • 더 작은 집수를 더 큰 집수로 모으기 위해 사용하는 스크립트를 실행하여 평균 "크기"가 30이되도록했습니다.

결과:

여기에 이미지 설명을 입력하십시오

이것이 관심이 있는지 알려면 스크립트 (이 사이트의 어딘가에 게시되어 있음)를 파헤 치거나 자세한 내용으로 워크 플로를 설명 할 수 있습니다. ArcGIS를 사용했습니다.

-------------------------------------

** 업데이트 2017 년 9 월

위와 매우 유사하지만 ArcGIS의 래스터 접근 방식, 거리 및 수 문학 도구를 사용합니다. 까다로운 부분은 최소 스패닝 트리를 생성하고 래스터 형식의 '캐치'출구를 찾는 것입니다.

다음은 내가 따르는 단계입니다.

  • 노드 삼각 측량 (클러스터를 가리킴), 삼각 네트워크 에지 추출, 노드를 WEIGHT 래스터 로 변환 :

여기에 이미지 설명을 입력하십시오

  • 가장자리 테이블의 계산 필드 : (ShapeLength ^ 3 / 1e6)을 사용합니다. 래스터로 변환하고 COST 래스터 를 만들기 위해 갭을 매우 높은 값으로 채 웁니다 . 이것은 서로 가까운 지점 사이의 흐름을 권장합니다. 흐름 경로는 싱크쪽으로 향하는 직선 근처에있는 것이 아니라 최소 스패닝 트리 (MST)와 유사하게 보일 것으로 기대됩니다.
  • COST 표면과 SINK를 소스로 사용하여 모든 노드 (OUTLET / SINK)를 선택하고 Cost Back Link 래스터를 만듭니다. 을 사용하여 링크 래스터를 적절한 흐름 방향 래스터로 다시 변환하십시오 Int(Power(2,"backlink"-1)). 흐름 방향과 무게 래스터를 사용하여 흐름을 축적하십시오. 비용 할당과 관련된 트릭은 실제로 MST와 비슷한 것을 생성합니다.

여기에 이미지 설명을 입력하십시오

네트워크의 프랙탈 구조를 염두에두고 'High Flow Streams'(즉, Con ( "FlowAccum"> 45,1)) 시작시 INLET 점을 약간 낮게 설정했습니다. 셀로 정의 된 유입구

고 유량 존재 및 초점 통계 = 2 & 셀이 SINK가 아닙니다 (유동 방향에 데이터 값 없음) .

여기에 이미지 설명을 입력하십시오

유입구를 유동점 및 흐름 방향으로 사용하여 집수를 정의하십시오. 사진은 115 개의 어획량을 보여줍니다.

여기에 이미지 설명을 입력하십시오

통계 : 평균 = 50.33, 최소 = 46 및 최대 = 74.

두 번째 어획량을 얻으려면 이미 정의 된 어획량에서 WEIGHT 래스터를 지우고 유량 누적 등을 계산할 수 있습니다.

이 방법은 래스터 기반이기 때문에 수백만 점에 대해 효과가 있으며 해당 점 수의 삼각 측량도 문제가되지 않습니다.


1
이것이 나에게 유용 할 지 모르겠지만 지옥처럼 재미있어 보입니다. 가능하면 스크립트를 게시하십시오.
Devdatta Tengshe

오늘이나 월요일에 스크립트를 게시하고 휴무를했습니다. 그 동안 gis.stackexchange.com/questions/179559/…를 살펴보십시오. 여기서 그 아이디어를 설명했습니다
FelixIP

밤새 100,000 포인트로 테스트했습니다. 마지막 단계는 가까운 6 시간 데려 그것은하지 않습니다 더 이동 하지 적어도는 ArcGIS에 접근합니다. Patterson의 도구 I가 고착 되었기 때문에 MST를 직접 코딩해야한다는 것은 말할 것도 없습니다.
FelixIP

당신은 그것을 해결 했습니까? 래스터 접근 방식을 사용한 것 같습니다. 관심이있는 경우 워크 플로를 게시 할 수 있습니다.
FelixIP

제발. 나는 Bruteforce 방법으로 문제를 해결했다. 그러나 나는 다른 사람들이 당신의 새로운 접근으로 혜택을 볼 수 있다고 확신합니다.
Devdatta Tengshe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.