공간 분석/공간 분석 기초

QGIS Python 콘솔로 Buffer 자동화하기

Data Jun 2026. 2. 28. 16:01

QGIS에서 버퍼(Buffer)를 GUI로 클릭해서 실행하는 대신,
Python 콘솔을 활용하면 반복 작업을 자동화하고 실행 시간을 측정할 수 있습니다.

 

이번 글에서는 실제 실행 화면을 기준으로

  • shp 경로 지정
  • native:buffer 실행
  • 메모리 레이어 생성
  • 처리 시간 출력

까지 전체 흐름을 정리합니다.

 

1. 작업 화면 구조

화면 구성은 다음과 같습니다.

  • 하단: Python 콘솔
  • 우측: 스크립트 편집 창
  • 상단 지도: 버퍼 결과 레이어 표시

작업 화면 구조

 

2. 실행 코드 전체 예시

아래 코드는 그대로 실행 가능한 형태입니다.

import processing
import time

# 실행 시간 확인
start = time.time()

# 입력 shp 경로 (Windows는 r'' 권장)
shpPath_two_points = r'~path\Section.01&03\SHP\01.buffer\two_points_5186.shp'

# 버퍼 거리
buffer_distance = 300

# 출력 메모리 레이어
output_buffer = 'memory:distance_practice'

# 파라미터 구성
bufferParams = {
    'INPUT': shpPath_two_points,
    'DISTANCE': buffer_distance,
    'OUTPUT': output_buffer
}

# 버퍼 실행
buffer = processing.run('native:buffer', bufferParams)

# 결과 지도에 추가
QgsProject.instance().addMapLayer(buffer['OUTPUT'])

# 실행 시간 출력
print("버퍼 소요 시간:", time.time() - start)

 

3. 코드 흐름 이해하기

 1) 입력 데이터 지정: Shapefile 경로를 문자열로 지정합니다. 

 

 2) 파라미터 딕셔너리 구성: processing.run()은 반드시 딕셔너리 형태로 입력을 받습니다.

 

 3) 메모리 레이어 출력: memory를 사용하면 디스크에 저장하지 않고 즉시 결과 확인 가능.

 

 4) 실행 시간 측정: 대용량 데이터 처리 시 성능 비교에 유용합니다.

 

 

4. 정리

QGIS Python 콘솔에서 processing.run('native:buffer')를 활용하면 버퍼 작업을 자동화하고 실행 시간까지 효율적으로 관리할 수 있습니다.