22.9. 외부 응용 프로그램 환경 설정

추가적인 응용 프로그램을 사용하면 공간 처리 프레임워크를 확장할 수 있습니다. 외부 응용 프로그램에 의존하는 알고리즘은 각각 고유의 알고리즘 제공자가 관리합니다. QGIS 플러그인 관리자를 사용하면 추가 제공자를 개별 플러그인으로 찾아서 설치할 수 있습니다.

여기에서는 이런 추가적인 응용 프로그램을 포함시키려면 공간 처리 프레임워크를 어떻게 환경 설정해야 하는지, 그리고 추가 응용 프로그램을 기반으로 한 알고리즘의 몇몇 특정 기능에 관해 설명할 것입니다. 시스템을 정확하게 환경 설정하고 나면, 다른 모든 알고리즘과 마찬가지로 툴박스 또는 그래픽 모델 생성기 같은 어떤 구성 요소에서도 외부 알고리즘을 실행할 수 있을 것입니다.

기본적으로, QGIS가 내장하지 않은 외부 응용 프로그램에 의존하는 모든 알고리즘은 활성화된 상태가 아닙니다. 공간 처리 설정 대화창에서 이런 알고리즘을 활성화시킬 수 있지만, 사용자 시스템에 해당 응용 프로그램이 이미 설치돼 있어야 합니다.

22.9.1. 윈도우 사용자를 위한 소고

사용자가 고급 사용자가 아니며 윈도우 상에서 QGIS를 실행하고 있는 경우, 이 장의 나머지 부분을 읽어보지 않아도 괜찮습니다. 단독형 설치 관리자를 사용해서 사용자 시스템에 QGIS를 설치하십시오. 그러면 사용자 시스템에 자동적으로 SAGA와 GRASS를 설치하고 QGIS에서 실행할 수 있도록 환경 설정하기 때문에, 별다른 환경 설정을 하지 않아도 이 제공자들의 모든 알고리즘을 사용할 수 있습니다. OSGeo4W 응용 프로그램을 통해 설치하는 경우, SAGA 및 GRASS도 함께 설치하도록 선택했는지 확인하십시오.

22.9.2. 파일 포맷에 대한 소고

외부 소프트웨어 사용시, QGIS가 파일을 열 수 있다는 것이 다른 소프트웨어도 해당 파일을 열고 처리할 수 있다는 의미는 아닙니다. 대부분의 경우 다른 소프트웨어도 QGIS가 연 파일을 읽을 수 있지만, 어떤 경우 읽을 수 없을 수도 있습니다. 데이터베이스 또는 흔하지 않은 파일 포맷을 사용하는 경우, 그것이 래스터 레이어든 벡터 레이어든, 문제가 발생할 수도 있습니다. 이런 경우 QGIS와 외부 소프트웨어 둘 다 지원하고 있는 것이 확실한, 잘 알려진 파일 포맷으로 바꿔서 해본 다음, (로그 패널에서) 콘솔 산출물을 확인해서 뭐가 잘못된 건지 자세히 알아보십시오.

예를 들면 GRASS 래스터 레이어를 입력받는 외부 알고리즘을 호출했는데 문제가 발생해서 작업을 완료할 수 없는 경우가 있을 수도 있습니다. 이런 이유로, 이런 레이어는 알고리즘에 사용할 수 있다고 나타나지 않을 것입니다.

하지만 벡터 레이어 사용 시엔 이런 문제가 전혀 없을 것입니다. 외부 응용 프로그램에 레이어를 넘겨주기 전에 QGIS가 원본 파일 포맷을 외부 응용 프로그램이 지원하는 파일 포맷으로 자동 변환하기 때문입니다. 이 습성 때문에 공간 처리 작업 시간이 늘어나게 되는데, 대용량 레이어의 경우 특히 시간이 오래 걸릴 것입니다. 그러므로 Shapefile 포맷 데이터셋의 레이어를 처리하는 데 드는 시간보다 데이터베이스 연결로부터 비슷한 용량의 레이어를 처리하는 데 드는 시간이 더 오래 걸려도 너무 놀라지 마십시오.

외부 응용 프로그램을 사용하지 않는 제공자는, QGIS를 통해서 레이어를 열어 분석하기 때문에 QGIS가 열 수 있는 모든 레이어를 처리할 수 있습니다.

QGIS가 생성한 모든 래스터 및 벡터 레이어 산출물 포맷을 입력 레이어로 사용할 수 있습니다. 일부 제공자가 특정 포맷을 지원하지 않는 경우에도, 모든 제공자가 QGIS가 나중에 자동 변환할 수 있는 공통 포맷으로 내보낼 수 있기 때문입니다. 입력 레이어에 이런 변환 작업이 필요한 경우 공간 처리 작업 시간이 늘어날 수도 있습니다.

22.9.3. 벡터 레이어 선택에 대한 소고

외부 응용 프로그램이 QGIS 안에 존재하는 벡터 레이어 선택 집합을 인지하게 만들 수도 있습니다. 하지만 원본 벡터 레이어들이 외부 응용 프로그램이 지원하지 않는 포맷인 경우, 이렇게 하려면 모든 입력 벡터 레이어를 재작성해야만 합니다. 어떤 선택 집합도 없을 때만, 또는 공간 처리 일반 환경 설정에서 |unchecked| Use only selected features 옵션이 비활성화된 경우에만 외부 응용 프로그램으로 레이어를 직접 넘겨줄 수 있습니다.

그 외의 경우, 선택한 객체만 내보내야 하는데 이렇게 되면 실행 시간이 늘어나게 됩니다.

22.9.4. SAGA

SAGA algorithms can be run from QGIS if SAGA is included with the QGIS installation.

사용자가 윈도우를 실행 중이라면, 단독형 설치 관리자와 OSGeo4W 설치 관리자 모두 SAGA를 포함하고 있습니다.

22.9.4.1. SAGA 그리드 시스템 제약에 관해

입력 래스터 데이터 여러 개를 요구하는 SAGA 알고리즘 대부분은 입력 래스터가 동일한 그리드 시스템을 보유하고 있을 것을 요구합니다. 즉, 입력 래스터들이 동일한 지리 영역을 커버하고 동일한 셀 크기를 가지고 있어야만 하기 때문에 그에 대응하는 그리드들도 일치해야만 한다는 뜻입니다. QGIS에서 SAGA 알고리즘을 호출하는 경우 사용자는 셀 크기나 범위에 상관없이 어떤 레이어든 사용할 수 있습니다. SAGA 알고리즘이 여러 래스터 레이어를 입력받아야 한다면 (해당 알고리즘이 서로 다른 그리드 시스템을 가진 레이어들을 처리할 수 없는 경우) QGIS가 래스터들을 공통 그리드 시스템으로 리샘플링해서 SAGA에 넘겨줍니다.

이때 공통 그리드 시스템은 사용자가 정의합니다. 설정 대화창에서 SAGA 그룹에 있는 파라미터 몇 가지를 사용해서 정의할 수 있습니다. 다음 두 가지 방법 가운데 하나로 대상 그리드 시스템을 설정합니다:

  • 직접 설정합니다. 다음 파라미터의 값을 설정해서 범위를 정의합니다:

    • Resampling min X

    • Resampling max X

    • Resampling min Y

    • Resampling max Y

    • Resampling cellsize

    설정한 범위와 입력 레이어의 범위가 일치하지 않더라도 QGIS가 입력 레이어들을 설정한 범위로 리샘플링할 것이라는 사실을 유념하십시오.

  • 입력 레이어로부터 자동 설정합니다. 이 옵션을 선택하려면, |checkbox| Use min covering grid system for resampling 옵션을 체크하면 됩니다. 다른 모든 설정을 무시하고 모든 입력 레이어를 커버하는 최소 범위를 사용할 것입니다. 대상 레이어의 셀 크기는 입력 레이어들의 모든 셀 크기 가운데 가장 큰 크기를 사용합니다.

여러 래스터 레이어를 사용하지 않는 알고리즘의 경우, 또는 유일한 입력 그리드 시스템을 요구하지 않는 알고리즘의 경우 SAGA 호출 전에 리샘플링을 하지 않으므로 이런 파라미터들도 사용하지 않습니다.

22.9.4.2. 다중 밴드 레이어에 대한 제약

QGIS와 달리, SAGA는 다중 밴드 레이어를 지원하지 않습니다. (RGB 또는 다중 스펙트럼 이미지 같은) 다중 밴드 레이어를 사용하고 싶다면 먼저 해당 레이어를 단일 밴드 이미지로 분할해야 합니다. RGB 이미지에서 이미지 3개를 생성하는 SAGA/Grid - Tools/Split RGB image 알고리즘을 사용하거나 또는 단일 밴드 이미지를 추출하는 SAGA/Grid - Tools/Extract band 알고리즘을 사용하면 됩니다.

22.9.4.3. 셀 크기에 대한 제약

SAGA는 래스터 레이어의 X 및 Y 방향의 셀 크기가 동일하다고 가정하고 있습니다. 수평 및 수직 셀 크기가 다른 레이어를 작업하는 경우, 기대하지 않은 결과물이 나올 수도 있습니다. 이런 경우, SAGA가 처리하기에 적합하지 않은 입력 레이어일 수도 있다는 경고 메시지가 공간 처리 로그에 추가될 것입니다.

22.9.4.4. 로그 작업

QGIS가 SAGA를 호출할 때 SAGA 명령 줄 인터페이스를 사용해서 필요한 모든 작업을 수행하기 위한 명령어 집합을 넘겨줍니다. SAGA는 그 진행 상태를 콘솔에 정보를 작성해서 표시하는데, 이 정보는 이미 완료된 공간 처리 작업의 백분율 및 부가적인 내용을 포함합니다. 알고리즘 실행 도중 이 산출 정보를 필터링해서 진행 상태 막대를 업데이트합니다.

QGIS가 전송한 명령어는 물론 SAGA가 출력한 부가 정보도 기타 공간 처리 로그 메시지와 함께 로그에 작성될 수 있습니다. QGIS가 SAGA 알고리즘을 실행하는 과정에서 어떤 일이 일어나는지를 추적할 수 있는 유용한 정보입니다. 이런 로그 작업 기제를 활성화하려면, Log console outputLog execution commands 두 옵션을 활성화하십시오.

명령 줄 인터페이스를 통해 외부 응용 프로그램을 호출해서 사용하는 다른 제공자들 대부분도 비슷한 옵션을 가지고 있습니다. 공간 처리 설정 목록의 해당 제공자 부분에서 이런 옵션을 찾을 수 있을 겁니다.

22.9.5. R 스크립트

공간 처리 프레임워크에서 R을 활성화하려면 공간 처리 R 제공자 플러그인을 설치하고 QGIS에 맞게 R을 환경 설정해야 합니다.

QGIS 옵션 대화창의 (Settings ‣ Options) Processing 탭에 있는 Provider ‣ R 에서 환경 설정할 수 있습니다.

사용자의 운영 체제에 따라, R folder 를 통해 사용자의 R 바이너리가 있는 위치를 지정해야 할 수도 있습니다.

참고

윈도우 상에서는 R 실행 파일이 보통 C:\Program Files\R\ 아래 있는 폴더(R-<version>)에 있습니다. 바이너리 파일이 아니라 폴더를 지정하세요!

리눅스 상에서는 R 폴더가 PATH 환경 변수에 포함돼 있는지 확인만 해주면 됩니다. 터미널 창에서 R 명령어로 R을 실행할 수 있다면, 모든 준비가 끝난 겁니다.

공간 처리 R 제공자 플러그인을 설치했다면, Processing Toolbox 에서 다음과 같은 몇몇 예시 스크립트를 볼 수 있을 것입니다:

  • Scatterplot: 지정한 벡터 레이어의 숫자 필드 2개로부터 산점도(scatter plot) 를 생성하는 R 함수를 실행합니다.

  • test_sf: sf 패키지에 의존하는 몇몇 작업을 수행합니다. R 패키지 sf 가 설치되었는지 확인하는 데 사용할 수 있습니다. 해당 패키지가 설치되지 않았다면, R이 공간 처리 옵션 대화창의 Provider ‣ R 에서 지정한 Package repository 를 통해 (이 패키지가 의존하는 모든 패키지와 함께) 해당 패키지를 설치하려 할 것입니다. 기본 저장소는 http://cran.at.r-project.org/ 입니다. 설치에 시간이 걸릴 수도 있습니다.

  • test_sp: R 패키지 sp 가 설치되었는지 확인하는 데 사용할 수 있습니다. 해당 패키지가 설치되지 않았다면, R이 설치하려 할 것입니다.

../../../_images/processing_toolbox_r_install.png

QGIS에 맞게 R을 정확히 환경 설정했다면, 이 스크립트들을 실행할 수 있을 것입니다.

22.9.5.1. QGIS 저장소에서 R 스크립트 추가하기

QGIS에서의 R 통합은 사용자가 실행할 수 있는 사전 정의된 알고리즘 집합이 (공간 처리 R 제공자 플러그인과 함께 설치되는 몇몇 예시 스크립트를 제외하면) 없다는 점에서 SAGA 통합과는 다릅니다.

QGIS 저장소에서 예시 R 스크립트 집합을 사용할 수 있습니다. QGIS 리소스 공유 플러그인을 사용해 이 예시 스크립트를 불러와서 활성화하려면 다음 단계들을 수행하십시오.

  1. QGIS 리소스 공유 플러그인을 추가하십시오. (플러그인 관리자의 Settings 에서 Show also experimental plugins 옵션을 활성화해야 할 수도 있습니다.)

  2. QGIS 리소스 공유 플러그인을 여십시오. (Plugins ‣ Resource Sharing ‣ Resource Sharing)

  3. Settings 탭을 선택하십시오.

  4. Reload repositories 를 클릭하십시오.

  5. All 탭을 선택하십시오.

  6. 목록에서 QGIS R script collection 을 선택한 다음 Install 버튼을 클릭하십시오.

  7. 이제 Installed 탭의 목록에 R 스크립트가 추가되었을 것입니다.

  8. 플러그인을 종료하십시오.

  9. Processing Toolbox 를 여십시오. 모든 것이 제대로 되었다면, 예시 스크립트가 R 아래 여러 그룹으로 나타나 있을 것입니다. (다음 스크린샷에서는 몇몇 그룹만 펼쳐져 있습니다.)

    ../../../_images/processing_toolbox_r_scripts.png

    그림 22.33 몇몇 R 스크립트가 표시된 Processing Toolbox

    가장 위에 있는 스크립트들은 공간 처리 R 제공자 플러그인의 예시 스크립트들입니다.

  10. 만약 어떤 이유로든 Processing Toolbox 에 스크립트가 추가되지 않았다면, 다음 작업을 해볼 수 있습니다:

    1. 공간 처리 설정 대화창을 엽니다. (Settings ‣ Options ‣ Processing 탭)

    2. Providers ‣ R ‣ R scripts folder 를 선택합니다.

      • 우분투의 경우, 다음을 가리키는 경로를 설정하십시오(또는, 더 나은 방법으로, PATH에 포함시키십시오):

        /home/<user>/.local/share/QGIS/QGIS3/profiles/default/resource_sharing/repositories/github.com/qgis/QGIS-Resources/collections/rscripts

        ../../../_images/rscript_folder.png
      • 윈도우의 경우, 다음을 가리키는 경로를 설정하십시오(또는, 더 나은 방법으로, PATH에 포함시키십시오):

        C:\Users\<user>\AppData\Roaming\QGIS\QGIS3\profiles\default\resource_sharing\repositories\github.com\qgis\QGIS-Resources\collections\rscripts

      경로를 편집하려면 더블 클릭하십시오. 이제 경로를 그냥 붙여넣기/입력하거나, 또는 버튼을 클릭하면 열리는 대화창에서 디렉터리를 찾은 다음 Add 버튼을 클릭하면 됩니다. 여러 디렉터리를 지정할 수도 있습니다. 각 디렉터리는 쌍반점(;)으로 구분됩니다.

      ../../../_images/rscript_folder_add.png

QGIS 2 버전 온라인 저장소에서 모든 R 스크립트를 가져오고 싶다면, QGIS R script collection 대신 QGIS R script collection (from QGIS 2) 를 선택하면 됩니다. 벡터 데이터 입력물 또는 산출물에 의존하는 스크립트는 아마도 작동하지 않을 것입니다.

22.9.5.2. R 스크립트 생성하기

R을 실행하는 것과 동일한 방법으로 스크립트를 작성하고 R 명령어를 호출할 수 있습니다. 이 절에서는 QGIS에서 R 명령어를 사용하기 위한 문법과, R 명령어에 QGIS 객체(레이어, 테이블)를 사용하는 방법을 설명합니다.

R 함수를 (또는 사용자가 개발해서 QGIS에서 사용하고자 하는 좀 더 복잡한 R 스크립트를) 호출하는 알고리즘을 추가하려면, R 명령어를 수행하는 스크립트 파일을 생성해야 합니다.

R 스크립트 파일의 확장자는 .rsx 이며, R 문법 및 R 스크립트 작성에 대한 기초 지식만 있다면 R 스크립트를 꽤 간단하게 생성할 수 있습니다. R 스크립트 파일은 R 스크립트 폴더에 저장해야 합니다. 공간 처리 설정 대화창에 있는 R 설정 그룹에서 해당 폴더를 (R scripts folder) 지정할 수 있습니다.

입력 폴리곤 레이어에 있는 폴리곤의 경계 내부에 랜덤한 그리드를 생성하는 R 메소드 spsample 을 호출하는 아주 간단한 스크립트 파일을 살펴보겠습니다. 이 메소드는 maptools 패키지에 속해 있습니다. 사용자가 QGIS에 통합하고 싶을 거의 모든 알고리즘이 공간 데이터를 사용하거나 생성하기 때문에, 사용자는 maptools 그리고 sp/sf 같은 공간 패키지에 대해 잘 알고 있어야 합니다.

##Random points within layer extent=name
##Point pattern analysis=group
##Vector_layer=vector
##Number_of_points=number 10
##Output=output vector
library(sp)
spatpoly = as(Vector_layer, "Spatial")
pts=spsample(spatpoly,Number_of_points,type="random")
spdf=SpatialPointsDataFrame(pts, as.data.frame(pts))
Output=st_as_sf(spdf)

2중 파이썬 주석 기호(##)로 시작하는 첫 몇 행이 스크립트의 표시 명칭 및 그룹을 정의하고, QGIS에 입력물 및 산출물을 알려줍니다.

참고

사용자 고유의 R 스크립트를 어떻게 작성하는지에 대한 자세한 정보를 알고 싶다면 QGIS 교육 교재의 R 소개 에서 R 문법 을 살펴보시기 바랍니다.

입력물 파라미터를 선언하는 경우, QGIS 는 해당 정보를 사용자에게 해당 파라미터의 값을 요청하기 위한 사용자 인터페이스를 생성하고, 나중에 R 함수에 입력할 수 있는 대응하는 R 변수를 생성한다는 두 가지 목적을 위해 사용합니다.

앞의 예시에서, Vector_layer 라는 vector 입력물 유형을 선언하고 있습니다. 이 알고리즘을 실행하면, QGIS가 사용자가 선택한 레이어를 열어서 역시 Vector_layer 라는 명칭을 가진 변수에 저장할 것입니다. 즉, 파라미터명이 R에서 해당 파라미터의 값에 접근하기 위해 사용하는 변수명이기도 합니다. (따라서 예비된 R 단어를 파라미터명으로 사용해서는 안 됩니다.)

벡터 및 래스터 레이어 같은 공간 파라미터는 st_read() (또는 readOGR()) 및 brick() (또는 readGDAL) 명령어를 사용해서 (사용자 설명 파일에 이런 명령어를 추가하지 않아도 됩니다 ─ QGIS 가 처리할 테니까요) 읽어들여 sf (또는 Spatial*DataFrame) 객체로 저장합니다.

테이블 필드 유형은 선택한 필드의 명칭을 담고 있는 문자열로 저장됩니다.

##load_vector_using_rgdal 을 지정하면 st_read() 대신 readOGR() 명령어를 사용해서 벡터 파일을 읽어들일 수 있습니다. 이렇게 하면 sf 객체 대신 Spatial*DataFrame 객체를 생성할 것입니다.

##load_raster_using_rgdal 을 지정하면 brick() 대신 readGDAL() 명령어를 사용해서 래스터 파일을 읽어들일 수 있습니다.

사용자가 고급 사용자이며 QGIS가 레이어용 객체를 생성하기를 원하지 않는다면, 객체 대신 파일명을 담은 문자열을 선호한다고 알려주는 ##pass_filenames 태그를 사용하면 됩니다. 이 태그를 사용할 경우, 파일이 담고 있는 데이터에 대해 어느 작업도 하기 전에 사용자가 해당 파일을 열어야 합니다.

이런 정보를 바탕으로, 이제 R 스크립트의 (파이썬 주석 기호로 시작하지 않는) 첫 줄들을 이해할 수 있습니다.

library(sp)
spatpoly = as(Vector_layer, "Spatial")
pts=spsample(polyg,numpoints,type="random")

sp 라이브러리가 spsample 함수를 제공하기 때문에, 가장 먼저 해당 라이브러리를 불러와야 합니다. Vector_layer 변수가 sf 객체를 담고 있습니다. sp 라이브러리에서 함수(spsample)를 사용할 것이기 때문에, as 함수를 이용해서 sf 객체를 SpatialPolygonsDataFrame 객체로 변환해야만 합니다.

그 다음 이 객체 및 (생성할 포인트의 개수를 지정하는) numpoints 입력 파라미터와 함께 spsample 함수를 호출합니다.

이미 Output 이라는 벡터 산출물을 선언했기 때문에, sf 객체를 담고 있는 Output 이라는 변수를 생성해야 합니다.

이 변수를 생성하기 위해서는 두 단계를 거쳐야 합니다. 먼저 SpatialPointsDataFrame 함수를 통해 함수의 결과물에서 SpatialPolygonsDataFrame 객체를 생성합니다. 그 다음, (sf 라이브러리의) st_as_sf 함수를 사용해서 해당 객체를 sf 객체로 변환합니다.

중간 단계 변수는 사용자 마음대로 명명해도 됩니다. 단 최종 산출물을 저장하는 변수가 정의된 명칭과 (이 경우 Output) 동일한 명칭을 가지고 있는지, 그리고 해당 변수가 적합한 값을 (벡터 레이어 산출물에 대한 sf 객체를) 담고 있는지 확인하십시오.

이 경우, spsample 메소드의 산출물을 SpatialPointsDataFrame 객체를 통해 명백하게 sf 객체로 변환해야 합니다. 산출물 자체가 QGIS에 그대로 반환하기에 적합하지 않은 ppp 클래스의 객체이기 때문입니다.

사용자 알고리즘이 래스터 레이어를 생성하는 경우, 사용자가 ##dontuserasterpackage 태그를 사용했는지 여부에 따라 래스터를 저장하는 방식이 달라질 것입니다. 해당 태그를 사용했다면, writeGDAL() 메소드를 사용해서 레이어를 저장합니다. 사용하지 않았다면, raster 패키지의 writeRaster() 메소드를 사용할 것입니다.

##pass_filenames 옵션을 사용한 경우, raster 패키지를 (writeRaster() 메소드를 통해) 사용해서 산출물을 생성합니다.

사용자 알고리즘이 어떤 레이어도 생성하지 않지만, 그 대신 콘솔에 텍스트 산출물을 생성하는 경우 알고리즘 실행이 완료된 후 콘솔을 열고 싶다는 표현을 해야 합니다. 그렇게 하려면 사용자가 출력하고자 하는 산출물을 생성하는 명령어 줄 앞에 > (〈초과〉) 기호를 삽입하기만 하면 됩니다. 다른 명령어 줄의 산출물은 표시되지 않을 것입니다. 예를 들면, 다음은 벡터 레이어의 속성에서 선택한 필드(열)에 대해 정규성 검정(normality test)을 수행하는 알고리즘의 설명 파일입니다:

##layer=vector
##field=field layer
##nortest=group
library(nortest)
>lillie.test(layer[[field]])

마지막 행의 산출물을 출력하지만, 그 위 행의 산출물은 출력되지 않습니다. (그리고 각 행의 산출물 가운데 어느 쪽도 QGIS에 자동적으로 추가되지 않습니다.)

사용자 알고리즘이 (plot() 메소드를 사용해서) 어느 종류의 그래픽이라도 생성하는 경우, 다음 줄을 추가하십시오(output_plots_to_html 이 예전 showplots 입니다):

##output_plots_to_html

이 태그를 사용하면, QGIS가 모든 R 그래픽 산출물을 임시 파일로 돌려서, R 실행이 종료된 다음 불러올 것입니다.

콘솔 및 그래픽 산출물 둘 다 공간 처리 산출물 관리자를 통해 사용할 수 있습니다.

더 자세한 정보를 원한다면, 공식 QGIS 저장소에 있는 R 스크립트 파일을 확인해보십시오. (앞에서 설명한대로 QGIS 리소스 공유 플러그인을 사용해서 다운로드하고 설치하십시오.) 대부분 단순한 편이라 사용자 고유의 스크립트를 어떻게 생성하는지 이해하는 데 큰 도움을 줄 것입니다.

참고

기본적으로 sf, rgdalraster 라이브러리를 불러오기 때문에, 사용자가 대응하는 library() 명령어를 추가하지 않아도 됩니다. 하지만, 필요할 수도 있는 기타 추가 라이브러리는, 예를 들어 (ggplot2 라이브러리를 불러오기 위한) library(ggplot2) 와 같이 직접 입력해서 명시적으로 불러와야 합니다. 해당 패키지가 사용자 시스템 상에 설치돼 있지 않다면, 공간 처리 프레임워크가 다운로드해서 설치하려 할 것입니다. 이렇게 하면 R 단독형 소프트웨어도 해당 패키지를 사용할 수 있습니다. 패키지를 다운로드해야 할 경우, 스크립트를 처음 실행할 때 시간이 오래 걸릴 수도 있다는 사실을 명심하십시오.

22.9.6. R 라이브러리

R 스크립트 sp_testspraster R 패키지를 불러오려 합니다.

22.9.6.1. sf_test 실행시 설치되는 R 라이브러리

R 스크립트 sf_testsfraster R 패키지를 불러오려 합니다. 이 두 패키지가 설치되지 않은 경우, R이 이들을 (그리고 이들이 의존하는 모든 라이브러리를) 불러와서 설치하려 할 수도 있습니다.

우분투 상에 R 3.4.4 버전을 처음 설치한 다음 공간 처리 툴박스에서 공간 처리 R 제공자 플러그인 2.0 버전으로 sf_test 를 실행했다면, 다음 R 라이브러리들이 ~/.local/share/QGIS/QGIS3/profiles/default/processing/rscripts 폴더에 설치되었을 겁니다.

abind, askpass, assertthat, backports, base64enc, BH, bit, bit64, blob, brew, callr, classInt, cli, colorspace, covr, crayon, crosstalk, curl, DBI, deldir, desc, dichromat, digest, dplyr, e1071, ellipsis, evaluate, fansi, farver, fastmap, gdtools, ggplot2, glue, goftest, gridExtra, gtable, highr, hms, htmltools, htmlwidgets, httpuv, httr, jsonlite, knitr, labeling, later, lazyeval, leafem, leaflet, leaflet.providers, leafpop, leafsync, lifecycle, lwgeom, magrittr, maps, mapview, markdown, memoise, microbenchmark, mime, munsell, odbc, openssl, pillar, pkgbuild, pkgconfig, pkgload, plogr, plyr, png, polyclip, praise, prettyunits, processx, promises, ps, purrr, R6, raster, RColorBrewer, Rcpp, reshape2, rex, rgeos, rlang, rmarkdown, RPostgres, RPostgreSQL, rprojroot, RSQLite, rstudioapi, satellite, scales, sf, shiny, sourcetools, sp, spatstat, spatstat.data, spatstat.utils, stars, stringi, stringr, svglite, sys, systemfonts, tensor, testthat, tibble, tidyselect, tinytex, units, utf8, uuid, vctrs, viridis, viridisLite, webshot, withr, xfun, XML, xtable

22.9.7. GRASS

GRASS 환경 설정은 SAGA 환경 설정과 그렇게 다르지 않습니다. 먼저, 윈도우 환경인 경우 GRASS 폴더를 가리키는 경로를 정의해야 합니다.

기본적으로, 공간 처리 프레임워크는 QGIS와 함께 빌드된 GRASS 배포판을 사용하기 위해 GRASS 연결기(connector)를 환경 설정하려 합니다. 대부분의 시스템에서 문제없이 설정되지만, 문제가 발생한다면 사용자가 GRASS 연결기를 직접 환경 설정해야 할 수도 있습니다. 또 서로 다른 버전의 GRASS들을 사용하고자 하는 경우, 해당 설정을 변경해서 다른 버전이 설치돼 있는 폴더를 가리키게 할 수도 있습니다. 알고리즘이 정확하게 작동하려면 GRASS 7 버전이 필요합니다.

리눅스 환경인 경우, GRASS가 정확하게 설치됐는지 그리고 터미널 창에서 문제없이 실행할 수 있는지만 확인해주면 됩니다.

GRASS 알고리즘은 계산 시 영역(region)을 사용합니다. SAGA 환경 설정에서와 비슷한 값들을 사용해서 이 영역을 직접 정의할 수도 있고, 또는 알고리즘 실행 시 사용되는 모든 입력 레이어를 커버하는 최소 범위를 받아 자동으로 정의하도록 할 수도 있습니다. 만약 두 번째 습성을 선호한다면, GRASS 환경 설정 파라미터 가운데 |checkbox| Use min covering region 옵션을 체크하면 됩니다.

22.9.8. LAStools

QGIS에서 LAStools 를 사용하려면, 사용자 컴퓨터에 LAStools를 다운로드해서 설치한 다음 QGIS에 LAStools 플러그인을 (QGIS 공식 저장소에 있습니다) 설치해야 합니다.

리눅스 플랫폼에서 몇몇 도구를 실행하려면 Wine 이 필요할 것입니다.

공간 처리 옵션 대화창(Settings ‣ Options, Processing 탭, Providers ‣ LAStools)에서 LAStools를 활성화하고 환경 설정합니다. 여기에서 LAStools의 위치(LAStools folder) 및 Wine의 위치(Wine folder)를 지정할 수 있습니다. 우분투의 경우, 기본 Wine 폴더는 /usr/bin 입니다.

22.9.9. OTB 응용 프로그램

OTB (Orfeo ToolBox)는 원격탐사(remote sensing) 데이터용 영상 처리 라이브러리입니다. OTB는 영상 처리 기능을 사용할 수 있는 응용 프로그램도 제공합니다. OTB 쿡북 에서 응용 프로그램 목록과 그 문서들을 볼 수 있습니다.

참고

OTB는 QGIS와 함께 배포되지 않으며 개별적으로 설치해야 한다는 사실을 기억하십시오. OTB 바이너리 패키지는 다운로드 페이지 에서 찾을 수 있습니다.

QGIS 공간 처리 프레임워크가 OTB 라이브러리를 찾을 수 있도록 환경 설정하려면:

  1. 공간 처리 설정 대화창을 여십시오. (Settings ‣ Options ‣ Processing 탭)

  2. OTB가 Providers 아래 있습니다.

    1. OTB 탭을 펼치십시오.

    2. |checkbox| Activate 옵션을 체크하십시오.

    3. OTB folder 를 사용자가 OTB를 설치한 위치로 설정하십시오.

    4. OTB application folder 를 사용자가 OTB 응용 프로그램을 설치한 위치(<PATH_TO_OTB_INSTALLATION>/lib/otb/applications)로 설정하십시오.

    5. OK 를 클릭해서 설정을 저장하고 대화 창을 닫습니다.

정확하게 설정했다면, Processing Toolbox 에서 OTB 알고리즘을 사용할 수 있습니다.

22.9.9.1. QGIS 공간 처리 프레임워크에서 사용할 수 있는 OTB 설정 문서

  • Activate: OTB 제공자를 활성화하거나 비활성화하는 체크박스입니다. 유효하지 않은 OTB 설정을 저장하면 이 옵션을 비활성화할 것입니다.

  • OTB folder: OTB를 사용할 수 있는 디렉터리입니다.

  • OTB application folder: OTB 응용 프로그램의 위치(들)입니다.

    경로를 여러 개 지정할 수 있습니다.

  • Logger level (부가적): OTB 응용 프로그램이 사용할 로그 작업자(logger)의 수준을 설정합니다.

    로그 작업의 수준은 알고리즘 실행 도중 출력되는 상세 내용의 양을 제어합니다. 로그 작업자 수준을 위한 값으로 INFO, WARNING, CRITICAL, DEBUG 가운데 하나를 사용할 수 있습니다. 기본값은 INFO 입니다. 이 옵션은 고급 사용자용 환경 설정입니다.

  • Maximum RAM to use (부가적): OTB 응용 프로그램은 기본적으로 모든 가용 시스템 RAM을 사용합니다.

    하지만 이 옵션을 통해 OTB가 RAM을 (MB 단위의) 특정 용량만 사용하도록 할 수 있습니다. 256으로 설정하면 OTB 처리 제공자가 무시할 것입니다. 이 옵션은 고급 사용자용 환경 설정입니다.

  • Geoid file (부가적): 지오이드(geoid) 파일을 가리키는 경로를 지정합니다.

    이 옵션은 OTB 응용 프로그램에서 사용하는 elev.dem.geoidelev.geoid 파라미터의 값을 설정합니다. 이 값을 전체 수준으로 설정하면 여러 처리 알고리즘이 공통으로 사용하게 할 수 있습니다. 기본값은 비어 있습니다.

  • SRTM tiles folder (부가적): SRTM 타일을 사용할 수 있는 디렉터리입니다.

    처리 과정 동안 파일 다운로드를 막기 위해 SRTM 데이터를 사용자 시스템에 저장할 수 있습니다. 이 옵션은 OTB 응용 프로그램에서 사용하는 elev.dem.pathelev.dem 파라미터의 값을 설정합니다. 이 값을 전체 수준으로 설정하면 여러 처리 알고리즘이 공통으로 사용하게 할 수 있습니다. 기본값은 비어 있습니다.

22.9.9.2. QGIS와 OTB 버전 사이의 호환성

GDAL 3.X 버전으로 컴파일한 OTB는 QGIS 3.10 버전과 호환되지 않습니다. OTB 바이너리 패키지 7.1 버전 이상일 경우입니다. 따라서 QGIS 3.10 버전은 OTB 공식 바이너리 패키지 6.6.1 및 7.0.0 버전과만 호환됩니다.

22.9.9.3. 문제 해결

QGIS 공간 처리 프레임워크에서 OTB 응용 프로그램 사용에 문제가 발생한 경우, OTB 버그 트래커qgis 라벨을 사용해서 스레드를 여십시오.

OTB 및 QGIS 관련 추가 정보는 여기 에서 찾아볼 수 있습니다.