QGIS를 사용한 래스터 클러스터링


10

분류 된 래스터를 각 클래스 내의 공간 클러스터를 기반으로 다각형으로 변환하는 방법을 찾고 있습니다. 클러스터가 유효한 것으로 간주 되려면 클래스 중 하나의 최소 백분율 셀로 구성해야합니다.

예를 들어, "1"클래스의 70 % (또는 그 이상) 셀로 구성된 영역은 다른 클래스에 속하는 30 % 셀과 혼합되어 있어도 "1"클래스의 클러스터로 간주됩니다. 따라서 군집 분석은 동일한 클래스의 셀 간 거리를 기반으로해야합니다.

또 다른 옵션은 최대 검색 영역의 정의와 함께 특정 클래스 내의 최소 셀 수를 기반으로 클러스터링을 수행하는 것입니다.

예를 들어 : 지정된 영역 내에 "클래스 1"의 100 개의 셀이 있어야 클러스터로 간주됩니다.  

클러스터링과 관련된 대부분의 도구는 벡터에서만 작동하는 것 같습니다. SAGA 도구 클러스터 분석을 살펴 봤지만 실제로는 내 목적에 맞지 않았습니다. 이 문제를 해결하기위한 아이디어 나 도움이 될만한 다른 도구가 있습니까?


래스터를 벡터로 변환하고 벡터 클러스터링 도구를 사용할 수 있습니다.
— csk

그것은 옵션이지만 가능하다면 래스터 형식으로 분석하는 것이 훨씬 쉽다고 생각합니다. 벡터로의 변환은 아마도 래스터 셀의 결합에서 많은 디테일이 손실되거나 너무 많은 점이 처리하는 다각형을 생성 할 것입니다 (큰 데이터 세트).
— Spiran

3
나는 이것이 QGIS 솔루션이 아니라는 것을 알고 있지만 파이썬이나 R을 사용하여 이웃 함수를 만들 수 있으므로 각 셀을 보는 새로운 래스터를 만들고 이웃의 셀 중 70 % 이상이 클래스에 속하는 경우 해당 셀이 해당 클래스로 다시 분류됩니까?
— Liam G

감사합니다! 나는 Python을 처음 사용하지만 시도해 볼 가치가 있습니다.
— Spiran

답변:


5

"래스터 논리"에서이 문제를 해결하려면 몇 가지 필터를 고려해야합니다. 최선의 선택은 "배경"값 내에서 각 클래스의 픽셀의 공간 분포에 따라 다르지만 다음과 같은 두 가지 솔루션이 있습니다.

제거하려는 패치가 비교적 큰 경우 "sieve"(QGIS 3.2의 래스터> 분석> 시브 (gdal_sieve.py 기반))를 사용해야합니다.

gdal_sieve.py 스크립트는 제공된 임계 값 크기 (픽셀)보다 작은 래스터 다각형을 제거하고 가장 큰 인접 다각형의 픽셀 값으로 대체합니다. 결과를 기존 래스터 밴드에 다시 쓰거나 새 파일로 복사 할 수 있습니다.

"소금과 후추"효과 (다른 클래스의 많은 분리 된 픽셀이지만 작은 경로당 몇 개의 픽셀)와 같은 것이 있다면 대다수 필터를 사용해야합니다 (예 : GRASS> raster> r의 추가 도구로 이동). 이웃> "모드"옵션 선택)이 필터는 경계에 약간 영향을 미칩니다.

r.neighbors-각 셀 범주 값을 주변 셀에 할당 된 범주 값의 함수로 만들고 출력 래스터 맵 계층에 새 셀 값을 저장합니다

원하는 경우 SAGA 도구 (SAGA> 래스터 필터)에서 동일한 파일러 (주요 필터, 체질 클래스) 및 다른 파일러 (모폴로지)를 찾을 수 있습니다.


이것은 실제로 내가 어떻게 해결했는지 거의 비슷했습니다. 기본적으로 잔디 주변 분석 도구를 측면에서 일부 계산과 함께 사용합니다. 그래도 솔루션 게시를 잊어 버렸습니다. 입력 radouxju에 감사드립니다.
— Spiran
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.