` `

QGIS 명령어 실행기

공간 처리 프레임워크는 툴박스를 이용하지 않고서도 알고리즘을 실행할 수 있는 실용적인 도구를 포함하고 있습니다. 실행하려는 알고리즘명만 입력하면 됩니다.

이 도구를 QGIS 명령어 실행기 라고 하는데, 실행하려는 명령어를 입력할 수 있는, 자동 완성 기능을 보유한 단순한 텍스트 란에 불과합니다.

../../../_images/commander1.png

QGIS 명령어 실행기

Processing 메뉴에서 또는 좀더 현실적으로 Shift + Ctrl + M 조합키를 눌러서 명령어 실행기를 구동할 수 있습니다. (다른 단축키를 원할 경우 QGIS 환경 설정에서 기본 단축키를 변경할 수 있습니다.) 명령어 실행기를 종료하려면 그냥 ESC 만 누르면 됩니다. 공간 처리 알고리즘을 실행하는 것 외에도, 명령어 실행기를 사용해서 QGIS의 기능 대부분을 실행할 수 있습니다. 즉 QGIS 작업을 실행하는 데 있어 실용적이고 효율적인 방법을 제공하며, 버튼과 메뉴를 많이 사용하지 않고서도 QGIS를 제어할 수 있다는 뜻입니다.

게다가 명령어 실행기의 환경을 설정할 수도 있습니다. 따라서 사용자 지정 명령어를 추가해서 키를 몇 번 누르는 것만으로도 실행할 수 있습니다. 명령어 실행기는 일상적인 QGIS 작업을 좀 더 생산적으로 만들어줄 수 있는 강력한 도구입니다.

사용 가능한 명령어

명령어 실행기에서 사용할 수 있는 명령어는 다음 범주들로 분류됩니다:

  • 공간 처리 알고리즘 – Processing algorithm: <name of the algorithm> 과 같이 표시됩니다.

  • 메뉴 항목 – Menu item: <menu entry text> 와 같이 표시됩니다. QGIS 인터페이스 사용 가능한 모든 메뉴 항목을 사용할 수 있습니다. 하위 메뉴에 속한 메뉴까지 사용할 수 있습니다.

  • 파이썬 함수 – 간단한 파이썬 함수를 생성해서 사용 가능한 명령어 목록에 추가할 수 있습니다. 파이썬 함수는 Function: <function name> 과 같이 표시됩니다.

이런 명령어를 실행하려면, 그냥 입력하기 시작하십시오. 사용자가 입력한 텍스트로 전체 명령어 목록을 필터링한 다음 나타나는 사용 가능한 명령어 목록에서 원하는 명령어를 선택하면 됩니다.

파이썬 함수를 호출하는 경우, 목록에서 Function: 이라는 접두어가 붙은 항목을 (예를 들면 Function: removeall 을) 선택할 수도 있고, 또는 그냥 함수명을 (앞의 예에서 removeall 을) 직접 입력할 수도 있습니다. 함수명 뒤에 괄호를 붙일 필요는 없습니다.

사용자 지정 함수 생성

사용자 폴더의 .qgis2/processing/commander 디렉터리에 있는 commands.py 파일에 상응하는 파이썬 코드를 입력하면 사용자 지정 함수를 추가할 수 있습니다. 이 파일은 필요한 함수를 추가할 수 있는 단순한 파이썬 파일일 뿐입니다.

이 파일은 사용자가 처음 명령어 실행기를 열었을 때 몇몇 예시 함수와 함께 생성됩니다. 아직 명령어 실행기를 구동한 적이 없다면, 직접 해당 파일을 생성할 수 있습니다. 사용자가 선호하는 텍스트 편집기를 사용해서 명령어 파일을 편집하면 됩니다. 명령어 실행기에서 edit 명령어를 호출해서 내장 편집기를 사용할 수도 있습니다. 편집기가 명령어 파일을 불러온 상태로 열릴 것입니다. 명령어 파일을 직접 편집한 다음 변경 사항을 저장하면 됩니다.

예를 들어, 모든 레이어를 제거하는 다음 함수를 추가할 수 있습니다:

from qgis.gui import *

def removeall():
    mapreg = QgsMapLayerRegistry.instance()
    mapreg.removeAllMapLayers()

이 함수를 추가하고 나면, 명령어 실행기에서 사용할 수 있게 됩니다. removeall 이라고 입력해서 해당 함수를 호출할 수 있습니다. 함수 자체를 작성하는 것 외에 다른 작업을 할 필요가 없습니다.

함수는 파라미터를 받을 수 있습니다. 인자를 받으려면 사용자 함수 정의에 *args 를 추가하십시오. 명령어 실행기에서 함수를 호출할 때, 공백으로 구분한 파라미터를 넘겨줘야 합니다.

다음은 레이어의 파일명을 파라미터로 받아서 해당 레이어를 불러오는 함수의 예시입니다:

import processing

def load(*args):
  processing.load(args[0])

/home/myuser/points.shp 경로에 있는 레이어를 불러오고자 하는 경우, 명령어 실행기 텍스트 란에 다음과 같이 입력하십시오:

load /home/myuser/points.shp