GIS

QGIS: DEM과 임상도를 활용한 고도별 수종 통계 구하기

유병혁 2021. 8. 1. 00:28

안녕하세요? 이번 글은 DEM과 임상도를 활용하여 고도별 수종 통계를 구하는 과정을 정리해 보겠습니다.

이전 실습 글은 다음과 같습니다.

 

QGIS: 래스터 레이어 재분류하고 유일 값 통계 구하기

안녕하세요? 이번 글은 QGIS에서 래스터 레이어를 재분류하고 유일 값 통계를 구하는 과정을 정리해 보겠습니다. 실습 데이터는 다음 링크에서 내려받으실 수 있습니다. NASADEM_JIRISAN_OUTR.tif : 지리

blog.daum.net

실습 데이터는 다음 링크에서 내려받으실 수 있습니다.

  • FR_SMAP_5K_JIRISAN_OUTR.shp: 지리산국립공원 1:5000 임상도
  • NASADEM_JIRISAN_OUTR_RCLS.tif : 지리산국립공원 재분류 NASADEM

고도별 수종 통계를 계산하는 모델은 아래와 같습니다. 총 6개 기능을 사용합니다. 그럼 시작해 볼까요?!

일단, 실습을 위한 DEM과 임상도를 레이어 추가해 봅니다. 임상도는 아래와 같습니다.

1:5000 축척으로 제작된 임상도를 사용하며, 속성 테이블은 아래와 같습니다.

임상도 속성 정보는 아래 문서를 참고하시면 됩니다. 해당 문서 출처는 국가공간정보포털입니다.

임상도(5000) 속성정보.pdf
0.10MB

임상도의 레이어 속성 중 '필드 관리' 탭을 열어봤습니다. '정수'에 해당하는 코드 값 필드들이 '텍스트(String)' 유형으로 지정된 것을 확인할 수 있는데요, 이 상태로는 임상도를 래스터화할 때 코드 값 필드들을 제대로 읽어들일 수 없습니다. 따라서 필드 유형을 먼저 변경해 보겠습니다!

필드 유형 변경을 위해 공간처리 툴박스에서 '벡터 테이블 > 필드 재작성' 기능을 실행해 봅니다.

'필드 재작성' 실행 창은 아래와 같습니다.

아래와 같이 형변환 하고자 하는 필드의 유형을 변경해 주시면 됩니다.

저는 STORUNST(임목존재코드), FROR_CD(임종코드), FRTP_CD(임상코드), KOFTR_GROU(수종그룹코드), DMCLS_CD(경급코드), AGCLS_CD(영급코드), 임분고코드(HEIGHT)를 변경해 보겠습니다!

자, 실행해볼까요?!

아래와 같이 해당 필드 유형들이 '텍스트'에서 '정수'로 변경되었습니다.

이제 임상도를 벡터에서 래스터로 변환해 보겠습니다. 'GDAL > 벡터 변환 > 래스터화 (벡터를 래스터로)'를 실행합니다.

실행 창은 아래와 같습니다. 이 기능의 QGIS 사용자 지침서는 아래 글을 참조하시면 됩니다.

 

24.2.6. 벡터 변환 — QGIS Documentation 문서

© Copyright 2002-now, QGIS project. 최종 업데이트: 7월 31, 2021 09:28

docs.qgis.org

실행 창은 아래와 같습니다.

벡터를 래스터로 변환할 때는 DN 값으로 사용할 필드를 지정해 주어야 합니다.

저는 '수종그룹코드(KOFTR_GROU)' 필드를 통해 래스터화를 진행해 보겠습니다.

'번-인(Burn-in) 값에 사용할 필드'를 아래와 같이 지정해 줍니다.

'번-인(Burn-in) 값에 사용할 필드'가 지정되어 '번인(burn in)할 고정값'은 무시됩니다.

산출 래스터 크기 단위를 '좌표계 단위'로 지정합니다.

'너비/수평 해상도'와 '높이/수직 해상도'는 5(m)로 설정해 줍니다.

산출물 영역은 '레이어에서 계산'을 클릭하고 임상도를 지정해 줍니다.

임상도의 산출물 영역이 자동 입력됩니다.

'산출 밴드에 지정한 NODATA 값을 할당'은 기본값이 0입니다.

코드 값 필드는 0을 별도 값으로 사용하므로 -9999를 입력해 주겠습니다.

자, 이제 실행해 보면!

아래와 같이 임상도 벡터가 래스터로 변환되었습니다. 이제 수종 통계를 위한 데이터는 준비되었습니다!

이번에는 DEM 래스터를 벡터로 변환해 주겠습니다. 'GDAL > 래스터 변환 > 폴리곤화(래스터를 벡터로)'를 클릭합니다.

자, '폴리곤화(래스터를 벡터로)'을 실행하면,

다음과 같이 DEM 래스터가 벡터로 변환되었습니다!

DEM 벡터에서 유효하지 않은 도형을 수정하기 위해 '벡터 도형 > 도형 수정'을 실행합니다.

아래와 같이 '도형 수정'을 적용해 봅니다!

이번에는 도형 수정 결과에 '벡터 도형 > 디졸브'를 적용합니다.

실행 창은 다음과 같습니다.

'디졸브 필드'는 DN을 지정해 주시면 됩니다. 이제 고도별 수종 통계를 위한 준비가 끝났습니다!

'래스터 분석 > 구획 히스토그램'을 실행합니다.

래스터 레이어, 구역 벡터 레이어를 아래와 같이 지정합니다. 고도별 수종 통계는 *.xlsx로 저장해 봅니다.

결과는 아래와 같습니다. 'DN' 필드의 수치 값은 고도별 급간을 지시(예: DN이 2이면 101 < 고도 값 <= 200)합니다. 'HISTO_XX'은 각각의 고도별 급간에 대하여 XX 코드가 가리키는 수종의 면적을 나타냅니다. 해당 면적 정보에서 1은 25㎡(5m×5m)로 계산하시면 됩니다.

위 표를 편집해서 아래와 같이 고도별 수종 통계를 계산할 수 있습니다!