REMOTE SENSING

QGIS: SCP 플러그인 - (4) 센티널 2호 위성영상 토지피복 분류

유병혁 2020. 11. 11. 02:22

안녕하세요? 이번 글은 QGIS에서 SCP 플러그인을 통해 센티널 2호 위성영상으로부터 토지피복을 분류해 보겠습니다.

 

 

일단 각각의 밴드들을 하나의 밴드셋으로 결합하기 위해 'SCP > Band set'을 실행합니다.

 

 

'Single band list > Refresh list'를 클릭해서 현재 레이어 패널에 있는 레이어 목록을 불러옵니다.

 

 

2번, 3번, 4번, 8번 밴드와 NDVI, NDWI 래스터를 선택하고 'Add band to Band set'을 클릭합니다.

 

 

아래와 같이 Band set 1에 선택한 레이어가 추가되었습니다.

 

 

'Band set tools'에서 'Create virtual raster of band set'과 'Create raster of band set'을 체크하고 'RUN' 버튼을 클릭합니다.

 

 

다음과 같이 밴드 셋 virtual raster는 vrt 포맷으로, raster는 tif 포맷으로 파일이 생성됩니다. 

 

 

 

 

'Semi-Automatic Classification Plugin' 아이콘을 클릭하고,

 

 

'Multiband image list'에서 앞서 만든 밴드 셋 래스터를 선택해서 'Band set 1'에 지정해 줍니다.

 

 

'SCP Working Toolbar'의 'RGB ='을 3-2-1로 지정합니다. 3, 2, 1은 각각 밴드 셋의 3번째, 2번째, 1번째 밴드에 해당합니다.

앞서 설정한 밴드 셋 구성으로 보면 4번(Red, 중심파장 0.665㎛), 3번(Green, 중심파장 0.560㎛), 2번(Blue, 중심파장 0.490㎛)에 해당하겠죠?!

 

 

 

RGB 밴드가 설정한 결과는 아래와 같습니다.

 

 

이제 SCP Dock 패널을 통해 토지피복 분류를 진행해 보겠습니다. 먼저 'Training input' 탭을 선택합니다. 

 

 

'Create a new training input'을 클릭하고, TRNG_IN.scp 파일을 정의해 봅니다.

 

 

레이어 패널에 TRNG_IN 레이어가 추가되었습니다.

 

 

이제 토지피복 분류를 위한 학습 데이터를 지정할 텐데요, RGB 구성을 4-3-2로 변경해서 식생 영역을 두드러지도록 변경해 보겠습니다. 

 

 

아래 표에서 좌측은 IPCC(기후 변화에 관한 정부간 협의체)의 토지피복 분류 기준을, 우측은 UN FAO(유엔 식량농업기구)의 토지피복 분류 기준을 나타냅니다. 이 표를 참고하여 이번 실습의 토지피복은 농경지(Agriculture), 산림지(Forest), 도심지(Settlement), 수역(Water)으로 정의해 봅니다.

 

 

자, 그럼 학습 데이터를 정의해볼까요?! 일단 해당 지역을 이해하는데 도움이 될 VworldHybrid 레이어를 추가합니다.

 

 

 SCP Working Toolbar에서 'Create a ROI polygon'을 클릭하고,

 

 

농경지(Agriculture)에 해당하는 영역을 아래와 같이 지정해 줍니다.

 

 

SCP Dock 패널을 보시면, 내가 현재 선택한 영역에 관한 MC와 C 인자를 정의하는 부분이 있습니다.

여기서 MC는 매크로 클래스를, C는 하부의 클래스를 지시합니다. MC와 C의 Info는 아래와 같이 작성해 봅니다.

 

 

클래스 명칭 설정까지 정리되었으면 'Save temporary ROI to training input'을 클릭합니다.

 

 

SCP Dock 패널에 아래와 같이 해당 클래스가 정의되었습니다.

 

 

Color를 클릭해서 '색 선택' 창을 통해 원하는 색상을 선택해 줍니다.

 

 

자, 농경지 클래스가 하나 추가되었습니다.

 

 

같은 방식으로 농경지(Agriculture), 산림지(Forest), 도심지(Settlement), 수역(Water) 학습 데이터가 추가되었습니다.

 

 

이제 SCP Dock 패널에서 'Classification' 탭을 선택하고,

 

 

'Use'에서 'MC ID'를 클릭합니다.

 

 

'Algorithm'은 Spectral Angle Mapping'을 선택하겠습니다.

 

 

'Active classification preview pointer' 아이콘을 클릭하고,

 

 

맵 뷰에서 한 곳을 클릭하면, 일정 영역의 분류 미리보기가 실행됩니다.

 

 

분류 미리보기 결과가 만족스러우면 'Classification output'에서 'Classification report'를 클릭하고 'RUN'을 실행합니다.

 

 

결과는 다음과 같습니다. 여기까지 SCP 플러그인의 토지피복 분류 기능을 학습해 봤습니다. 플러그인 개발자인 루카 콘지도 님께 감사드립니다.