` `

그래픽 모델 생성기

그래픽 모델 생성기 는 사용하기 쉽고 간단한 인터페이스를 통해 복잡 모델을 생성할 수 있게 해줍니다. GIS 작업 시, 대부분의 분석 작업은 각각 분리된 작업이라기 보다는 연속 작업들의 일부인 경우가 더 많습니다. 그래픽 모델 생성기를 사용하면, 그런 연속 공간 처리 작업들을 단일 공간 처리 작업으로 묶을 수 있습니다. 서로 다른 입력 집합에 대해 여러 작업을 연속해서 처리하는 것보다 단일 공간 처리 작업을 실행하는 편이 더 편리하기 때문입니다. 몇 단계를 거치든, 몇 개의 서로 다른 알고리즘을 사용하든 상관없이 모델은 단일 알고리즘처럼 실행되기 때문에, 특히 광범위한 모델의 경우, 시간과 노력을 절약할 수 있습니다.

Processing 메뉴에서 모델 생성기를 열 수 있습니다.

모델 생성기는 모델 구조 및 모델이 나타내는 작업 흐름을 나타내는 작업 캔버스를 보유하고 있습니다. 대화창 좌측 패널에, 모델에 새 항목을 추가하는 데 사용되는 탭이 2개 있습니다.

../../../_images/modeler_canvas.png

모델 생성기 대화창

모델 생성은 다음 2단계로 이루어집니다:

  1. 필요한 입력물을 정의하기: 입력해야 할 항목들이 Inputs 탭의 Parameters 창에 추가되어 모델 실행 시 사용자가 그 값들을 설정할 수 있습니다. 모델은 그 자체로 알고리즘으로서, 공간 처리 프레임워크에서 사용할 수 있는 모든 알고리즘과 마찬가지로 파라미터 창을 자동적으로 생성합니다.

  2. 작업 흐름을 정의하기: 모델의 입력 데이터를 사용해서 알고리즘을 추가하고, 해당 알고리즘이 입력물을 또는 모델 안에 있는 기존 알고리즘이 생성하는 산출물을 어떻게 사용할지 선택함으로써 작업 흐름을 정의합니다.

입력물 정의

모델 생성의 첫 단계는 모델에 필요한 입력물을 정의하는 것입니다. 모델 생성기 대화창 좌측에 있는 Inputs 탭에서 다음 항목들을 볼 수 있습니다:

  • 래스터 레이어

  • 벡터 레이어

  • 문자열

  • 테이블 필드

  • 테이블

  • 범위(Extent)

  • 숫자

  • 불(Boolean)

  • 파일

이 항목들 가운데 어느 항목을 더블클릭해도 그 특성을 정의할 수 있는 대화창이 열립니다. 어떤 파라미터냐에 따라, 해당 대화창이 단 하나의 기본 옵션(모델 실행 시 사용자가 보게 될 파라미터 명칭)을 담고 있을 수도 있고 또는 하나 이상의 옵션을 담고 있을 수도 있습니다. 예를 들어 숫자 값을 추가하는 경우, 다음 그림에서 볼 수 있는 것처럼 파라미터명 이외에도 기본값을 설정하고 유효값의 범위도 설정해야 합니다.

../../../_images/models_parameters.png

모델 파라미터 정의하기

입력물을 추가할 때마다, 모델 생성기 캔버스에 새 항목이 추가됩니다.

../../../_images/models_parameters2.png

캔버스에 표시되는 모델 파라미터

파라미터 목록에서 모델 생성기 캔버스 상의 원하는 위치로 입력물 유형을 드래그해서 입력물을 추가할 수도 있습니다.

작업 흐름 정의

입력물을 정의하고 나면, 입력물에 적용할 알고리즘을 정의할 단계입니다. 툴박스에서와 거의 동일한 방식으로 Algorithms 탭에 알고리즘이 그룹으로 정리돼 있습니다.

../../../_images/models_parameters3.png

모델 입력물

모델에 알고리즘을 추가하려면, 입력물을 추가할 때와 마찬가지로 알고리즘 명칭을 더블클릭한 다음 모델 생성기 캔버스로 드래그하십시오. 툴박스에서 알고리즘을 실행할 때 열리는 실행 패널에 있는 내용과 비슷한 내용을 담은 실행 대화창이 열릴 것입니다. 다음 그림은 SAGA Convergence index 알고리즘의 실행 대화창입니다.

../../../_images/models_parameters4.png

모델 알고리즘 파라미터

이 그림에서 몇몇 차이점을 볼 수 있습니다. 산출 레이어 및 테이블을 위한 파일 경로를 설정하는 파일 산출물 란 대신, 단순한 텍스트 란이 있습니다. 알고리즘이 생성한 레이어가 그저 다른 알고리즘의 입력물로 사용되는 임시 산출물로서 최종 산출물이 아닌 경우, 그냥 해당 텍스트 란을 편집하지 않으면 됩니다. 이 텍스트 란에 어떤 내용이라도 입력하면 산출물이 최종이라는 뜻이 되며, 사용자가 입력한 텍스트는 모델 실행 시 사용자가 보게 될 최종 산출물의 명칭이 될 것입니다.

각 파라미터의 값을 선택하는 과정도 조금씩 다릅니다. 모델 생성기의 맥락과 툴박스의 맥락 사이에는 중요한 차이가 있기 때문입니다. 각 파라미터 유형에 대한 값을 어떻게 설정하는지 살펴보겠습니다.

  • 레이어(래스터 및 벡터) 및 테이블: 목록에서 선택할 수 있는 것은 동일하지만, 모델 생성기에서는 QGIS에 현재 불러온 레이어 또는 테이블을 선택하는 것이 아니라 해당 유형의 모델 입력물 또는 이미 모델에 추가된 기존 알고리즘이 생성하는 다른 레이어 또는 테이블 가운데 선택합니다.

  • Numerical values. Literal values can be introduced directly in the text box. But this text box is also a list that can be used to select any of the numerical value inputs of the model. In this case, the parameter will take the value introduced by the user when executing the model.
  • String. As in the case of numerical values, literal strings can be typed, or an input string can be selected.
  • 테이블 필드: 모델 설계 시 부모 테이블 또는 레이어의 필드를 알 수는 없습니다. 모델 실행 시 사용자가 어떤 필드를 선택하느냐에 따라 달라지기 때문입니다. 이 파라미터에 대한 값을 설정하려면, 텍스트 란에 필드명을 직접 입력하거나 또는 모델에 이미 추가돼 있는 테이블 필드 입력물 목록에서 선택하십시오. 모델 실행 시 선택한 필드의 유효성을 확인할 것입니다.

이 모든 경우에, 툴박스에서 알고리즘을 호출할 때에는 볼 수 없었던 Parent algorithms 라는 추가 파라미터를 볼 수 있습니다. 이 파라미터는 한 알고리즘을 현재 알고리즘의 부모로 명확하게 정의함으로써, 부모 알고리즘이 현재 알고리즘 이전에 실행되도록 강제해서 알고리즘 실행 순서를 정의할 수 있습니다.

이전 알고리즘의 산출물을 현재 알고리즘의 입력물로 사용하면, 암묵적으로 이전 알고리즘을 현재 알고리즘의 부모로 설정하는 것입니다. (그리고 모델 생성기 캔버스에도 그에 대응하는 화살표를 배치합니다.) 하지만, 어떤 경우 (예를 들면, 한 알고리즘은 PostGIS 데이터베이스에 대해 SQL문을 실행하고 다른 알고리즘은 동일 데이터베이스로 레이어를 가져오는 경우) 현재 알고리즘이 또다른 알고리즘에 – 이 알고리즘의 어떤 산출 객체도 사용하지 않더라도 – 종속하고 있을 수도 있습니다. 이런 경우에는 그냥 Parent algorithms 파라미터에서 이전 알고리즘을 선택만 해주면 두 단계가 정확한 순서로 실행될 것입니다.

Once all the parameters have been assigned valid values, click on [OK] and the algorithm will be added to the canvas. It will be linked to all the other elements in the canvas, whether algorithms or inputs, that provide objects that are used as inputs for that algorithm.

모델 구조가 좀 더 명확하고 직관적으로 표현되도록 하기 위해 캔버스 안에서 항목을 드래그해서 위치를 변경할 수 있습니다. 항목들 간의 연결은 자동적으로 업데이트됩니다. 마우스 휠을 사용해서 캔버스를 확대 및 축소할 수도 있습니다.

You can run your algorithm any time by clicking on the [Run] button. However, in order to use the algorithm from the toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents.

모델 저장 및 불러오기

Use the [Save] button to save the current model and the [Open] button to open any model previously saved. Models are saved with the .model extension. If the model has been previously saved from the modeler window, you will not be prompted for a filename. Since there is already a file associated with that model, the same file will be used for any subsequent saves.

모델을 저장하기 전에, 대화창 상단에 있는 텍스트 란에 모델의 명칭 및 속하게 될 그룹을 입력해야 합니다.

models 폴더(모델 저장 시 파일명을 물어볼 때의 기본 폴더)에 저장된 모델은 툴박스의 해당 그룹에 나타납니다. 툴박스를 열 때, models 폴더에서 .model 확장자를 가진 파일을 찾아서 파일이 담고 있는 모델을 불러옵니다. 모델이 그 자체로 알고리즘이기 때문에, 다른 모든 알고리즘처럼 툴박스에 추가할 수 있습니다.

Processing Options 환경 설정 대화창의 Modeler 그룹에서 Model folder 를 설정할 수 있습니다.

models 폴더에서 불러온 모델은 툴박스뿐만 아니라 모델 생성기 대화창의 Algorithms 탭에 있는 알고리즘 트리에도 나타납니다. 즉 모델에 다른 알고리즘을 추가하는 것과 마찬가지로 모델을 더 큰 모델의 일부분으로 포함시킬 수 있다는 뜻입니다.

모델 편집

현재 생성 중인 모델을 편집해서 작업 흐름 및 모델 그 자체를 정의하는 알고리즘과 입력물 간의 관계를 재정립할 수 있습니다.

모델을 나타내는 캔버스에 있는 알고리즘을 오른쪽 클릭하면, 다음 그림과 같은 컨텍스트 메뉴가 나타납니다:

../../../_images/modeler_right_click.png

모델 생성기 오른쪽 클릭

Remove 옵션을 선택하면 선택한 알고리즘이 제거될 것입니다. 선택한 알고리즘에 종속되는 다른 알고리즘이 없는 경우에만 – 즉, 선택한 알고리즘의 산출물이 다른 알고리즘의 입력물로 사용되지 않는 경우에만 – 제거할 수 있습니다. 다른 알고리즘이 종속하고 있는 알고리즘을 제거하려 하는 경우, 다음 그림과 같은 경고 메시지를 보게 될 것입니다:

../../../_images/cannot_delete_alg.png

알고리즘을 삭제할 수 없습니다

Edit 옵션을 선택하면 해당 알고리즘의 파라미터 대화창이 열려서, 입력물 및 파라미터 값을 변경할 수 있습니다. 이 경우 모델에서 사용 가능한 모든 입력물 항목이 나타나지는 않을 것입니다. 모델이 정의하는 작업 흐름 상 더 진행된 단계에서 생성된 레이어 또는 값이 순환 종속성(circular dependency)을 유발하는 경우, 이를 사용할 수 없습니다.

Select the new values and then click on the [OK] button as usual. The connections between the model elements will change accordingly in the modeler canvas.

모델의 알고리즘 가운데 일부를 비활성화시키면 모델을 부분 실행시킬 수 있습니다. 알고리즘 항목을 오른쪽 클릭했을 때 나타나는 컨텍스트 메뉴에 있는 Deactivate 옵션을 선택하면 됩니다. 선택한 알고리즘 및 모델에서 해당 알고리즘에 종속된 모든 알고리즘이 회색조로 표시되고, 모델의 일부로서 실행되지 않을 것입니다.

../../../_images/deactivated.png

알고리즘이 비활성화된 모델

활성화 상태가 아닌 알고리즘을 오른쪽 클릭하는 경우, 일반 컨텍스트 메뉴 대신 선택한 알고리즘을 다시 활성화할 수 있는 Activate 메뉴만 나타날 것입니다.

모델 도움말 파일 및 메타 정보 편집

You can document your models from the modeler itself. Just click on the [Edit model help] button and a dialog like the one shown next will appear.

../../../_images/help_edition.png

도움말 편집기

대화창 상단에는 간소한 HTML 페이지 창이 있습니다. 입력 파라미터 및 알고리즘 산출물의 명칭과 모델 또는 모델 생성자에 대한 일반적인 설명을 함께 사용해서 이 페이지의 내용을 생성합니다. 처음 도움말 편집기를 열면, 이 모든 내용이 비어 있습니다. 그러나 대화창 좌하단에 있는 항목들을 이용하면 이를 편집할 수 있습니다. 좌하단 패널에서 항목을 선택한 다음 우하단 텍스트 란에 명칭 및 설명을 작성하십시오.

모델 도움말은 모델의 일부로 저장됩니다.

Exporting a model as a Python script

As we will see in a later chapter, Processing algorithms can be called from the QGIS Python console, and new Processing algorithms can be created as well using Python. A quick way of creating such a Python script is to create a model and then to export is as a Python file.

To do so, click on the Export as Python script button. Select the output file in the file chooser dialog, and Processing will write in it the Python commands that perform the same operations defined in the current model.

사용 가능한 알고리즘에 관해

툴박스에서 실행할 수 있는 알고리즘 가운데 일부가 모델 생성 시 사용 가능한 알고리즘 목록에 나타나지 않는다는 사실을 알아차렸을지도 모르겠습니다. 모델에 추가되는 알고리즘이 작업 흐름 상 다른 알고리즘과 적절하게 연결되기 위해서는 정확한 의미 체계(semantic)를 가지고 있어야만 합니다. 알고리즘이 이렇게 제대로 정의된 의미 체계를 보유하고 있지 않을 경우 (예를 들면 산출 레이어의 개수를 미리 알 수 없는 경우) 모델에 해당 알고리즘을 사용할 수 없습니다. 그러므로 이런 알고리즘은 모델 생성기 대화창의 사용 가능한 알고리즘 목록에 나타나지 않는 것입니다.

Additionally, you will see some algorithms in the modeler that are not found in the toolbox. These algorithms are meant to be used exclusively as part of a model, and they are of no interest in a different context. The ‘Calculator’ algorithm is an example of that. It is just a simple arithmetic calculator that you can use to modify numerical values (entered by the user or generated by some other algorithm). This tool is really useful within a model, but outside of that context, it doesn’t make too much sense.