반응형
PyQGIS란? QGIS를 자동화하는 강력한 파이썬 도구!
QGIS와 PyQGIS의 차이점
QGIS는 오픈소스 GIS 프로그램으로, 누구나 무료로 공간 데이터를 시각화하고 분석할 수 있는 툴입니다. 하지만 반복 작업이 많거나 복잡한 처리가 필요할 경우, 단순 클릭으로는 한계가 있습니다.
여기서 등장하는 것이 바로 PyQGIS입니다.
**PyQGIS(Python + QGIS)**는 QGIS의 기능을 파이썬 코드로 제어할 수 있도록 해주는 API입니다. 즉, QGIS를 자동화하고, 반복 작업을 효율적으로 처리할 수 있게 해줍니다.
PyQGIS 설치 방법
QGIS에서 기본 내장
QGIS를 설치하면 PyQGIS도 함께 설치됩니다. 별도의 설치 과정 없이 QGIS의 Python Console을 열거나 Processing Toolbox > Scripts를 통해 바로 사용할 수 있습니다.
외부 IDE에서도 사용하려면?
PyCharm, VSCode 등 외부 IDE에서도 PyQGIS를 사용하려면 환경 세팅이 필요합니다.
예시 (Windows 기준):
set PYTHONPATH=C:\Program Files\QGIS 3.28\apps\qgis\python
set PATH=C:\Program Files\QGIS 3.28\bin;%PATH%
PyQGIS 기본 코드 예제
레이어 불러오기
layer = QgsVectorLayer("C:/data/seoul_gu.shp", "서울 자치구", "ogr")
if layer.isValid():
QgsProject.instance().addMapLayer(layer)
속성값 필터링
exp = QgsExpression("\"gu_name\" = '강남구'")
request = QgsFeatureRequest(exp)
for feature in layer.getFeatures(request):
print(feature["gu_name"])
공간 필터링 (예: 특정 폴리곤 내부 포인트 추출)
polygon = [f for f in polygon_layer.getFeatures()][0]
for point in point_layer.getFeatures():
if polygon.geometry().contains(point.geometry()):
print(point.id())
PyQGIS를 활용한 자동화 예시
- 대량의 shp 파일을 한 번에 불러오고 병합하기
- 필드 계산기 기능을 파이썬으로 자동 실행하기
- 공간 조인, 클립, 버퍼 등의 공간 분석 작업을 자동화
- 반복적인 지도 스타일 적용
PyQGIS를 배워야 하는 이유
- 반복 업무의 자동화
예: 100개의 레이어를 하나씩 처리하는 대신, 10줄의 코드로 해결 - 데이터 처리 속도 향상
GUI 클릭보다 코드 실행이 훨씬 빠름 - QGIS 플러그인 개발의 기반
PyQGIS는 QGIS 플러그인 개발의 핵심 언어입니다 - 다른 파이썬 라이브러리와 연동 가능
pandas, geopandas, matplotlib 등과 함께 쓰면 분석력 극대화
PyQGIS 학습 팁 & 추천 자료
- 공식 문서: PyQGIS Developer Cookbook
- PyQGIS 관련 GitHub 예제
- QGIS 커뮤니티 포럼 및 Reddit
- 나의 블로그에서 다룰 예정인 실전 예제 시리즈
마무리: PyQGIS로 GIS 업무 효율 극대화하자!
PyQGIS는 공간 데이터를 다루는 누구에게나 필수적인 도구입니다. 특히 GIS 분석가, 도시계획 전문가, 공간 빅데이터 분석가라면 꼭 익혀야 할 무기입니다.
주요 키워드 정리
- PyQGIS
- QGIS 자동화
- PyQGIS 예제
- PyQGIS 설치 방법
- QGIS Python 콘솔
- QGIS 파이썬 자동화
- 공간 분석 자동화
- QGIS 플러그인 개발
반응형
'🖥️ IT, 컴퓨터 > 🐍 Python' 카테고리의 다른 글
파이썬에서 모든 열 출력하기 :: display.max_columns (0) | 2025.03.31 |
---|---|
[Python] SHP 파일 여러개를 하나로 합치는 방법 :: geopandas 활용 (0) | 2025.03.27 |
[Python] Geopandas 설치하기 (2025 최신버전) (0) | 2025.03.26 |
[Python] qgis2web 으로 QGIS 지도를 html 웹지도로 만들기 (0) | 2025.03.26 |
[Python] Streamlit이란? :: 데이터 기반 웹 애플리케이션을 만들 수 있는 오픈소스 프레임워크 (0) | 2025.03.23 |
댓글