중요
번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.
27.5. 모델 설계자
모델 설계자 는 사용하기 쉽고 간단한 인터페이스를 통해 복잡 모델을 생성할 수 있게 해줍니다. GIS 작업시, 대부분의 분석 작업은 각각 분리된 작업이라기 보다는 연속 작업들의 일부인 경우가 더 많습니다. 모델 설계자를 사용하면, 그런 연속 공간 처리 작업들을 단일 공간 처리 작업으로 묶을 수 있습니다. 서로 다른 입력 집합에 대해 여러 작업을 연속해서 처리하는 것보다 단일 공간 처리 작업을 실행하는 편이 더 편리하기 때문입니다. 몇 단계를 거치든, 몇 개의 서로 다른 알고리즘을 사용하든 상관없이 모델은 단일 알고리즘처럼 실행되기 때문에, 시간과 노력을 절약할 수 있습니다.
공간 처리 메뉴에서 (
) 모델 설계자를 열 수 있습니다.27.5.1. 모델 설계자 인터페이스
모델 설계자의 주요 부분은 모델 구조 및 모델이 표현하는 워크플로(workflow)를 구성할 수 있는 작업 캔버스입니다.
대화창 최상단에 있는 다양한 메뉴와 Navigation 툴바를 통해 다양한 도구를 사용할 수 있습니다.
27.5.1.4. 패널
대화창의 왼쪽 부분은 모델에 새 요소를 추가하기 위해 사용할 수 있는 패널 5개로 이루어져 있습니다:
Model Properties: 모델 이름(필수) 및 공간처리 툴박스 에서 모델 이름이 속하게 될 그룹을 지정합니다.
Inputs: 사용자 모델을 형성할 수 있는 모든 입력 파라미터 를 지정합니다.
Algorithms: 사용할 수 있는 공간 처리 알고리즘 을 지정합니다.
Variables: 모델은 유일하면서도 자체에서만 사용할 수 있는 전용 변수 를 담고 있을 수 있습니다. 모델 안에서 쓰이는 어떤 표현식이든 이 변수들에 접근할 수 있습니다. 이런 변수는 모델 안에서 알고리즘을 제어하는 데 유용하며, 단일 변수를 변경해서 모델의 여러 측면을 제어할 수도 있습니다. Variables 패널에서 변수를 살펴보고 수정할 수 있습니다.
Undo History: 이 패널에는 모델 설계자에서 발생하는 모든 일들이 등록될 것입니다. 즉 사용자가 실수한 내용을 쉽게 취소할 수 있습니다.
27.5.1.5. 사용 가능한 알고리즘에 관해
사용자가 모델을 설계할 때, 툴박스에서 실행할 수 있는 몇몇 알고리즘이 사용 가능 알고리즘 목록에 나타나지 않는 경우가 있습니다. 모델에 알고리즘을 포함시키려면 해당 알고리즘이 정확한 의미(semantic)를 가지고 있어야만 합니다. 어떤 알고리즘이 이렇게 잘 정의된 의미를 가지지 못 한 경우 (예를 들어 사전에 산출 레이어의 개수를 알 수 없는 경우) 모델 안에서 이런 알고리즘을 사용할 수는 없기 때문에 모델 설계자 대화창에서 찾아볼 수 있는 알고리즘 목록에 나타나지 않을 것입니다. 반대로 모델에 특화된 알고리즘도 몇 개 있습니다. 이런 알고리즘은 ‘모델 설계자 도구(Modeler Tools)’ 그룹 안에서 찾을 수 있습니다.
27.5.2. 모델 생성 작업
모델 생성은 기본 2단계로 이루어집니다:
필요한 입력물을 정의하기: 입력해야 할 항목들이 Inputs 패널의 Parameters 창에 추가되어 모델 실행 시 사용자가 그 값들을 설정할 수 있습니다. 모델은 그 자체로 알고리즘으로서, 공간 처리 프레임워크에서 사용할 수 있는 모든 알고리즘과 마찬가지로 파라미터 창을 자동적으로 생성합니다.
작업 흐름을 정의하기: 모델의 입력 데이터를 사용해서, 알고리즘을 추가하고 해당 알고리즘이 정의된 입력물을 또는 모델 안에 있는 다른 알고리즘이 생성하는 산출물을 어떻게 사용할지 선택함으로써 작업 흐름을 정의합니다.
27.5.2.1. 입력물 정의
첫 단계는 모델에 대한 입력물을 정의하는 것입니다. 모델 설계자 창의 왼쪽에 있는 Inputs 패널에서 입력물을 찾아볼 수 있습니다. 입력물 위에 마우스 커서를 가져가면 추가 정보를 가진 툴팁이 뜰 것입니다. 모델 설계자에서 사용할 수 있는 파라미터들의 전체 목록과 스크립트 작업을 위한 파라미터 대응 문자열에 대해 알고 싶다면 공간 처리 알고리즘의 입력물 및 산출물 유형 을 읽어보십시오.
이 항목들 가운데 어느 항목을 더블클릭해도 그 특성을 정의할 수 있는 대화창이 열립니다. 파라미터에 따라, 해당 대화창이 적어도 하나 이상의 요소(모델 실행시 사용자가 보게 될 파라미터 설명)를 담고 있을 수도 있고 또는 하나 이상의 옵션을 담고 있을 수도 있습니다. 예를 들어 숫자 값을 추가하는 경우, 다음 그림에서 볼 수 있는 것처럼 파라미터 설명 이외에도 기본값을 설정하고 무결한 값의 범위도 설정해야 합니다.
Mandatory
옵션을 체크하면 사용자 입력물을 사용자 모델을 위한 필수 입력물로 정의할 수 있고, Advanced
체크박스를 체크하면 Advanced
부분에서 입력물을 설정할 수 있습니다. 이 옵션은 모델에 파라미터가 많이 있는데 그 가운데 몇 개가 평범한 파라미터가 아니지만 그래도 선택하고자 하는 경우 특히 유용합니다.
입력물을 추가할 때마다, 모델 설계자 캔버스에 새 항목이 추가됩니다.
파라미터 목록에서 입력물 유형을 모델 설계자 캔버스 상의 원하는 위치로 드래그해서 입력물을 추가할 수도 있습니다. 기존 입력물의 파라미터를 변경하고 싶다면, 그냥 입력물을 더블클릭하기만 하면 동일한 대화창이 뜰 것입니다.
또다른 모델 안에서 모델을 사용하는 경우, 필요한 입력물 및 산출물이 캔버스에 표시될 것입니다.
27.5.2.2. 작업 흐름 정의
다음 예시에서 입력물 2개와 알고리즘 2개를 추가할 것입니다. 이 모델의 목적은 Drape
알고리즘을 사용해서 DEM 래스터 레이어에서 라인 레이어로 표고 값을 복사한 다음, Climb Along Line
알고리즘을 사용해서 라인 레이어의 총 오르막(total ascent)을 계산하는 것입니다.
Inputs 탭에서 라인을 Vector Layer
로, DEM을 Raster Layer
로 두 입력물을 선택합니다. 이제 워크플로에 알고리즘을 추가할 준비가 끝났습니다.
Algorithms 패널에서 알고리즘을 찾을 수 있습니다. 공간 처리 툴박스와 거의 동일한 방식으로 알고리즘이 그룹으로 정리돼 있습니다.
모델에 알고리즘을 추가하려면, 입력물을 추가할 때와 마찬가지로 알고리즘 이름을 더블 클릭하거나 모델 설계자 캔버스로 드래그&드롭하십시오. 입력물과 마찬가지로 알고리즘의 설명을 변경하고 코멘트를 추가할 수 있습니다. 알고리즘을 추가하면, 툴박스에서 알고리즘을 실행할 때 열리는 실행 패널에 있는 내용과 비슷한 내용을 담은 실행 대화창이 열릴 것입니다. 다음 그림은 Drape (set Z value from raster)
및 Climb along line
알고리즘 대화창입니다.
하지만 이 그림에서 볼 수 있듯이 몇몇 차이점이 존재합니다. 각 파라미터 옆에 워크플로 도중 해당 파라미터가 어떤 역할을 할지를 제어할 수 있는 드롭다운 메뉴가 있습니다:
Value: 파라미터에 정적 값을 할당할 수 있습니다. 파라미터 유형에 따라 나타나는 위젯에서 숫자(
5.0
) 또는 문자열(mytext
)을 입력하거나, QGIS 프로젝트가 불러온 레이어(들) 또는 폴더로부터 레이어(들)를 선택하거나, 목록에서 항목을 선택하거나 등등을 할 수 있습니다.Pre-calculated Value: 표현식 작성기 대화창이 열려 사용자가 파라미터를 채우기 위한 표현식을 정의할 수 있습니다. 모델 입력물은 물론 기타 레이어 통계 일부를 변수 로 사용할 수 있으며, 이들은 표현식 작성기의 검색 대화창 상단에 목록화되어 있습니다. 하위(자식) 알고리즘이 실행되기 전에 이 표현식을 평가한 다음 해당 알고리즘이 실행되는 동안 사용합니다.
Model Input: 모델에 추가된 입력물을 파라미터로 사용할 수 있습니다. 한번 클릭하기만 하면, 이 옵션이 해당 파라미터에 적합한 모든 입력물의 목록을 표시할 것입니다.
Algorithm Output: 또다른 알고리즘의 산출물을 현재 알고리즘의 입력물로 사용할 수 있습니다. 모델 입력물과 마찬가지로, 이 옵션은 해당 파라미터에 적합한 모든 입력물의 목록을 표시할 것입니다.
산출 파라미터 또한 드롭다운 메뉴에 앞의 옵션들을 가지고 있습니다:
예를 들어 항상 하위 알고리즘의 산출물을 사전 정의된 GeoPackage 또는 PostgreSQL 레이어로 저장하는 등, 하위 알고리즘에 정적 산출물을 추가할 수 있습니다.
예를 들어 오늘 날짜를 바탕으로 파일명을 자동 생성하고 산출물을 해당 파일로 저장하는 등, 하위 알고리즘에 표현식 기반 산출값을 사용할 수 있습니다.
예를 들어 산출 파일 또는 폴더를 지정하는 파일/폴더 모델 입력물처럼 모델 입력물을 사용할 수 있습니다.
예를 들어 (모델 설계자 도구 의) 디렉터리 생성 알고리즘의 산출물 같은 또다른 알고리즘의 산출물을 사용할 수 있습니다.
추가적인 Model Output 옵션을 사용하면 모델에서 알고리즘 산출물을 사용할 수 있습니다. 알고리즘이 생성한 레이어가 또다른 알고리즘의 입력물로만 쓰이는 경우, 해당 텍스트 란을 편집하지 마십시오.
다음 그림에서 두 입력 파라미터가
Model Input
과 임시 산출 레이어로 정의된 것을 볼 수 있습니다:
또한 툴박스에서 알고리즘을 호출하는 경우 Dependencies 라는 추가적인 파라미터를 사용할 수 없을 것입니다. 이 파라미터는 알고리즘 하나를 현재 파라미터의 상위(부모) 로 명확하게 정의해서 알고리즘들이 실행되는 순서를 정의할 수 있습니다. 이 파라미터를 사용하면 현재 알고리즘을 실행하기 전에 상위 알고리즘이 실행되도록 강제할 것입니다.
이전 알고리즘의 산출물을 현재 알고리즘의 입력물로 사용하면, 암묵적으로 이전 알고리즘을 현재 알고리즘의 상위 알고리즘으로 설정하는 것입니다. (그리고 모델 설계자 캔버스에도 그에 대응하는 화살표를 배치합니다.) 하지만, 어떤 경우 (예를 들면, 한 알고리즘은 PostGIS 데이터베이스에 대해 SQL문을 실행하고 다른 알고리즘은 동일 데이터베이스로 레이어를 가져오는 경우) 현재 알고리즘이 또다른 알고리즘에 ─ 이 알고리즘의 어떤 산출 객체도 사용하지 않더라도 ─ 종속하고 있을 수도 있습니다. 이런 경우에는 그냥 Dependencies 파라미터에서 이전 알고리즘을 선택만 해주면 두 알고리즘이 정확한 순서로 실행될 것입니다.
모든 파라미터에 무결한 값을 할당하고 나면, OK 버튼을 누르십시오. 알고리즘이 캔버스에 추가될 것입니다. 해당 알고리즘은 캔버스에 있는 다른 모든 항목들과 ─ 해당 알고리즘에 입력되는 객체를 제공하는 알고리즘이든 입력물이든 ─ 연결돼 있을 것입니다
Select/Move Item 도구를 사용해서 요소를 캔버스 상의 다른 위치로 드래그할 수 있습니다. 모델 구조를 좀 더 명료하고 직관적으로 만들 수 있는 유용한 도구입니다. 요소의 경계선을 드래그하면 요소의 크기도 조정할 수 있습니다. 입력물 또는 알고리즘의 설명이 너무 길 때 특히 유용합니다. 옵션을 체크하면 항목 크기 조정 또는 이동을 가상 그리드에 맞출 수 있기 때문에 시각적으로 더욱 구조화된 알고리즘을 설계할 수 있습니다.
요소들 사이의 링크는 자동으로 업데이트되며 각 알고리즘의 상단과 하단에서 +
버튼을 볼 수 있습니다. 이 버튼을 클릭하면 해당 알고리즘의 입력물 및 산출물의 목록을 표시해서 사용자가 알고리즘의 개요를 빠르게 살펴볼 수 있습니다.
도구를 사용하면, 캔버스에 드래그할 수 있는 상자 를 추가할 수 있습니다. 이 도구는 큰 모델의 모델 설계자 캔버스에서 관련된 요소들을 그룹으로 묶어 워크플로를 명료하게 유지할 수 있는 매우 유용한 기능입니다. 예를 들어 다음 그림과 같이 예시의 입력물들을 모두 함께 그룹으로 묶을 수도 있습니다:
상자의 이름과 색상을 변경할 수 있습니다. 그룹 상자를
도구와 함께 사용하는 경우, 모델의 특정 부분으로 확대/축소할 수 있기 때문에 매우 유용합니다. 물론 마우스 휠로 확대/축소할 수도 있습니다.입력물의 순서 및 메인 모델 대화창에 목록화된 순서를 변경하고 싶을 수도 있습니다. Input
패널 하단에 Reorder Model Inputs...
버튼이 있는데, 이 버튼을 클릭하면 입력물의 순서를 변경할 수 있는 새 대화창이 뜹니다.
프로젝트에 결과물을 불러올 때 모델의 산출물이 반드시 따라야만 하는 특정한 순서를 설정해야 할 가능성도 존재합니다. 따라서 모델 설계자에서 모델을 실행할 때 캔버스 상에 레이어들을 논리적인 순서대로, 이를테면 벡터 레이어 산출물을 래스터 레이어 산출물 위로 또는 포인트 레이어 산출물을 폴리곤 레이어 산출물 위로 정렬할 수 있게 해주는 수단이 필요합니다. 모델 설계자에서는 레이어 트리 안에 산출물을 새 그룹 이름을 사용해서 또는 기존 그룹에 추가해서 자동으로 그룹화해주기 위한 선택적인 “그룹 이름”도 설정할 수 있습니다. Model 메뉴에 있는 Reorder Output Layers… 항목을 클릭하면 산출 레이어들의 순서를 변경할 수 있는 새 대화창이 열립니다:
모델 설계자에 존재하는 입력물 또는 알고리즘에 주석도 추가할 수 있습니다. 항목의 Comment 탭으로 가거나, 항목을 오른쪽 클릭하면 됩니다. 이 탭에서 개별 모델 주석의 색상을 직접 설정할 수도 있습니다. 주석은 모델 설계자 캔버스에서만 가시화되며, 최종 알고리즘 대화창에는 표시되지 않습니다. 옵션을 비활성화하면 주석을 숨길 수 있습니다.
언제라도 Run model 아이콘을 클릭하면 사용자 알고리즘을 실행할 수 있습니다. 편집기를 사용해서 모델을 실행하는 경우, 입력물에 기본값이 아닌 모든 값을 저장할 것입니다. 다시 말해 나중에 편집기에서 모델을 실행하면 다음 실행 시의 값으로 대화창을 채우게 될 것입니다.
툴박스에서 알고리즘을 사용하려면, 알고리즘을 저장하고 모델 설계자 대화창을 닫아야 툴박스가 그 내용을 새로고침할 수 있습니다.
27.5.2.3. 사용자 모델 문서 작성하기
사용자는 사용자 모델을 문서화해야 하며, 모델 설계자 자체에서 문서를 작성할 수 있습니다. Edit model help 버튼을 누르면 다음 그림과 같은 대화창이 나타날 것입니다.
대화창 오른쪽에는 간소한 HTML 페이지가 있습니다. 알고리즘의 입력 파라미터와 산출물에 대한 설명 그리고 모델 또는 모델의 작성자 같은 몇몇 추가 항목에 대한 일반적인 설명을 함께 사용해서 이 페이지의 내용을 생성합니다. 또한 모델의 활용법을 설명해주는 사용자 정의 예시를 입력할 수 있는 예시 부분도 있습니다. 처음 도움말 편집기를 열면, 이 모든 내용이 비어 있습니다. 그러나 대화창 왼쪽에 있는 항목들을 이용해서 이를 편집할 수 있습니다. 상단 부분에서 항목을 선택한 다음 하단 텍스트 란에 해당 항목에 대한 설명을 작성하십시오.
모델 도움말은 모델의 일부로 저장됩니다.
27.5.3. 모델 저장 및 불러오기
27.5.3.1. 모델 저장하기
Save model 버튼을 클릭하면 현재 모델을 저장하고, Open Model 버튼을 누르면 이전에 저장한 모델을 불러올 수 있습니다. 모델은 .model3
확장자로 저장됩니다. 모델 설계자 대화창에서 이전에 저장한 모델인 경우, 저장시 파일명을 묻지 않을 것입니다. 이미 해당 모델과 연관된 파일이 있기 때문에, 이후 동일한 파일에 저장됩니다.
모델을 저장하기 전에, 대화창 상단에 있는 텍스트란에 모델의 이름 및 속하게 될 그룹을 입력해야 합니다.
models
폴더(모델 저장시 파일명을 물어볼 때의 기본 폴더)에 저장된 모델은 툴박스의 해당 그룹에 나타납니다. 툴박스를 열 때, models
폴더에서 .model3
확장자를 가진 파일을 찾아서 파일이 담고 있는 모델을 불러옵니다. 모델이 그 자체로 알고리즘이기 때문에, 다른 모든 알고리즘처럼 툴박스에 추가할 수 있습니다.
Save model in project 버튼을 클릭해서 프로젝트 파일 안에 모델을 저장할 수도 있습니다. 이 방법으로 저장한 모델은 디스크 상에 .model3
파일로 작성되지 않고, 프로젝트 파일 안에 내장될 것입니다.
공간 처리 툴박스의 Project models 메뉴 및 메뉴 항목을 통해 프로젝트 모델을 사용할 수 있습니다.
Processing Options 환경 설정 대화창의 Modeler 그룹에서 Model folder 를 설정할 수 있습니다.
models
폴더에서 불러온 모델은 툴박스뿐만 아니라 모델 설계자 대화창의 Algorithms 탭에 있는 알고리즘 트리에도 나타납니다. 즉 모델에 다른 알고리즘을 추가하는 것과 마찬가지로 모델을 더 큰 모델의 일부분으로 포함시킬 수 있다는 뜻입니다.
모델은 탐색기 패널에도 표시되며 해당 패널에서 실행할 수 있습니다.
27.5.3.2. 모델을 파이썬 스크립트로 내보내기
이 사용자 지침서의 이후 부분에서 설명하겠지만, QGIS 파이썬 콘솔에서 공간 처리 알고리즘을 호출할 수 있습니다. 파이썬을 이용해서 새 공간 처리 알고리즘을 생성할 수도 있습니다. 모델을 생성한 다음 이를 파이썬 파일로 내보내면 이런 파이썬 스크립트를 손쉽게 생성할 수 있습니다.
모델을 파이썬 스크립트 파일로 내보내려면, 모델 설계자 캔버스에서 Export as Script Algorithm… 을 클릭하거나 공간 처리 툴박스에 있는 모델명을 오른쪽 클릭한 다음 Export Model as Python Algorithm… 을 선택하십시오.
27.5.3.3. 모델을 이미지, PDF 또는 SVG로 내보내기
Export as image, Export as PDF 또는 Export as SVG 를 클릭해서 모델을 SVG 또는 PDF 이미지로 (도해(圖解) 목적으로) 내보낼 수도 있습니다.
27.5.4. 모델 편집
현재 생성 중인 모델을 편집해서 작업 흐름 및 모델 그 자체를 정의하는 알고리즘과 입력물 사이의 관계를 재정립할 수 있습니다.
캔버스에 있는 알고리즘을 오른쪽 클릭하면, 다음 그림과 같은 컨텍스트 메뉴가 나타납니다:
Remove 옵션을 선택하면 선택한 알고리즘이 제거될 것입니다. 선택한 알고리즘에 종속되는 다른 알고리즘이 없는 경우에만 ─ 즉, 선택한 알고리즘의 산출물이 다른 알고리즘의 입력물로 사용되지 않는 경우에만 ─ 제거할 수 있습니다. 다른 알고리즘이 종속하고 있는 알고리즘을 제거하려 하는 경우, 다음 그림과 같은 경고 메시지를 보게 될 것입니다:
Edit… 옵션을 선택하면 해당 알고리즘의 파라미터 대화창이 열려서, 입력물 및 파라미터 값을 변경할 수 있습니다. 이 경우 모델에서 사용 가능한 모든 항목이 사용할 수 있는 입력물로 나타나지는 않을 것입니다. 모델이 정의하는 작업 흐름 상 더 진행된 단계에서 생성된 레이어 또는 값이 의존성 순환(circular dependency)을 유발하는 경우, 이를 사용할 수 없습니다.
새 값을 선택한 다음 이전과 같이 OK 버튼을 클릭하십시오. 모델 설계자 캔버스에서 모델 항목들 사이의 연결이 변경 사항에 맞춰 변경될 것입니다.
Add comment… 옵션을 선택하면 알고리즘의 습성을 자세히 설명하기 위한 코멘트를 추가할 수 있습니다.
모델의 알고리즘 가운데 일부를 비활성화시키면 모델을 부분 실행시킬 수 있습니다. 알고리즘 항목을 오른쪽 클릭했을 때 나타나는 컨텍스트 메뉴에 있는 Deactivate 옵션을 선택하면 됩니다. 선택한 알고리즘 및 모델에서 해당 알고리즘에 종속된 모든 알고리즘이 회색조로 표시되고, 모델의 일부로서 실행되지 않을 것입니다.
활성화 상태가 아닌 알고리즘을 오른쪽 클릭하는 경우, 선택한 알고리즘을 다시 활성화할 수 있는 Activate 메뉴가 나타날 것입니다.