GIS

QGIS: DEM을 이용한 6부 능선 초과 지역 분석

유병혁 2022. 1. 16. 10:00

안녕하세요? 이번 글은 DEM 기반으로 6부 능선 초과 지역을 분석하는 과정을 정리해 보겠습니다. 이 글에서 적용한 6부 능선 계산 방식은 아래와 같으며, 최고 표고점 탐지 방법은 이전 글(https://blog.daum.net/geoscience/1701)을 참고하시면 되겠습니다. 여기서는 최고표고점이 획득된 상태에서 시작해 보겠습니다.

아래와 같이 최고 표고점과 DEM이 준비되어 있습니다.

첫 번째 작업은 최고 표고점에서 2km 버퍼를 생성하는 것입니다. 이때 버퍼는 16방위를 고려해야 합니다. '공간 처리 툴박스 > 벡터 도형 > 버퍼'를 실행합니다.

버퍼 창에서 입력 레이어에 '최고 표고점'를 지정하고,

거리는 2.0 킬로미터, 선분은 4(관련 글: https://blog.daum.net/geoscience/1700)를 입력합니다.

사분원을 4개 선분으로 표현하므로, 16방위에 해당하는 버퍼를 만들게 됩니다.  

버퍼 산출물은 아래와 같습니다.

해당 버퍼의 꼭짓점을 추출해 보겠습니다. '공간 처리 툴박스 > 벡터 도형 > 꼭짓점 추출'을 실행합니다.

입력 레이어에 버퍼 산출물을 지정합니다.

결과는 다음과 같습니다.

최고 표고점 레이어의 속성 테이블에는 ID 필드가,

버퍼 산출물 꼭짓점 레이어의 속성 테이블에도 같은 값의 ID 필드가 존재합니다. 같은 필드값을 통해 2개 레이어를 라인으로 연결해 보겠습니다.

'공간 처리 툴박스 > 벡터 분석 > 라인에 따라 결합 (허브 라인)'을 클릭합니다.

허브 레이어와 허브 ID 필드는 최고 표고점 레이어를 기준으로, 스포크 레이어와 스포크 ID 필드는 버퍼 산출물 꼭짓점 레이어를 기준으로 설정해 줍니다. 참고로, 허브(hub)는 (바퀴의)중심축, 스포크(spoke)는 (바퀴의)바퀴살을 뜻합니다.

결과는 다음과 같습니다. 이제 각 방위선과 중첩되는 DEM 픽셀 중 최저 고도값을 계산해 보겠습니다.

'공간 처리 툴박스 > GRASS > Vector (v.*) > v.rast.stats'를 실행합니다. 구역 통계를 라인에도 적용 가능한 기능입니다.

v.rast.stats 창에서,

 Name of vector polygon map은 허브 라인을, Name of raster map to calculate statistics from은 DEM을 지정합니다.

Column prefix for new attribute columns은 표고 약어인 HGT를 입력하고 The methods to use는 클릭해서,

최저 고도에 해당하는 minimum만 체크해 줍니다.

산출물의 속성 테이블을 열어보면 'HGT_minimum' 필드를 확인하실 수 있습니다. 해당 필드를 오름차순으로 정렬한 후, 최저 4개 지점을 선택해 줍니다.

아래와 같이 6부 능선을 검토합니다.

6부 능선 초과 지역을 추출해 볼까요?! '래스터 > 래스터 계산기'를 실행하고,

아래와 같이 래스터 계산기 표현식을 <"DEM@1" > 6부 능선 표고값>으로 설정해 줍니다. *@다음 1이라는 숫자는 해당 래스터 레이어의 1번 밴드를 뜻합니다.

6부 능선 초과지역 산출물의 레이어 속성 창을 실행합니다.

심볼 탭에서 '렌더링 유형 > 팔레트/고유 값'으로 설정하고 '분류'를 클릭(색상 지정)합니다. 

투명도 탭에서 '추가적인 NODATA 값에 0을 입력합니다.

속성을 조정한 6부 능선 초과 지역 산출물은 아래와 같습니다.