QGIS를 사용하여 벡터 포인트 데이터에서 클러스터를 식별합니까?


34

농촌 광대역 데이터 포인트 (얼마나 빠름 등)의 벡터 데이터 세트가 있으며 비슷한 특성을 가진 포인트 클러스터가 있는지 탐색하고이를 포괄하는 다각형을 플롯하고 싶습니다.

예를 들어, 단일 PostGIS 데이터 세트에 45,000 개의 포인트가 가로에 분산되어있을 수 있습니다. xkm 이내에 있고 속도가 y kbps 미만인 클러스터를 식별하고 각 적격 클러스터에 대해 볼록 껍질을 생성하고 싶습니다.

예를 들어 QGIS에서이를 수행하는 간단한 방법이 있습니까?


3
광대역의 특성에주의를 기울이고 싶을 수도 있습니다. 도시 지역 내에서 고속이 발생합니다. 산업 집단; CO, 모뎀 및 기타 광섬유 / 케이블 / DSL 인프라에서 도로를 따라 방사 특정 셀 타워에서 브로드 캐스트 ( "브로드밴드"의 정의에 따라). 따라서 높은 속도는 클러스터에 표시되고 낮은 속도는 모양을 클러스터한다. 특히 볼록 껍질이 저속 지역에 대한 적절한 설명이 될 가능성은 낮습니다. 찾은 "클러스터"를 어떻게 해석하려고하는지 아는 것이 좋습니다.
whuber

도와 주셔서 감사합니다. 나는 더 넓은 시골 지역을 연구하고 있는데, 유선 광대역의 구조가 거리 캐비닛과 기둥에 직접 공급되는 선 및 지역의 지리 등으로 인해 더 특이한 상황을 던질 수 있습니다. 결과적으로 로컬 솔루션을 구축하는 데 유용한 출발점이 될 수 있고 전략을 개발하는 데 중요한 단계가 될 수있는 클러스터를 찾을 수 있습니다. 사실, 산업 유산이나 철도 및 강과 같이 교차하기 어려운 것으로 인해 도시 지역에서도 찾을 수 있습니다.
Adrian

답변:


15

나는 여러 제안에서 비트를 결합하고 내 자신의 비트를 추가하고 QGis 내에서 나에게 잘 맞는 솔루션을 찾았습니다!

먼저 PostGis SELECT를 실행하여 올바른 공통 속성을 가지며 xkm 이내의 지점을 찾습니다.

고르다 선택 s1.postcode, s1.the_geom, s1.gid FROM broadband_data AS s1 Join 광대역 _data AS s2 ON ST_DWithin (s1.the_geom, s2.the_geom, 1000) 어디서 s1.postcode! = s2.postcode 및 s1.fastest_broadband

(Manning의 매우 훌륭한 PostGis in Action에서 매우 직접적으로 직접 참여 가능)

그런 다음 Carson Farmer의 ManageR 플러그인을로드하고 레이어를 가져 왔습니다. 여기에서 나는 제안 PAM 클러스터링 과정을 따라 여기에 , 그리고 볼록 선체가 fTools를 사용하여 초 단위로 계산 하였다 된 모양 파일에 결과를 수출 (카슨은 약 얻을 않습니다!).


PostGIS 작동의 첫 번째 버전은 이제 인쇄되지 않습니다. 다음은 2nd edition manning.com/books/postgis-in-action-second-edition 에 대한 링크와 무료 manning-content.s3.amazonaws.com/download/a/… 인 첫 번째 장에 대한 링크 입니다. PostGIS
Martin Hügi

8

QGIS 솔루션은 아니지만 SaTScan을 사용한 탐색 적 분석을 개인적으로 선택합니다 . 빠르고, 잘 문서화 되고 널리 적용되므로 시동에 문제가 없어야합니다. 45k 포인트는 약간의 RAM이 필요할 수 있습니다.

Postgres에서 직접 읽을 수 있는지 확실하지 않지만 dbf 및 텍스트 파일에서 쉽게 가져올 수 있습니다.

그런 다음 분석 결과를 Postgres 또는 QGIS로 쉽게 다시 읽을 수 있습니다. 원형 클러스터 또는 타원을 검색하도록 결정할 수 있습니다 (예 : 계곡에 긴 모양의 도시 / 마을 등 데이터에 특정 유형의 거주지가있는 경우 사용하는 것이 유용 할 수 있음). 그런 다음 다각형 또는 타원을 생성하거나 클러스터의 멤버 인 위치 만 표시 할 수 있습니다.

Google 어스에서 결과를 빠르게 미리 보려면 NAACCR의 SaTScan을 Google 어스 변환 도구로 사용할 수도 있습니다 .

중요한 것은-Monte Carlo 시뮬레이션을 실행하기로 결정한 경우 (최소한 99, 생각합니다) 클러스터의 통계적 유의성에 대해서도 알려줄 수 있습니다. 이 클러스터의 해석과 타당성은 적어도 지난 20 년 동안 우주 과학에서 논의 된 것처럼 또 다른 문제가 될 것입니다.

높음, 낮음 또는 낮음 및 낮음 값의 클러스터를 찾기 위해 순수한 공간 분석을 시도 할 수 있습니다. 데이터에 * 일일, 주 단위 집계) 시간 속성이 있으면 시공간 모델을 실행하는 것이 정말 흥미로울 것입니다.


2
좋아 보인다-정답
Mapperz

5

SciPy에는 (python 용) 클러스터링 패키지가 있으며, 파이썬 콘솔에서 사용하거나, 간단한 플러그인을 작성하여 postgis에서 PL / python을 사용할 수 있습니다.

http://docs.scipy.org/doc/scipy/reference/cluster.html

분석 후 f-tools를 사용하여 볼록 껍질을 만듭니다.


나는 파이썬 경험이 거의없는 간단한 사용자이지만 살펴볼 것입니다-배울 필요가 있다는 것을 알고 있습니다!
Adrian

SciPy 클러스터링은 포인트 간의 공간 관계를 고려합니까?
radek

1
점의 x 및 y 좌표에 대해 공변량을 두 개 더 추가하면됩니다.
Jose


3

Ftools 플러그인을 사용해 볼 수 있습니다. Vector> Geoprocessing Tools> Convex Hulls.

Create convex hulls based on input field입력 필드 매개 변수는 입력 지점의 속성에서 가져와야 하는 옵션이 있습니다 .


도와 주셔서 감사합니다. 볼록 껍질 비트는 다각형을 생성하지만 클러스터가 존재하는지 또는 어디에 있는지 식별하지 않습니다. 먼저 xkm 내에서 유사한 특성을 가진 점을 연관시키는 방법을 찾고 싶습니다. 클러스터의 존재를 고유하게 식별하고 각 클러스터의 구성원에 대한 postgis 테이블의 추가 필드를 업데이트하는 스크립트를 실행해야한다고 생각합니다. 예를 들어, 들로네 삼각 분할 (Delaunay Triangulation)을 만들고 삼각형의 변이 xkm보다 긴 모든 점을 필터링하지만 어떻게해야할지 모르겠습니다.
Adrian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.