17.17. 그래프 모델 작성자 시작

주석

이 강의에서 작업 흐름을 정의하고 일련의 알고리듬들을 실행할 수 있는 강력한 구성 요소인 그래프 모델 작성자(graphical modeler) 사용법을 배울 것입니다.

일반적으로 공간처리 도구를 사용할 때에는 알고리듬 하나를 실행하는 것보다 더 많은 작업을 포함합니다. 결과를 얻기 위해 보통 몇 개의 알고리듬을 실행하며, 그 가운데 일부 알고리듬의 산출물은 다른 알고리듬의 입력 레이어로 쓰이곤 합니다.

그래프 모델 작성자를 사용하면, 이런 작업 흐름을 모델로 구성할 수 있습니다. 즉 필요한 모든 알고리듬을 한 번에 실행할 수 있으므로, 전체 과정을 단순화하고 자동화할 수 있습니다.

이 강의를 시작하기 전에 지형 습윤 지수(Topographic Wetness Index)라는 명칭의 파라미터를 계산해야 합니다. 이를 계산하는 알고리듬이 Topographic Wetness Index (TWI) 입니다.

../../../_images/twi.png

그림에서 알 수 있듯이 SlopeCatchment Area 두 입력 레이어가 반드시 있어야 합니다. 다른 선택적인 입력 레이어도 있지만, 지금 사용할 것은 아니기 때문에 무시하도록 하겠습니다.

이 강의에 해당하는 데이터는 DEM 하나만을 담고 있으므로 필요한 입력 레이어가 없습니다. 그러나 우리는 DEM에서 이 두 레이어를 계산하는 방법을 알고 있습니다. 경사도와 집수 지역을 계산하는 알고리듬을 배웠기 때문이죠. 따라서, 먼저 해당 레이어들을 계산한 다음 TWI 알고리듬에 쓸 수 있습니다.

이 중간 단계의 두 레이어를 계산하는 데 사용해야 하는 파라미터 대화 창은 다음과 같습니다.

주석

Slope must be calculated in radians, not in degrees.

../../../_images/slope1.png ../../../_images/area.png

TWI 알고리듬의 파라미터 대화 창을 다음과 같이 설정해야 합니다.

../../../_images/twi_filled.png

다음과 같은 결과물을 얻게 될 것입니다. (렌더링에 기본값인 단일 밴드 의사(pseudo) 색상 반전 색상표를 사용했습니다.) 제공된 twi.qml 스타일을 적용해도 됩니다.

../../../_images/twi_layer.png

이제 DEM에서 한 단계만에 TWI를 계산하는 알고리듬을 생성해보도록 하겠습니다. 이후 다른 DEM에서 TWI 레이어를 계산해야 할 경우 작업 시간을 절약해줄 것입니다. 앞에서 했던 3단계 대신 단 1단계만에 할 수 있기 때문입니다. 필요한 모든 처리 과정은 툴박스에서 찾을 수 있으므로 이 단계들을 포장하는 작업 흐름을 정의하기만 하면 됩니다. 바로 그래프 모델 작성자를 사용해서 말이죠.

Processing 메뉴에서 Processing modeler 항목을 선택해서 모델 작성자를 실행하십시오.

../../../_images/modeler.png

모델을 생성하려면 두 가지가 필요합니다. 필요한 입력물을 설정하고, 모델이 담고 있는 알고리듬을 정의해야 합니다. 모델 작성자 창의 왼쪽에 있는 InputsAlgorithms 탭에서 두 요소들을 추가하면 됩니다.

Inputs 부터 시작해보겠습니다. 이 경우 추가할 것이 많지 않습니다. DEM 래스터 레이어만 필요하므로, 그것만 입력 데이터로 추가하겠습니다.

Input 탭에서 Raster Layer 를 더블클릭하면 다음 대화 창이 뜹니다.

../../../_images/raster_input.png

여기서 원하는 입력물을 정의해야 합니다. 이 래스터 레이어가 DEM이어야 하므로, DEM 이라고 명명하겠습니다. 모델 실행 시 사용자가 보게 될 명칭입니다. 작업 시 이 레이어가 필요하기 때문에 필수적인 레이어로 정의하겠습니다.

다음과 같이 대화 창을 설정해야 합니다.

../../../_images/raster_input_filled.png

OK 를 클릭하면 모델 작성자 캔버스에 입력물이 나타납니다.

../../../_images/canvas_1.png

이제 Algorithms 탭으로 옮겨볼까요? 처음 실행해야 할 알고리듬은 Slope, aspect, curvatures 입니다. 알고리듬 목록에서 해당 알고리듬을 찾은 다음 더블클릭하면 다음 대화 창이 나타날 것입니다.

../../../_images/slope_modeler.png

이 대화 창은 툴박스에서 알고리듬을 실행할 때 볼 수 있는 창과 매우 비슷하지만, 파라미터 값으로 사용할 수 있는 요소를 현재 QGIS 프로젝트에서 가져오는 것이 아니라 모델 자체에서 가져옵니다. 즉 이 경우 Elevation 항목에 쓸 수 있는 프로젝트의 래스터 레이어가 없다는 뜻입니다. 다만 모델에서 정의된 레이어뿐입니다. 마침 DEM 이란 명칭의 입력 래스터 레이어 하나를 추가했기 때문에, Elevation 파라미터에 해당하는 목록에서 볼 수 있는 래스터 레이어도 이 레이어 하나뿐입니다.

알고리듬이 모델의 일부로 사용될 때 알고리듬이 생성한 산출물도 조금 다르게 다뤄집니다. 각 산출물을 저장하고자 하는 파일 경로를 선택하는 대신, 해당 산출물이 중간 단계의 (따라서 모델 실행 완료 후 삭제하기를 바라는) 레이어인지 아니면 최종 레이어인지만 설정해주면 됩니다. 이 경우, 해당 알고리듬이 생산하는 모든 레이어가 중간 단계의 레이어입니다. 이 가운데 하나(경사도 레이어)만 사용하지만 저장하지는 않을 것입니다. 우리가 얻고자 하는 최종 결과물인 TWI 레이어를 계산하는 데에만 필요하기 때문입니다.

레이어가 최종 결과물이 아니라면 해당 항목을 변경해서는 안 됩니다. 최종 결과물일 경우, 후에 모델 실행 시 파라미터 대화 창에서 레이어를 식별하는 데 쓰이게 될 명칭을 입력해야 합니다.

이 첫 대화 창에서 선택할 것은 별로 없습니다. 모델에 단 하나의 레이어(우리가 생성한 DEM 입력 레이어)만 있기 때문입니다. 실제로 이 경우 대화 창의 기본 설정이 정확하므로, OK 만 클릭하면 됩니다. 이제 모델 작성자 캔버스가 다음과 같이 보일 것입니다.

../../../_images/canvas_2.png

모델에 두 번째로 추가해야 할 알고리듬은 집수 지역 알고리듬입니다. Catchment area (Paralell) 알고리듬을 사용하십시오. DEM 레이어를 다시 입력 레이어로 사용하고, 이 알고리듬이 생산하는 모든 산출물이 최종 결과물이 아니므로, 해당 대화 창을 다음과 같이 설정해야 합니다.

../../../_images/area_modeler.png

이제 모델이 다음과 같이 보여야 합니다.

../../../_images/canvas_3.png

마지막으로 Topographic Wetness Index 알고리듬을 추가하고, 다음과 같이 설정하십시오.

../../../_images/twi_modeler.png

이 경우, 입력 레이어에 DEM이 아니라 이전 단계에서 추가했던 알고리듬이 계산한 경사도 및 집수 지역 레이어를 사용할 것입니다. 새 알고리듬을 추가하면 해당 알고리듬이 생산하는 산출물을 다른 알고리듬이 사용할 수 있습니다. 이를 이용해서 알고리듬들을 연결, 작업 흐름을 생성하는 것입니다.

이 때 산출물인 TWI 레이어가 최종 레이어이기 때문에, 그렇게 지정해야 합니다. 해당 텍스트 란에 이 산출물에 부여할 명칭을 입력하십시오.

이제 모델 작성이 끝났습니다. 다음 화면처럼 보여야 합니다.

../../../_images/canvas_4.png

모델 작성자 창 위쪽에 모델명 및 모델 그룹명을 입력한 다음, Save 버튼을 클릭해서 저장하십시오.

../../../_images/model_name.png

모델을 원하는 아무 위치에나 저장해서 나중에 열 수 있지만, models 폴더(파일 저장 대화 창에서 볼 수 있는 기본 폴더)에 저장할 경우 해당 모델을 툴박스에서도 사용할 수 있습니다. 따라서 폴더를 변경하지 말고 사용자가 원하는 파일명으로 저장하십시오.

이제 모델 작성자 대화 창을 닫고 툴박스를 살펴보십시오. Models 그룹에서 사용자가 방금 작성한 모델을 볼 수 있습니다.

../../../_images/toolbox1.png

모델을 더블클릭해서, 다른 보통 알고리듬처럼 실행할 수 있습니다.

../../../_images/model_dialog.png

파라미터 대화 창에서 볼 수 있듯이 사용자가 모델에 추가한 입력 항목과 함께, 마지막 알고리듬을 추가했을 때 사용자가 최종 레이어로 설정한 산출물 항목을 담고 있습니다.

입력 레이어로 DEM을 설정해서 실행해보십시오. 클릭 한 번으로 TWI 레이어를 얻을 수 있을 것입니다.