26.6. 배치 프로세스 인터페이스

26.6.1. 소개

모든 (모델 포함) 알고리즘을 배치(batch) 프로세스로 실행할 수 있습니다. 단일 입력물 집합이 아니라 여러 집합을 입력해서 필요한 만큼 여러 번 알고리즘을 실행할 수 있다는 뜻입니다. 대용량 데이터를 공간 처리하는 경우 이 배치 작업이 유리합니다. 툴박스에서 알고리즘을 여러 번 구동시킬 필요가 없기 때문입니다.

알고리즘을 배치 프로세스로 실행하려면, 툴박스에서 알고리즘명을 오른쪽 클릭한 다음 팝업 메뉴에서 Execute as batch process 옵션을 선택하십시오.

../../../_images/batch_processing_right_click.png

그림 26.30 오른쪽 클릭으로 배치 프로세스 실행

선택한 알고리즘의 실행 대화창이 열리면, [Run as batch process…] 버튼을 눌러 배치 프로세스 작업 인터페이스도 열 수 있습니다.

../../../_images/parameters_dialog.png

그림 26.31 알고리즘 대화창에서 배치 프로세스 작업 시작

26.6.2. 파라미터 표

배치 프로세스를 실행하는 작업은 단일 알고리즘을 실행하는 작업과 비슷합니다. 파라미터 값을 정의해야 하는데, 이 경우에는 각 파라미터 별로 단일 값이 아니라 알고리즘 반복 실행 횟수만큼 값을 하나씩 설정해줘야 합니다. 각 행이 반복 실행이고 각 열이 알고리즘의 파라미터인 다음 그림과 같은 표를 통해 이 값들을 설정합니다.

../../../_images/batch_processing.png

그림 26.32 배치 프로세스 작업

최상단 툴바에서 다음과 같은 작업을 할 수 있습니다:

  • symbologyAdd Add row: 환경설정에 새로운 배치 프로세스 항목을 추가합니다.

  • symbologyRemove Remove row(s): 표로부터 선택한 행들을 제거합니다. 왼쪽에 있는 숫자를 클릭하면 행을 선택할 수 있으며, 다중 선택을 위한 키보드 조합 을 사용할 수 있습니다.

  • fileOpen Open: 배치 프로세스 환경설정 파일을 엽니다.

  • fileSave Save: 다음에 실행할 수 있도록 .JSON 파일에 배치 프로세스 환경설정을 저장합니다.

기본적으로, 파라미터 표는 2개의 행만 담고 있습니다:

  • 각 셀에 있는 첫 번째 행은 아래 셀들을 빠르게 채울 수 있는 옵션 을 가진 Autofill… ► 드롭다운 메뉴를 표시합니다. 파라미터 유형에 따라 사용할 수 있는 옵션들이 달라집니다.

  • 두 번째 행(은 물론 이어지는 각 행)은 알고리즘의 단일 실행을 나타내고, 각 셀은 파라미터 가운데 하나의 값을 담게 됩니다. 툴박스에서 알고리즘을 실행할 때 보게 되는 파라미터 대화창과 본질적으로 비슷하지만, 구조가 다릅니다.

표의 최하단에 있는 checkbox Load layers on completion 옵션을 이용해서 실행 완료 시 레이어를 불러올지 여부를 설정할 수 있습니다.

표의 행 수를 (알고리즘 실행 횟수만큼) 설정하고 나면, 원하는 값을 입력해야 합니다.

26.6.3. 파라미터 표 채우기

대부분의 파라미터의 경우, 값을 설정하는 일은 사소한 작업입니다. 단일 프로세스 대화창 에서와 마찬가지로 적절한 위젯이 제공되어, 파라미터 유형에 따라 값을 입력하거나 또는 사용할 수 있는 값들의 목록에서 값을 선택할 수 있습니다. 사용할 수 있는 경우 데이터 정의 위젯도 포함됩니다.

셀별로 표를 채우는 작업을 피하기 위해 배치 프로세스 정의를 자동화하려면 파라미터의 Autofill… 메뉴를 눌러서 열에 있는 값들을 대체하기 위한 다음 옵션들 가운데 하나를 선택할 수도 있습니다:

  • Fill Down: 첫 번째 프로세스의 입력을 가져와서 다른 모든 프로세스에 입력할 것입니다.

  • calculateField Calculate by Expression…: 해당 열 안에 있는 모든 기존 값들을 업데이트하는 데 사용할 수 있는 새로운 QGIS 표현식을 생성할 수 있습니다. 변수 를 통해 (다른 열의 기존 값들을 포함하는) 기존 파라미터 값들을 표현식 안에 사용할 수 있습니다. 예를 들면 각 레이어의 버퍼 거리를 기반으로 선분 개수를 설정할 수도 있습니다:

    CASE WHEN @DISTANCE > 20 THEN 12 ELSE 8 END
    
  • Add Values by Expression…: (기존 행에만 적용되는 Calculate by Expression… 과는 반대로) 배열을 반환하는 표현식으로부터 나오는 값들을 사용해서 새 행들을 추가합니다. 의도한 사용례는 복소수열(complex numeric series)을 사용해서 배치 대화창을 채울 수 있도록 하는 것입니다. 예를 들어 거리 파라미터에 대해 표현식 generate_series(100, 1000, 50) 을 사용해서 배치 버퍼에 행을 추가하면 100, 150, 200, …. 1000 값을 가진 새 행들을 추가할 것입니다.

  • 파일 또는 레이어 파라미터를 설정하는 경우, 더 많은 옵션이 제공됩니다:

    • Add Files by Pattern…: 검색(Look in)한 폴더에서 File pattern 과 일치하는 파일마다 표에 새로운 행을 추가합니다. 예를 들어 *.shp 패턴은 목록에 폴더의 모든 SHP 파일을 추가할 것입니다. 하위 폴더도 탐색하려면 checkbox Search recursively 옵션을 체크하십시오.

    • Select Files…: 디스크 상에서 파일을 개별적으로 선택합니다.

    • Add All Files from a Directory…: 선택한 디렉터리에 있는 모든 파일마다 표에 새로운 행을 추가합니다.

    • Select from Open Layers…: 활성화 프로젝트에 열려 있는 레이어(들)에서 선택합니다.

산출 데이터 파라미터는 알고리즘을 단일 프로세스로 실행할 때와 동일한 케이퍼빌리티를 노출시킵니다. 알고리즘에 따라 산출물을 다음과 같이 산출할 수 있습니다:

  • 셀을 비워두는 경우 산출물을 건너뛸 수 있습니다.

  • 산출물을 임시 레이어로 저장할 수 있습니다: 셀을 TEMPORARY_OUTPUT 으로 채운 다음 잊지 말고 checkbox Load layers on completion 체크박스를 클릭하십시오.

  • 파일 경로를 앞서 노출된 Autofill 옵션으로 설정할 수 있는 일반 파일(.SHP, .GPKG, .XML, .PDF, .JPG, …)로 저장할 수 있습니다. 예를 들어 산출 파일 이름을 다음과 같은 복잡 표현식으로 설정하려면 Calculate by Expression… 을 이용하십시오:

    '/home/me/stuff/buffer_' || left(@INPUT, 30) || '_' || @DISTANCE || '.shp'
    

    파일 경로를 직접 입력하거나 파일 경로 입력란 옆에 있는 버튼을 누르면 나타나는 파일 선택기 대화창을 이용할 수도 있습니다. 파일을 선택하면, 동일한 열(동일한 파라미터)에 있는 다른 셀들을 자동 완성시킬 수 있는 새 대화창이 나타납니다.

    ../../../_images/batch_processing_save.png

    그림 26.33 배치 프로세스 작업 - 저장

    기본값(Do not autofill)을 선택하는 경우, 그냥 파라미터 표에서 선택한 셀에 선택한 파일명을 입력할 것입니다. 다른 옵션을 선택하면, 선택한 셀 아래 에 있는 모든 셀에 정의한 기준에 따라 파일명을 입력할 것입니다.

    • Fill with numbers: 파일 이름에 증분 숫자를 추가합니다.

    • Fill with parameter values: 파일 이름에 동일한 행에 있는 파라미터 값을 추가할 파라미터를 선택할 수 있습니다. 산출 데이터 객체를 입력 객체에 따라 각각 명명하는 경우 특히 유용한 옵션입니다.

  • 데이터베이스 컨테이너 내부에 레이어로 저장할 수 있습니다:

    # Indicate a layer within a GeoPackage file
    ogr:dbname='C:/Path/To/Geopackage.gpkg' table="New_Table" (geom)
    
    # Use the "Calculate By Expression" to output to different layers in a GeoPackage
    'ogr:dbname=\'' || @project_folder || '/Buffers.gpkg\' table="' || @INPUT || '_' || @DISTANCE || '" (geom)'
    

26.6.4. 배치 프로세스 실행

필요한 모든 값을 설정한 다음 배치 프로세스를 실행하려면, Run 버튼만 누르면 됩니다. Log 패널이 활성화되어 실행 과정의 상세 정보 및 단계들을 출력합니다. 대화창 하단에 있는 진행 상태 막대에 전체 배치 작업의 진행도가 표시될 것입니다.