수치지도를 이용한
DEM 생성과 지형분석
2021.11
이민파
MAPPLUS@GMAIL.COM
Creative Commons License CC-BY-NC
https://www.osgeo.kr
학습 목표와 내용
학습 목표: QGIS에서 국토지리정보원 수치지도를 이용하여 DEM을 생성하고 지형 분석(경사
도, 경사 방향, 음영기복도)을 수행하고 분석 결과물을 이용하여 여러 가지 래스터 분석에 응
용할 수 있다.
2
QGIS 개요
분석지역 준비
수치지도를 이용한 DEM 생성
DEM을 이용한 지형 분석
지형분석 결과를 이용한
래스터 분석
QGIS 팁
QGIS 개요
Creative Commons License CC-BY-NC
https://www.osgeo.kr
OSGeo & OSGeo Korean Chapter
OSGeo(Open Source Geospatial Foundation)는 오픈소스 지리공간 SW, GeoData의 개발 지원과
광범위한 사용 증진을 위해 2006년 2월 4일 미국 시카고에서 창설된 비영리 민간 기구
4
 홈페이지
- https://www.osgeo.org
 로컬 지부 운영
- OSGeo 한국어지부 포함 전세계 29개의 로컬 지부 운영
 FOSS4G 국제 Conference 개최
- OSGeo의 주최로 개최되는 세계 최대의 오픈소스 GIS 연례 컨퍼런스
- 유럽, 북미, 기타 지역의 대륙별 순환 원칙에 따라 개최
- 2015년 대한민국 서울에서 개최
 Content Management Systems
 Desktop Applications
 Geospatial Libraries
 Metadata Catalogs  Spatial Databases
 Web Mapping OSGeo 주요 프로젝트 현황
출처: 2021, 오픈소스 GIS를 활용한 공간분석 기초 과정, LX공간정보아카데미
https://www.osgeo.kr
오픈소스 QGIS에 대한 이해
5
 QGIS – http://qgis.org
 무료, 오픈소스 GIS 소프트웨어 (QGIS 데스크탑이 대표적인 애플리케이션)
 공간정보(GIS) 데이터 시각화, 편집, 분석
 사용 운영체제: 윈도우, Mac OS X, 리눅스, BSD, 안드로이드
 C++, Python, Qt(UI Framework) 로써 개발
 다양한 플러그인에 의해 기능 확장
 타 오픈소스 GIS인 PostGIS, GRASS, MapServer 등과 용이한 통합
 배경
 2002. 7. 개발 (Gary Sherman), Quantum GIS로 명칭
 2009. 1. 버전 1.0 출시
 2016. 10. 버전 2.18 (Las Palmas) 출시
 2018. 2. 버전 3.0 (Girona) 출시
 2018. 10. 버전 3.4 (Madeira) 출시
 자발적 참여 개발자에 의해 개발관리가 이루어짐 (소스코드 관리체계: GitHub)
 라이선스: GNU GPL (무료, 자유롭게 수정 가능)
 Long Term Release (LTR)
 안정적이며 버그 수정과 기능개선을 지속적으로 보장하는 버전을 지칭
 버전 3.16.11 (가장 최근 LTR)
※ Road Map: https://www.qgis.org/en/site/getinvolved/development/roadmap.html
출처: 2021, 오픈소스 GIS를 활용한 공간분석 기초 과정, LX공간정보아카데미
https://www.osgeo.kr
여러 가지 QGIS 애플리케이션
6
 QGIS 데스크탑
 QGIS 브라우저
 QGIS 서버
 QGIS 웹 클라이언트
 QGIS 안드로이드
간단히 QGIS라고 하는 경우, 바로 이것
(Beta)
출처: 2021, 오픈소스 GIS를 활용한 공간분석 기초 과정, LX공간정보아카데미
https://www.osgeo.kr
QGIS LTR(Long-Term Release) 버전
안정적인 기능과 지원을 원하면 LTR 버전을 사용하자
7
출처: 2021, 오픈소스 GIS를 활용한 공간분석 기초 과정, LX공간정보아카데미
분석지역 준비
Creative Commons License CC-BY-NC
https://www.osgeo.kr
분석 대상 지역 선정
① 1:25,000 수치지도 도엽번호: (청운)377074, (양덕원)377083
경기도 양평군 청운면 대상
9
https://www.osgeo.kr
QGIS 기본 환경 설정 - 좌표계 확인
① QGIS 실행 후 [설정] – [옵션] 메뉴 실행
② [좌표계] 탭으로 이동하여 프로젝트 좌표계는 [첫 레이어의 좌표계를 사용], 레이어 좌표계는 [ 좌표계
확인] 선택 후 확인 버튼을 눌러 환경 설정
이 프로젝트에서 사용할 DXF 파일은 좌표계 정보(파일 등)를 명시적으로 포함하고 있지 않으
므로 QGIS에서 레이어 추가 시 사용자가 좌표계를 선택하도록 옵션 설정
10
https://www.osgeo.kr
분석대상지역 준비
① 웹 브라우저에서 http://data.nsdi.go.kr/ 이동 후 로그인
② 행정구역 검색 또는 http://data.nsdi.go.kr/dataset/15145 이동하여 최신의 경기도
(LSMD_ADM_SECT_UMD_경기.zip) 파일 다운로드
③ QGIS [보기] – [패널] – [탐색기] 패널을 활성화하여 다운로드 한 폴더(QGIS-SurfaceAnalysisNSDI)로 탐
색 후 읍면동경계 추가 (좌표체계가 EPSG:5179 – Korea 2000/Unified CS 임을 확인)
국가공간정보포털 오픈마켓에서 행정구역 읍면동(법정동) 경계 다운로드
11
데이터: QGIS-SurfaceAnalysisNSDI
https://www.osgeo.kr
분석대상지역 준비
① 레이어 패널에서 LSMD_ADM_SECT_UMD_41 선택 후 [편집] – [선택] – [표현식으로 객체 선택…] 또는
툴바에서 [표현식으로 객체 선택] 도구 클릭
② 표현식으로 선택 창에서 "EMD_NM" = '청운면' 입력 후 객체 선택 버튼 클릭
표현식으로 객체 선택… 도구를 이용하여 경기도 양평군 청운면 선택
12
https://www.osgeo.kr
분석대상지역 준비
① 레이어 패널에서 LSMD_ADM_SECT_UMD_41 선택 후 오른쪽 마우스 클릭하여 [내보내기] – [선택한 객
체를 다른 이름으로 저장…] 버튼 클릭
② 파일 이름은 StudyArea.shp, 좌표계는 EPSG:5186 – Korea 2000 / Central Belt 2010 선택
③ [선택한 객체만 저장] 확인 후 확인 버튼을 눌러 저장
경기도 양평군 청운면 선택하여 다른 이름으로(StudyArea) 저장하기
13
https://www.osgeo.kr
분석대상지역 준비
① 내보내기 한 StudyArea 레이어만 남기고 나머지 레이어는 제거
② StudyArea 레이어에서 오른쪽 마우스 클릭하여 [레이어 좌표계] - [레이어에서 프로젝트 좌표계 설정]
실행 후 프로젝트 좌표계가 EPSG:5186임을 확인
프로젝트 좌표계를 StudyArea 레이어의 EPSG:5186으로 설정하기
14
https://www.osgeo.kr
VWorld 지도를 배경지도로 추가
① [보기] – [패널] – [탐색기] 패널을 활성화
② 탐색기 패널을 끌어다가 적당한 위치에 고정
XYZ Tiles: 공개된 TMS 서버(ESPG:3857 좌표계를 사용)를 배경지도로 활용해 보자
15
https://www.osgeo.kr
VWorld 지도를 배경지도로 추가
① [탐색기] – [XYZ Tiles] 에서 오른쪽 마우스 클릭하여 [새 연결…] 메뉴 실행
② 이름, URL에 아래 양식을 차례로 입력 및 추가
VWorld 일반, 회색, 영상 지도를 배경지도로 추가
16
- Vworld Base: http://xdworld.vworld.kr:8080/2d/Base/service/{z}/{x}/{y}.png
- Vworld Gray: http://xdworld.vworld.kr:8080/2d/gray/service/{z}/{x}/{y}.png
- Vworld Satellite: http://xdworld.vworld.kr:8080/2d/Satellite/service/{z}/{x}/{y}.jpeg
https://www.osgeo.kr
VWorld 지도를 배경지도로 추가
탐색기 XYZ Tiles 에서 VWorld Satellite 더블 클릭하여 추가한 결과
17
수치지도를 이용한 DEM 생성
Creative Commons License CC-BY-NC
https://www.osgeo.kr
수치지도 다운로드
① 국토정보맵 – 통합지도검색으로 이동하여 [통합검색] – [인덱스] – [1:25,000] 선택
② 1:25,000 수치지도 도엽번호 중 (청운)377074, (양덕원)377083 선택 후 다운로드
③ 좌표체계: EPSG:5186(Korea 2000 / Central Belt 2010) 확인
국토정보플랫폼(http://map.ngii.go.kr/)을 이용하여 수치지도 다운로드(가입 및 인증)
19
데이터: QGIS-SurfaceAnalysisNGII-Map
https://www.osgeo.kr
참고: 연속수치지형도 다운로드
① 국토지리정보원 연속수치지형도 등고선 데이터(http://data.nsdi.go.kr/dataset/20180927ds0069) 다운
로드 페이지로 이동하여 다운로드
② 연속수치지형도란 도엽단위의 수치지도를 동일 지형·
지물 레이어별로 연결하여 대상 지역 전체를 끊
김 없이(seamless) 연속되는(continuous) 수치지도를 말함
국가공간정보포털(http://www.nsdi.go.kr/ , 가입 및 인증)에서 연속수치지형도 다운로드
20
https://www.osgeo.kr
수치지도(DXF) 파일 QGIS에서 불러오기
① [보기] – [패널] – [탐색기] 패널을 활성화 후 QGIS-SurfaceAnalysisNGII-Map 폴더로 이동(*즐겨찾기)
② (B010)수치지도_377074_2019_00000504686144.dxf 파일 더블클릭 후 좌표체계는 EPSG:5186(Korea
2000 / Central Belt 2010) 선택(중요!!!)
③ 추가할 벡터 레이어 선택 창에서 LineString만 선택하고 확인 버튼을 눌러 레이어로 추가
④ (B010)수치지도_377083_2019_00000864713040.dxf 파일 위와 같은 방법으로 추가
수치지도 DXF 파일을 QGIS에서 불러와 보자: (청운)377074, (양덕원)377083
21
https://www.osgeo.kr
수치지도(DXF) 파일을 Shapefile로 변환하기
① 레이어 패널에서 (B010)수치지도_377074 레이어 선택 후 오른쪽 마우스 클릭하여 [내보내기] – [객체
를 다른 이름으로 내보내기…] 클릭
② 포맷 ESRI Shapefile, 파일 이름 QGIS-SurfaceAnalysisData청운_377074.shp, 좌표계 EPSG:5186 확인, 도
형 옵션에서 도형 유형은 LineString, Z차원 포함 설정(중요!!!) 후 내보내기
③ (B010)수치지도_377083 레이어도 위와 같은 방법으로 Shapefile(양덕원_377083.shp)로 내보내기
④ 내보내기 후 수치지도 DXF 레이어는 레이어 패널에서 선택 후 레이어 제거
수치지도 DXF 파일을 Shapefile로 변환해 보자: (청운)377074, (양덕원)377083
22
https://www.osgeo.kr
Shapefile에서 등고선 추출하기
① 레이어 패널에서 청운_377074 선택 후 [편집] – [선택] – [표현식으로 객체 선택…] 또는 툴바에서 [표현
식으로 객체 선택] 도구 클릭
② 표현식으로 선택 창에서 "Layer" = 'F0017111' OR "Layer" = 'F0017114' 입력 후 객체 선택 버튼 클릭
③ 위와 같은 방법으로 양덕원_377083 레이어도 등고선만 선택
표현식으로 객체 선택 도구를 이용하여 등고선만 선택하기
23
https://www.osgeo.kr
Shapefile에서 등고선 추출하기
① 레이어 패널에서 청운_377074 레이어 선택 후 오른쪽 마우스 눌러 [내보내기] – [선택한 객체를 다른
이름으로 저장…] 후 파일 이름을 QGIS-SurfaceAnalysisDatacontour_377074.shp 으로 저장
② 레이어 패널에서 양덕원_377083 레이어 선택 후 오른쪽 마우스 눌러 [내보내기] – [선택한 객체를 다
른 이름으로 저장…] 후 파일 이름을 QGIS-SurfaceAnalysisDatacontour_377083.shp 으로 저장
선택한 객체를 다른 이름으로 저장하기 도구를 이용하여 등고선만 저장하기
24
https://www.osgeo.kr
등고선의 Z값을 속성정보로 추출하기
① 레이어 패널에서 contour_377074 레이어를 더블클릭 후 정보 탭을 확인
② 도형 유형이 Line (MultiLineStringZ) 임을 확인(도형의 좌표값에 X,Y 외 Z값을 포함하고 있음을 의미)
③ Contour_377074 레이어의 속성 테이블을 열고 필드를 확인(높이값이 포함된 필드가 없음)
등고선의 높이값을 확인해 보자
25
https://www.osgeo.kr
등고선의 Z값을 속성정보로 추출하기
① [공간 처리] – [툴박스] 를 실행하여 [공간 처리 툴박스] 활성화
② [벡터 도형] – [Z값 추출] 도구 실행
③ 입력 레이어 contour_377074, 접두어 z_ 산출물 QGIS-SurfaceAnalysis/Data/contour_377074_z.shp 으로
저장
④ 추가된 레이어의 속성 테이블을 열어 z_first 필드 값 확인
등고선 레이어에 높이값을 속성으로 계산해 보자
26
https://www.osgeo.kr
등고선으로 DEM 만들기 - 첫번째 방법
① [공간 처리] – [툴박스] 를 실행하여 [공간 처리 툴박스] 활성화
② [보간] - [TIN 보간] 도구 실행
③ 벡터 레이어 contour_377083, 보간에 z좌표값 이용 선택 후 버튼
④ 벡터 레이어 contour_377083, 보간에 z좌표값 이용 선택 후 버튼
⑤ 공간범위에 .. 버튼 눌러 [레이어서 계산] – [StudyArea] 선택
⑥ 산출 래스터 크기의 픽셀 크기 10(단위는 m) 설정
⑦ 보간 산출물 DEM10.tif 설정 후 실행
등고선 레이어의 도형 Z값으로 DEM을 만들어 보자
27
https://www.osgeo.kr
등고선으로 DEM 만들기 – 두번째 방법
① [공간 처리] – [툴박스] 를 실행하여 [공간 처리 툴박스] 활성화
② [보간] - [TIN 보간] 도구 실행
③ 벡터 레이어 contour_377083, 보간 속성값 z_first 선택 후 버튼
④ 벡터 레이어 contour_377083, 보간 속성값 z_first 선택 후 버튼
⑤ 공간범위에 .. 버튼 눌러 [레이어서 계산] – [StudyArea] 선택
⑥ 산출 래스터 크기의 픽셀 크기 10(단위는 m) 설정
⑦ 보간 산출물 DEM10.tif 설정 후 실행
등고선 레이어의 필드 고도값으로 DEM을 만들어 보자
28
https://www.osgeo.kr
등고선으로 DEM 만들기
생성한 DEM의 정보와 스타일을 설정해 보자
29
DEM을 이용한 지형 분석
Creative Commons License CC-BY-NC
https://www.osgeo.kr
지형 분석(Surface Analysis)
지형 높이값을 가진 래스터 (DEM) 자료에서 인접한 셀과의 관계를 이용하여 경사도, 향, 음영
기복, 가시권 등을 분석하는 기법
31
https://rgis.unm.edu/dem_analysis/
https://www.osgeo.kr
지형분석에 필요한 기반 데이터 불러오기
① QGIS의 탐색기 또는 레이어 불러오기 기능을 이용하여 파일을 추가
② 각 레이어의 스타일을 변경
분석대상 지역 Shapefile(StudyArea.shp, 경기도 양평군 청암면)과 DEM(DEM10.tif) 파일 준비
32
https://www.osgeo.kr
경사도(Slope) 분석
① [래스터] - [분석] - [경사...] 또는 [공간 처리 툴박스] - [GDAL] - [래스터 분석] - [경사] 실행
② 입력 레이어는 DEM10, 경계 계산 체크 후 실행
경사도란 지형의 기울어진 각도, 단위는 도(degrees) 또는 퍼센트(percent rise)
33
https://pro.arcgis.com/en/pro-app/latest/tool-reference/spatial-analyst/how-slope-works.htm
https://www.osgeo.kr
경사 방향(Aspect, 사면향) 분석
① [래스터] - [분석] - [경사 방향...] 또는 [공간 처리 툴박스] - [GDAL] - [래스터 분석] - [경사 방향] 실행
② 입력 레이어는 DEM10, 경계 계산 체크 후 실행
경사면의 방향을 표현하는 0에서 360까지의 값으로 이 값은 북(0°)에서 시작해 시계방향
34
https://www.osgeo.kr
음영기복도(Hillshade) 생성
① [래스터] - [분석] - [음영기복도...] 또는 [공간 처리 툴박스] - [GDAL] - [래스터 분석] - [음영기복도] 실행
② 입력 레이어는 DEM10, 경계 계산, 결합 음영 체크 후 실행
태양의 위치에 따라 레이어의 음영을 계산하며, 태양의 수평 각도(방위각, azimuth)와 수직 각
도(태양 고도) 를 설정
35
https://docs.qgis.org/3.16/ko/docs/user_manual/processing_algs/qgis/rasterterrainanalysis.html
https://www.osgeo.kr
DEM과 음영기복도 중첩 시각화
① DEM 및 Hillshade 레이어를 드래그하여 순서 조정
② DEM10 레이어를 더블 클릭하여 레이어 속성 창 불러오기
③ [투명도] 탭에서 50% 설정, [심볼] 탭의 색상 렌더링의 혼합모드를 중첩으로 설정 후 적용
DEM과 음영기복도를 중첩하여 시각화하기
36
https://www.osgeo.kr
Qgis2threejs 를 이용한 3차원 시각화
① [플러그인] - [플러그인 설치 및 관리…] 메뉴 실행 후 플러그인 설치
3차원 시각화를 지원하는 Qgis2threejs 플러그인 설치
37
https://www.osgeo.kr
Qgis2threejs 를 이용한 3차원 시각화
① [웹] – [Qgis2threejs] – [Qgis2threejs Exporter] 실행
② DEM10 레이어를 켜고, 기타 옵션 설정 변경하여 시각화 최적화
38
지형분석 결과를 이용한
래스터 분석하기
Creative Commons License CC-BY-NC
https://www.osgeo.kr
구역 통계(Zonal Statistics) 도구 활용
① [공간 처리 툴박스] - [래스터 분석] – [구역 통계] 실행
② 입력 레이어는 StudyArea, 래스터 레이어는 Slope(경사도), 산출 열 접두어는 s_ 입력
③ 계산할 통계에서 아래 그림처럼 개수, 합, 평균, 최소값, 최대값 등 선택 후 확인 버튼 클릭
④ 실행 버튼을 누른 후 추가된 레이어의 속성 테이블 확인
질문: 청운면의 평균 경사도와 평균 표고를 구해보자
40
https://www.osgeo.kr
래스터 계산기 활용
① [래스터] - [래스터 계산기…] 실행
② 산출 레이어 저장 버튼을 눌러 MySite.tif로 저장(확장자 입력 필요)
③ 래스터 계산기 표현식 입력
④ 확인 버튼을 눌러 분석 실행
질문: 경사도가 5도(˚) 이상 15도(˚) 이하이면서 남향(112.5 ~ 247.5)인 지역을 찾아보자
41
( "Slope@1" >= 5 AND "Slope@1" <= 15 )
AND ( "Aspect@1" >= 112.5 AND
"Aspect@1" <= 247.5)
112.5˚
247.5˚
https://www.osgeo.kr
래스터 계산기 활용
① MySite 레이어 더블클릭 후 심볼 탭으로 이동
② 렌더링 유형을 팔레트/고유 값 선택 후 분류 버튼 눌러 심볼 추가
③ 0값 심볼 선택 후 (-) 버튼 눌러 제거 후 1값의 심볼을 더블 클릭하여 설정
④ 결과 확인
질문: 경사도가 5도(˚) 이상 15도(˚) 이하이면서 남향(112.5 ~ 247.5)인 지역을 찾아보자
42
https://www.osgeo.kr
분석결과 잘라내기
① [래스터] - [추출] - [마스크 레이어로 래스터 자르기...] 또는 [공간 처리 툴박스] - [GDAL] - [래스터 추출]
- [마스크 레이어로 래스터 자르기] 실행
② 입력 레이어는 MySite, 마스크 레이어는 StudyArea, 입력 래스터의 해상도 유지 체크 후 실행
래스터 계산기로 분석한 영역을 청운면 행정경계로 잘라내 보자
43
QGIS 팁
Creative Commons License CC-BY-NC
https://www.osgeo.kr
공간인덱스와 피라미드 생성
대용량 벡터 레이어의 렌더링 성능을 향상하려면 공간 인덱스를 생성하자
45
https://www.osgeo.kr
공간인덱스와 피라미드 생성
대용량 래스터 레이어의 렌더링 성능을 향상하려면 피라미드를 생성하자
46
 피라미드를 생성해도 분석도구에서는 원본 데이터를 사용합니다.
피라미드 이미지 출처: https://en.wikipedia.org/wiki/Pyramid_(image_processing)
https://www.osgeo.kr
벡터 레이어의 한글 문제
레이어 속성에서 데이터 원본 인코딩 변경: System – CP949 – Windows949 – EUC-KR – UTF-8
47
 Shapefile의 경우 cpg 파일을 사용하자
https://www.osgeo.kr
래스터 분석 시 고려사항
좌표체계, 공간범위, 셀 크기(해상도)를 통일하자
48
 좌표체계 통일
 좌표체계를 통일하면 연산 과정에서 불필요한 [좌표체계 변환] 과정을 피할
수 있습니다.
 공간 범위와 셀 크기 통일
 공간 범위와 셀 크기를 통일하면 연산 과정에서 불필요한 리샘플링을 하지
않습니다.
 NoData 이해
 NoData는 래스터 연산(분석 포함)에서 제외되는 데이터입니다.
 따라서, 연구지역을 대상으로 분석할 경우 언제 NoData를 적용할 지 판단해
야 합니다.
https://www.osgeo.kr
래스터 NoData 및 NoData 적용
래스터의 NoData는 래스터 연산(분석 포함)에서 제외되는 데이터입니다.
49
https://www.osgeo.kr
내보내기의 다양한 옵션
내보내기는 포맷 변환, 좌표계 변환, 필드 선택, 선택한 객체만 내보내기, 도형 유형 변경, 내보
낼 범위 설정 등 다양한 옵션이 있음
50
감사합니다.
경기도 안양시 동안구 벌말로 126,
2307호 (관양동, 평촌오비즈타워)
Tel. 031-450-3411~3
Fax. 031-450-3414
E-mail. mango@mangosystem.com

[QGIS] 수치지도를 이용한 DEM 생성과 지형분석

  • 1.
    수치지도를 이용한 DEM 생성과지형분석 2021.11 이민파 MAPPLUS@GMAIL.COM Creative Commons License CC-BY-NC
  • 2.
    https://www.osgeo.kr 학습 목표와 내용 학습목표: QGIS에서 국토지리정보원 수치지도를 이용하여 DEM을 생성하고 지형 분석(경사 도, 경사 방향, 음영기복도)을 수행하고 분석 결과물을 이용하여 여러 가지 래스터 분석에 응 용할 수 있다. 2 QGIS 개요 분석지역 준비 수치지도를 이용한 DEM 생성 DEM을 이용한 지형 분석 지형분석 결과를 이용한 래스터 분석 QGIS 팁
  • 3.
  • 4.
    https://www.osgeo.kr OSGeo & OSGeoKorean Chapter OSGeo(Open Source Geospatial Foundation)는 오픈소스 지리공간 SW, GeoData의 개발 지원과 광범위한 사용 증진을 위해 2006년 2월 4일 미국 시카고에서 창설된 비영리 민간 기구 4  홈페이지 - https://www.osgeo.org  로컬 지부 운영 - OSGeo 한국어지부 포함 전세계 29개의 로컬 지부 운영  FOSS4G 국제 Conference 개최 - OSGeo의 주최로 개최되는 세계 최대의 오픈소스 GIS 연례 컨퍼런스 - 유럽, 북미, 기타 지역의 대륙별 순환 원칙에 따라 개최 - 2015년 대한민국 서울에서 개최  Content Management Systems  Desktop Applications  Geospatial Libraries  Metadata Catalogs  Spatial Databases  Web Mapping OSGeo 주요 프로젝트 현황 출처: 2021, 오픈소스 GIS를 활용한 공간분석 기초 과정, LX공간정보아카데미
  • 5.
    https://www.osgeo.kr 오픈소스 QGIS에 대한이해 5  QGIS – http://qgis.org  무료, 오픈소스 GIS 소프트웨어 (QGIS 데스크탑이 대표적인 애플리케이션)  공간정보(GIS) 데이터 시각화, 편집, 분석  사용 운영체제: 윈도우, Mac OS X, 리눅스, BSD, 안드로이드  C++, Python, Qt(UI Framework) 로써 개발  다양한 플러그인에 의해 기능 확장  타 오픈소스 GIS인 PostGIS, GRASS, MapServer 등과 용이한 통합  배경  2002. 7. 개발 (Gary Sherman), Quantum GIS로 명칭  2009. 1. 버전 1.0 출시  2016. 10. 버전 2.18 (Las Palmas) 출시  2018. 2. 버전 3.0 (Girona) 출시  2018. 10. 버전 3.4 (Madeira) 출시  자발적 참여 개발자에 의해 개발관리가 이루어짐 (소스코드 관리체계: GitHub)  라이선스: GNU GPL (무료, 자유롭게 수정 가능)  Long Term Release (LTR)  안정적이며 버그 수정과 기능개선을 지속적으로 보장하는 버전을 지칭  버전 3.16.11 (가장 최근 LTR) ※ Road Map: https://www.qgis.org/en/site/getinvolved/development/roadmap.html 출처: 2021, 오픈소스 GIS를 활용한 공간분석 기초 과정, LX공간정보아카데미
  • 6.
    https://www.osgeo.kr 여러 가지 QGIS애플리케이션 6  QGIS 데스크탑  QGIS 브라우저  QGIS 서버  QGIS 웹 클라이언트  QGIS 안드로이드 간단히 QGIS라고 하는 경우, 바로 이것 (Beta) 출처: 2021, 오픈소스 GIS를 활용한 공간분석 기초 과정, LX공간정보아카데미
  • 7.
    https://www.osgeo.kr QGIS LTR(Long-Term Release)버전 안정적인 기능과 지원을 원하면 LTR 버전을 사용하자 7 출처: 2021, 오픈소스 GIS를 활용한 공간분석 기초 과정, LX공간정보아카데미
  • 8.
  • 9.
    https://www.osgeo.kr 분석 대상 지역선정 ① 1:25,000 수치지도 도엽번호: (청운)377074, (양덕원)377083 경기도 양평군 청운면 대상 9
  • 10.
    https://www.osgeo.kr QGIS 기본 환경설정 - 좌표계 확인 ① QGIS 실행 후 [설정] – [옵션] 메뉴 실행 ② [좌표계] 탭으로 이동하여 프로젝트 좌표계는 [첫 레이어의 좌표계를 사용], 레이어 좌표계는 [ 좌표계 확인] 선택 후 확인 버튼을 눌러 환경 설정 이 프로젝트에서 사용할 DXF 파일은 좌표계 정보(파일 등)를 명시적으로 포함하고 있지 않으 므로 QGIS에서 레이어 추가 시 사용자가 좌표계를 선택하도록 옵션 설정 10
  • 11.
    https://www.osgeo.kr 분석대상지역 준비 ① 웹브라우저에서 http://data.nsdi.go.kr/ 이동 후 로그인 ② 행정구역 검색 또는 http://data.nsdi.go.kr/dataset/15145 이동하여 최신의 경기도 (LSMD_ADM_SECT_UMD_경기.zip) 파일 다운로드 ③ QGIS [보기] – [패널] – [탐색기] 패널을 활성화하여 다운로드 한 폴더(QGIS-SurfaceAnalysisNSDI)로 탐 색 후 읍면동경계 추가 (좌표체계가 EPSG:5179 – Korea 2000/Unified CS 임을 확인) 국가공간정보포털 오픈마켓에서 행정구역 읍면동(법정동) 경계 다운로드 11 데이터: QGIS-SurfaceAnalysisNSDI
  • 12.
    https://www.osgeo.kr 분석대상지역 준비 ① 레이어패널에서 LSMD_ADM_SECT_UMD_41 선택 후 [편집] – [선택] – [표현식으로 객체 선택…] 또는 툴바에서 [표현식으로 객체 선택] 도구 클릭 ② 표현식으로 선택 창에서 "EMD_NM" = '청운면' 입력 후 객체 선택 버튼 클릭 표현식으로 객체 선택… 도구를 이용하여 경기도 양평군 청운면 선택 12
  • 13.
    https://www.osgeo.kr 분석대상지역 준비 ① 레이어패널에서 LSMD_ADM_SECT_UMD_41 선택 후 오른쪽 마우스 클릭하여 [내보내기] – [선택한 객 체를 다른 이름으로 저장…] 버튼 클릭 ② 파일 이름은 StudyArea.shp, 좌표계는 EPSG:5186 – Korea 2000 / Central Belt 2010 선택 ③ [선택한 객체만 저장] 확인 후 확인 버튼을 눌러 저장 경기도 양평군 청운면 선택하여 다른 이름으로(StudyArea) 저장하기 13
  • 14.
    https://www.osgeo.kr 분석대상지역 준비 ① 내보내기한 StudyArea 레이어만 남기고 나머지 레이어는 제거 ② StudyArea 레이어에서 오른쪽 마우스 클릭하여 [레이어 좌표계] - [레이어에서 프로젝트 좌표계 설정] 실행 후 프로젝트 좌표계가 EPSG:5186임을 확인 프로젝트 좌표계를 StudyArea 레이어의 EPSG:5186으로 설정하기 14
  • 15.
    https://www.osgeo.kr VWorld 지도를 배경지도로추가 ① [보기] – [패널] – [탐색기] 패널을 활성화 ② 탐색기 패널을 끌어다가 적당한 위치에 고정 XYZ Tiles: 공개된 TMS 서버(ESPG:3857 좌표계를 사용)를 배경지도로 활용해 보자 15
  • 16.
    https://www.osgeo.kr VWorld 지도를 배경지도로추가 ① [탐색기] – [XYZ Tiles] 에서 오른쪽 마우스 클릭하여 [새 연결…] 메뉴 실행 ② 이름, URL에 아래 양식을 차례로 입력 및 추가 VWorld 일반, 회색, 영상 지도를 배경지도로 추가 16 - Vworld Base: http://xdworld.vworld.kr:8080/2d/Base/service/{z}/{x}/{y}.png - Vworld Gray: http://xdworld.vworld.kr:8080/2d/gray/service/{z}/{x}/{y}.png - Vworld Satellite: http://xdworld.vworld.kr:8080/2d/Satellite/service/{z}/{x}/{y}.jpeg
  • 17.
    https://www.osgeo.kr VWorld 지도를 배경지도로추가 탐색기 XYZ Tiles 에서 VWorld Satellite 더블 클릭하여 추가한 결과 17
  • 18.
    수치지도를 이용한 DEM생성 Creative Commons License CC-BY-NC
  • 19.
    https://www.osgeo.kr 수치지도 다운로드 ① 국토정보맵– 통합지도검색으로 이동하여 [통합검색] – [인덱스] – [1:25,000] 선택 ② 1:25,000 수치지도 도엽번호 중 (청운)377074, (양덕원)377083 선택 후 다운로드 ③ 좌표체계: EPSG:5186(Korea 2000 / Central Belt 2010) 확인 국토정보플랫폼(http://map.ngii.go.kr/)을 이용하여 수치지도 다운로드(가입 및 인증) 19 데이터: QGIS-SurfaceAnalysisNGII-Map
  • 20.
    https://www.osgeo.kr 참고: 연속수치지형도 다운로드 ①국토지리정보원 연속수치지형도 등고선 데이터(http://data.nsdi.go.kr/dataset/20180927ds0069) 다운 로드 페이지로 이동하여 다운로드 ② 연속수치지형도란 도엽단위의 수치지도를 동일 지형· 지물 레이어별로 연결하여 대상 지역 전체를 끊 김 없이(seamless) 연속되는(continuous) 수치지도를 말함 국가공간정보포털(http://www.nsdi.go.kr/ , 가입 및 인증)에서 연속수치지형도 다운로드 20
  • 21.
    https://www.osgeo.kr 수치지도(DXF) 파일 QGIS에서불러오기 ① [보기] – [패널] – [탐색기] 패널을 활성화 후 QGIS-SurfaceAnalysisNGII-Map 폴더로 이동(*즐겨찾기) ② (B010)수치지도_377074_2019_00000504686144.dxf 파일 더블클릭 후 좌표체계는 EPSG:5186(Korea 2000 / Central Belt 2010) 선택(중요!!!) ③ 추가할 벡터 레이어 선택 창에서 LineString만 선택하고 확인 버튼을 눌러 레이어로 추가 ④ (B010)수치지도_377083_2019_00000864713040.dxf 파일 위와 같은 방법으로 추가 수치지도 DXF 파일을 QGIS에서 불러와 보자: (청운)377074, (양덕원)377083 21
  • 22.
    https://www.osgeo.kr 수치지도(DXF) 파일을 Shapefile로변환하기 ① 레이어 패널에서 (B010)수치지도_377074 레이어 선택 후 오른쪽 마우스 클릭하여 [내보내기] – [객체 를 다른 이름으로 내보내기…] 클릭 ② 포맷 ESRI Shapefile, 파일 이름 QGIS-SurfaceAnalysisData청운_377074.shp, 좌표계 EPSG:5186 확인, 도 형 옵션에서 도형 유형은 LineString, Z차원 포함 설정(중요!!!) 후 내보내기 ③ (B010)수치지도_377083 레이어도 위와 같은 방법으로 Shapefile(양덕원_377083.shp)로 내보내기 ④ 내보내기 후 수치지도 DXF 레이어는 레이어 패널에서 선택 후 레이어 제거 수치지도 DXF 파일을 Shapefile로 변환해 보자: (청운)377074, (양덕원)377083 22
  • 23.
    https://www.osgeo.kr Shapefile에서 등고선 추출하기 ①레이어 패널에서 청운_377074 선택 후 [편집] – [선택] – [표현식으로 객체 선택…] 또는 툴바에서 [표현 식으로 객체 선택] 도구 클릭 ② 표현식으로 선택 창에서 "Layer" = 'F0017111' OR "Layer" = 'F0017114' 입력 후 객체 선택 버튼 클릭 ③ 위와 같은 방법으로 양덕원_377083 레이어도 등고선만 선택 표현식으로 객체 선택 도구를 이용하여 등고선만 선택하기 23
  • 24.
    https://www.osgeo.kr Shapefile에서 등고선 추출하기 ①레이어 패널에서 청운_377074 레이어 선택 후 오른쪽 마우스 눌러 [내보내기] – [선택한 객체를 다른 이름으로 저장…] 후 파일 이름을 QGIS-SurfaceAnalysisDatacontour_377074.shp 으로 저장 ② 레이어 패널에서 양덕원_377083 레이어 선택 후 오른쪽 마우스 눌러 [내보내기] – [선택한 객체를 다 른 이름으로 저장…] 후 파일 이름을 QGIS-SurfaceAnalysisDatacontour_377083.shp 으로 저장 선택한 객체를 다른 이름으로 저장하기 도구를 이용하여 등고선만 저장하기 24
  • 25.
    https://www.osgeo.kr 등고선의 Z값을 속성정보로추출하기 ① 레이어 패널에서 contour_377074 레이어를 더블클릭 후 정보 탭을 확인 ② 도형 유형이 Line (MultiLineStringZ) 임을 확인(도형의 좌표값에 X,Y 외 Z값을 포함하고 있음을 의미) ③ Contour_377074 레이어의 속성 테이블을 열고 필드를 확인(높이값이 포함된 필드가 없음) 등고선의 높이값을 확인해 보자 25
  • 26.
    https://www.osgeo.kr 등고선의 Z값을 속성정보로추출하기 ① [공간 처리] – [툴박스] 를 실행하여 [공간 처리 툴박스] 활성화 ② [벡터 도형] – [Z값 추출] 도구 실행 ③ 입력 레이어 contour_377074, 접두어 z_ 산출물 QGIS-SurfaceAnalysis/Data/contour_377074_z.shp 으로 저장 ④ 추가된 레이어의 속성 테이블을 열어 z_first 필드 값 확인 등고선 레이어에 높이값을 속성으로 계산해 보자 26
  • 27.
    https://www.osgeo.kr 등고선으로 DEM 만들기- 첫번째 방법 ① [공간 처리] – [툴박스] 를 실행하여 [공간 처리 툴박스] 활성화 ② [보간] - [TIN 보간] 도구 실행 ③ 벡터 레이어 contour_377083, 보간에 z좌표값 이용 선택 후 버튼 ④ 벡터 레이어 contour_377083, 보간에 z좌표값 이용 선택 후 버튼 ⑤ 공간범위에 .. 버튼 눌러 [레이어서 계산] – [StudyArea] 선택 ⑥ 산출 래스터 크기의 픽셀 크기 10(단위는 m) 설정 ⑦ 보간 산출물 DEM10.tif 설정 후 실행 등고선 레이어의 도형 Z값으로 DEM을 만들어 보자 27
  • 28.
    https://www.osgeo.kr 등고선으로 DEM 만들기– 두번째 방법 ① [공간 처리] – [툴박스] 를 실행하여 [공간 처리 툴박스] 활성화 ② [보간] - [TIN 보간] 도구 실행 ③ 벡터 레이어 contour_377083, 보간 속성값 z_first 선택 후 버튼 ④ 벡터 레이어 contour_377083, 보간 속성값 z_first 선택 후 버튼 ⑤ 공간범위에 .. 버튼 눌러 [레이어서 계산] – [StudyArea] 선택 ⑥ 산출 래스터 크기의 픽셀 크기 10(단위는 m) 설정 ⑦ 보간 산출물 DEM10.tif 설정 후 실행 등고선 레이어의 필드 고도값으로 DEM을 만들어 보자 28
  • 29.
    https://www.osgeo.kr 등고선으로 DEM 만들기 생성한DEM의 정보와 스타일을 설정해 보자 29
  • 30.
    DEM을 이용한 지형분석 Creative Commons License CC-BY-NC
  • 31.
    https://www.osgeo.kr 지형 분석(Surface Analysis) 지형높이값을 가진 래스터 (DEM) 자료에서 인접한 셀과의 관계를 이용하여 경사도, 향, 음영 기복, 가시권 등을 분석하는 기법 31 https://rgis.unm.edu/dem_analysis/
  • 32.
    https://www.osgeo.kr 지형분석에 필요한 기반데이터 불러오기 ① QGIS의 탐색기 또는 레이어 불러오기 기능을 이용하여 파일을 추가 ② 각 레이어의 스타일을 변경 분석대상 지역 Shapefile(StudyArea.shp, 경기도 양평군 청암면)과 DEM(DEM10.tif) 파일 준비 32
  • 33.
    https://www.osgeo.kr 경사도(Slope) 분석 ① [래스터]- [분석] - [경사...] 또는 [공간 처리 툴박스] - [GDAL] - [래스터 분석] - [경사] 실행 ② 입력 레이어는 DEM10, 경계 계산 체크 후 실행 경사도란 지형의 기울어진 각도, 단위는 도(degrees) 또는 퍼센트(percent rise) 33 https://pro.arcgis.com/en/pro-app/latest/tool-reference/spatial-analyst/how-slope-works.htm
  • 34.
    https://www.osgeo.kr 경사 방향(Aspect, 사면향)분석 ① [래스터] - [분석] - [경사 방향...] 또는 [공간 처리 툴박스] - [GDAL] - [래스터 분석] - [경사 방향] 실행 ② 입력 레이어는 DEM10, 경계 계산 체크 후 실행 경사면의 방향을 표현하는 0에서 360까지의 값으로 이 값은 북(0°)에서 시작해 시계방향 34
  • 35.
    https://www.osgeo.kr 음영기복도(Hillshade) 생성 ① [래스터]- [분석] - [음영기복도...] 또는 [공간 처리 툴박스] - [GDAL] - [래스터 분석] - [음영기복도] 실행 ② 입력 레이어는 DEM10, 경계 계산, 결합 음영 체크 후 실행 태양의 위치에 따라 레이어의 음영을 계산하며, 태양의 수평 각도(방위각, azimuth)와 수직 각 도(태양 고도) 를 설정 35 https://docs.qgis.org/3.16/ko/docs/user_manual/processing_algs/qgis/rasterterrainanalysis.html
  • 36.
    https://www.osgeo.kr DEM과 음영기복도 중첩시각화 ① DEM 및 Hillshade 레이어를 드래그하여 순서 조정 ② DEM10 레이어를 더블 클릭하여 레이어 속성 창 불러오기 ③ [투명도] 탭에서 50% 설정, [심볼] 탭의 색상 렌더링의 혼합모드를 중첩으로 설정 후 적용 DEM과 음영기복도를 중첩하여 시각화하기 36
  • 37.
    https://www.osgeo.kr Qgis2threejs 를 이용한3차원 시각화 ① [플러그인] - [플러그인 설치 및 관리…] 메뉴 실행 후 플러그인 설치 3차원 시각화를 지원하는 Qgis2threejs 플러그인 설치 37
  • 38.
    https://www.osgeo.kr Qgis2threejs 를 이용한3차원 시각화 ① [웹] – [Qgis2threejs] – [Qgis2threejs Exporter] 실행 ② DEM10 레이어를 켜고, 기타 옵션 설정 변경하여 시각화 최적화 38
  • 39.
    지형분석 결과를 이용한 래스터분석하기 Creative Commons License CC-BY-NC
  • 40.
    https://www.osgeo.kr 구역 통계(Zonal Statistics)도구 활용 ① [공간 처리 툴박스] - [래스터 분석] – [구역 통계] 실행 ② 입력 레이어는 StudyArea, 래스터 레이어는 Slope(경사도), 산출 열 접두어는 s_ 입력 ③ 계산할 통계에서 아래 그림처럼 개수, 합, 평균, 최소값, 최대값 등 선택 후 확인 버튼 클릭 ④ 실행 버튼을 누른 후 추가된 레이어의 속성 테이블 확인 질문: 청운면의 평균 경사도와 평균 표고를 구해보자 40
  • 41.
    https://www.osgeo.kr 래스터 계산기 활용 ①[래스터] - [래스터 계산기…] 실행 ② 산출 레이어 저장 버튼을 눌러 MySite.tif로 저장(확장자 입력 필요) ③ 래스터 계산기 표현식 입력 ④ 확인 버튼을 눌러 분석 실행 질문: 경사도가 5도(˚) 이상 15도(˚) 이하이면서 남향(112.5 ~ 247.5)인 지역을 찾아보자 41 ( "Slope@1" >= 5 AND "Slope@1" <= 15 ) AND ( "Aspect@1" >= 112.5 AND "Aspect@1" <= 247.5) 112.5˚ 247.5˚
  • 42.
    https://www.osgeo.kr 래스터 계산기 활용 ①MySite 레이어 더블클릭 후 심볼 탭으로 이동 ② 렌더링 유형을 팔레트/고유 값 선택 후 분류 버튼 눌러 심볼 추가 ③ 0값 심볼 선택 후 (-) 버튼 눌러 제거 후 1값의 심볼을 더블 클릭하여 설정 ④ 결과 확인 질문: 경사도가 5도(˚) 이상 15도(˚) 이하이면서 남향(112.5 ~ 247.5)인 지역을 찾아보자 42
  • 43.
    https://www.osgeo.kr 분석결과 잘라내기 ① [래스터]- [추출] - [마스크 레이어로 래스터 자르기...] 또는 [공간 처리 툴박스] - [GDAL] - [래스터 추출] - [마스크 레이어로 래스터 자르기] 실행 ② 입력 레이어는 MySite, 마스크 레이어는 StudyArea, 입력 래스터의 해상도 유지 체크 후 실행 래스터 계산기로 분석한 영역을 청운면 행정경계로 잘라내 보자 43
  • 44.
    QGIS 팁 Creative CommonsLicense CC-BY-NC
  • 45.
    https://www.osgeo.kr 공간인덱스와 피라미드 생성 대용량벡터 레이어의 렌더링 성능을 향상하려면 공간 인덱스를 생성하자 45
  • 46.
    https://www.osgeo.kr 공간인덱스와 피라미드 생성 대용량래스터 레이어의 렌더링 성능을 향상하려면 피라미드를 생성하자 46  피라미드를 생성해도 분석도구에서는 원본 데이터를 사용합니다. 피라미드 이미지 출처: https://en.wikipedia.org/wiki/Pyramid_(image_processing)
  • 47.
    https://www.osgeo.kr 벡터 레이어의 한글문제 레이어 속성에서 데이터 원본 인코딩 변경: System – CP949 – Windows949 – EUC-KR – UTF-8 47  Shapefile의 경우 cpg 파일을 사용하자
  • 48.
    https://www.osgeo.kr 래스터 분석 시고려사항 좌표체계, 공간범위, 셀 크기(해상도)를 통일하자 48  좌표체계 통일  좌표체계를 통일하면 연산 과정에서 불필요한 [좌표체계 변환] 과정을 피할 수 있습니다.  공간 범위와 셀 크기 통일  공간 범위와 셀 크기를 통일하면 연산 과정에서 불필요한 리샘플링을 하지 않습니다.  NoData 이해  NoData는 래스터 연산(분석 포함)에서 제외되는 데이터입니다.  따라서, 연구지역을 대상으로 분석할 경우 언제 NoData를 적용할 지 판단해 야 합니다.
  • 49.
    https://www.osgeo.kr 래스터 NoData 및NoData 적용 래스터의 NoData는 래스터 연산(분석 포함)에서 제외되는 데이터입니다. 49
  • 50.
    https://www.osgeo.kr 내보내기의 다양한 옵션 내보내기는포맷 변환, 좌표계 변환, 필드 선택, 선택한 객체만 내보내기, 도형 유형 변경, 내보 낼 범위 설정 등 다양한 옵션이 있음 50
  • 51.
    감사합니다. 경기도 안양시 동안구벌말로 126, 2307호 (관양동, 평촌오비즈타워) Tel. 031-450-3411~3 Fax. 031-450-3414 E-mail. mango@mangosystem.com