Using QGIS

QGIS는 공간 처리 툴박스-GDAL-래스터 변환-gdal2xyz 경로로 접근하면 레이어에 떠있는 래스터를 대상으로 변환할 수 있다.

또는 Processing toolbox / GDAL/OGR / [GDAL] Conversion / gdal2xyz

그런데 이상하게 결과 파일이 생성되지 않았다. 아래 로그를 첨부한다.

알고리즘 처리 중...
'gdal2xyz' 알고리즘 시작…
Input parameters:
{ 'BAND' : 1, 'CSV' : False, 'INPUT' : 'D:/directory/dtm.tif', 'OUTPUT' : 'D:\output directory\output_dtm.txt' }

GDAL command:
python3 -m gdal2xyz -band 1 "D:\tiff directory\target_dtm.tif"  "D:\output directory\output_dtm.txt"
GDAL command output:
C:\PROGRA~1\QGIS3~1.10\bin\python3.exe: No module named gdal2xyz

Execution completed in 0.96 seconds
Results:
{'OUTPUT': 'D:\output directory\output_dtm.txt'}

출력 레이어 불러오기
Algorithm 'gdal2xyz' finished

보니까 중요한 건 No module named gdal2xyz인 것 같다. 아무래도 QGIS 상에서 작동하는 Python 환경에 gdal2xyz라는 모듈 혹은 패키지가 없어서 나타나는 것 같다. QGIS에서는 깔려 있는데 가상환경 상에서 지원이 안 되는 것 같다. 그래서 QGIS를 별도로 깔기는 좀 무리가 있어서 파이썬 자체에서 작동해보기로 했다.

Using gdal2xyz.py in Python environment (Anaconda environment)

우선 준비물은 gdal이 있는 osgeo 패키지이다. QGIS 로그에 보면 python3 -m gdal2xyz -band 1 "D:/directory/dtm.tif"라고 돼 있는데, 아무래도 QGIS가 파이썬 스크립트를 터미널에서 실행시키는 놈이 저 모양인 것 같다. 그래서 osgeo가 설치된 가상환경을 conda activate 가상환경로 실행시키고 아래처럼 하니 성공적으로 추출됐다.

python C:\Users\user\anaconda3\envs\geoanal\Scripts\gdal2xyz.py -band 1 "D:\tiff directory\target_dtm.tif" "D:\output directory\output_dtm.txt"

그리고 프로세싱 정도를 0...10...20...처럼 보여준다.