18.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 파라미터에 해당하는 목록에서 볼 수 있는 래스터 레이어도 이 레이어 하나뿐입니다.

Output generated by an algorithm are handled a bit differently when the algorithm is used as a part of a model. Instead of selecting the filepath where you want to save each output, you just have to specify if that output is an intermediate layer (and you do not want it to be preserved after the model has been executed), or it is a final one. In this case, all layers produced by this algorithm are intermediate. We will only use one of them (the slope layer), but we do not want to keep it, since we just need it to calculate the TWI layer, which is the final result that we want to obtain.

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

이 첫 대화 창에서 선택할 것은 별로 없습니다. 모델에 단 하나의 레이어(우리가 생성한 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 레이어를 얻을 수 있을 것입니다.