공간 분석/공간 분석 기초

QGIS Python 콘솔로 다중 Buffer 자동화하기: 반복문 활용 방법

Data Jun 2026. 2. 28. 16:12

이전 글에서는 processing.run('native:buffer')를 사용해 하나의 버퍼를 생성하는 방법을 정리했습니다.

 

이번에는 한 단계 확장해
여러 개의 거리 값을 반복문으로 자동 실행하는 방법을 정리합니다.

 

핵심 차이점은
for 반복문을 사용해 버퍼를 자동 생성했다는 점입니다.

 

1. 실행 구조

다중 버퍼 파이썬 콘솔 활용 실행화면 예

  • 다양한 거리(5m ~ 5000m)의 버퍼가 자동 생성
  • 각각 다른 레이어 이름으로 메모리 레이어 생성
  • 실행 시간도 함께 출력

화면에서 확인 가능합니다.

 

2 . 실행 코드 예시 (반복문 적용)

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

import processing
import time

start = time.time()

# 입력 shp
shpPath_two_points = r'C:\Users\wnsgu\Downloads\강의자료_ver.2\Section.01&03\SHP\01.buffer\two_points_5186.shp'

# 여러 거리 값
buffer_distances = [5000, 3000, 1500, 1000, 500, 200, 100, 50, 30, 5]

for buffer_distance in buffer_distances:

    output_temp_buffer = f'memory:distance_practice_{buffer_distance}'

    bufferParams = {
        'INPUT': shpPath_two_points,
        'DISTANCE': buffer_distance,
        'OUTPUT': output_temp_buffer
    }

    buffer = processing.run('native:buffer', bufferParams)

    QgsProject.instance().addMapLayer(buffer['OUTPUT'])

    print(f"{buffer_distance}m 버퍼 완료")

print("총 실행 시간:", time.time() - start)

 

3. 코드 해석

 1) 거리 리스트 생성: 한 번에 여러 거리 값을 정의

 

 2) for 반복문 실행: 거리 하나씩 자동 적용

 

 3) 동적 레이어 이름 생성: f-string을 사용해 거리별 레이어 구분

 

 4) 실행 시간 확인: 대량 처리 시 성능 비교 가능

 

4. 정리

for 반복문을 활용하면 QGIS Python 콘솔에서 여러 거리의 버퍼를 한 번에 자동 생성할 수 있습니다.