수치지형도로 서울시 수치표고모형(DEM) 생성하기
다시 '국가공간정보포털 오픈마켓'에 들어가 '수치지형도'를 검색합니다.
수치지형도나 공간정보 데이터를 얻는 경로는 많지만, '국가공간정보포털 오픈마켓'에 여러 정부부처에서 제공하는 거의 공간정보 데이터들이 모여있어 웬만하면 이곳을 활용하는 것이 편리합니다. (회원가입 필요)
http://data.nsdi.go.kr/dataset
이 중에 SHP 파일이 포함된 수치지형도v2.0(1:5000) 데이터를 사용합니다.
전국 데이터가 포함된 자료입니다. 서울을 검색해서 서울 모든(혹은 필요한 지역의) 자료를 다운로드하여 줍니다. 필요한 자료를 찾기 위해 제일 앞에 있는 "별표1수치지도 지형지물 표준코드.xls" 파일도 함께 받아 줍니다.
압축을 풀어보면 많은 데이터들이 있는데 이 중에 등고선 데이터를 골라야 합니다. "별표1수치지도 지형지물 표준코드.xls" 파일을 열어봅니다. 엑셀 파일에서 '등고선'을 검색하면 등고선의 코드가 나옵니다.
압축을 푼 폴더에서 F001000을 검색해 모든 .shp 파일을 찾습니다.
찾은 모든 F0010000.shp 파일을 QGIS에 추가합니다. (드래그 & 드롭, 혹은 레이어 - 레이어 추가 - 벡터 레이어 추가)
레이어를 우클릭해 속성 테이블을 열어보면 등고선 높이가 속성에 들어가 있는 것을 확인할 수 있습니다. 또 지도상에 위치가 맞지만 다른 좌표계를 사용하고 있는 것을 확인할 수 있습니다. 자료마다 기준이 되는 좌표계가 다르므로 계속 확인합니다. 등고선을 병합하면서 좌표계를 맞출 수 있습니다.
등고선은 벡터레이어이므로 벡터 - 데이터 관리 도구 - 벡터 레이어 병합, 혹은 툴박스에서 검색해서 벡터 레이어 병합을 실행해 줍니다. 입력 레이어에 등고선 레이어들을, 대상 좌표계는 프로젝트 좌표계(WGS84. EPSG3857)로 설정한 후 실행해 줍니다.
'TIN 보간' 기능으로 DEM을 만들 수 있습니다. 툴박스에서 TIN보간을 검색해 실행합니다. 보간할 레이어를 설정하고 보간 속성값에 등고수치를 선택합니다. +버튼을 눌러 입력레이어를 추가해 줍니다. 범위는 해당 레이어로 설정합니다. 산출 래스터 크기의 픽셀 크기가 생성되는 DEM의 해상도를 결정합니다. 1:5000 수치지형도의 등고선 간격은 5m이므로 1~10 사이 적정한 값을 설정해 줍니다. TIF 파일로 저장 설정을 하고 실행을 누르면 보간이 실행됩니다. 서울 전체의 범위가 넓어 꽤 오랜 시간이 걸린 후 DEM이 생성됩니다.
같은 고도의 등고선끼리 보간하기 때문에 범위 밖의 부분에 왜곡되는 부분이 생깁니다. 그대로 사용해도 문제는 없지만, 필요한 부분만 잘라내 보겠습니다. 레이어를 마스크로 사용해 필요한 부분을 추출해 보겠습니다.
마스크 레이어로 래스터 레이어 자르기
탐색기에서 Vworld WFS의 '광역시도' 레이어를 추가해 줍니다. 상단 툴바의 '객체 선택' 툴 버튼을 누르고 서울시 영역을 선택한 후에 레이어 우클릭-Export-선택한 객체를 다른 이름으로 저장을 실행합니다. 따로 설정은 필요없으며 서울시 경계.shp 파일로 저장하겠습니다.(좌표계 확인)
상단 메뉴의 래스터-추출-마스크 레이어로 래스터 자르기(혹은 툴박스 검색)를 실행합니다. 입력레이어와 마스크 레이어를 선택하고 '잘라낸 산출물'에 경로와 파일 이름을 지정합니다.
실행하면 경계에 맞게 잘라진 서울시 DEM이 완성됩니다.
Unity나 언리얼 엔진을 사용한다면 DEM 이미지만으로 엔진에서 바로 지형을 생성할 수 있습니다. 개발자의 도움이 필요하겠지만, 3D 파일로 내보내는 과정이 없어서 프로젝트에 따라 효과적일 수 있습니다.
완성된 DEM으로 3D 지도 뷰를 켜면 90m 해상도 DEM 결과물보다 훨씬 매끄러운 지형이 생성되는 것을 알 수 있습니다.
필요한 영역 선택하기
직사각형, 원형 처럼 도형 모양의 DEM을 잘라내고 싶으면 이전 글 'QGIS로 공간 정보 데이터 편집하기' 를 참고하여 도형을 그린 후 잘라내면 됩니다. 다음은 시군구 단위 영역이 필요할 때 추출하는 방법입니다.
일부 시군구 지역만 사용하고 싶다면, 탐색기에서 Vworld WFS의 '시군구'레이어를 추가해줍니다. 레이어의 속성 테이블 열기를 보면 지역마다 시군구 코드가 정리되어 있습니다. 객체 선택 툴로 선택해도 되고 속성 테이블을 이용해 선택할 수도 있습니다.
'표현식을 이용해서 객체 선택'으로 지역을 선택해도 되고, 간단하게 지역을 선택하려면 속성테이블 탭에 '서식을 이용해서 객체 선택'을 클릭합니다. 'full_nm' 속성에 '중구'를 치거나 'sig_cd' 속성에 중구의 시군구 코드인 11140을 입력한 후 '객체 선택'을 누르면, 중구 객체가 선택됩니다.
시군구 코드표(서울시)
:시군구 코드표를 참고하여 필요한 지역만 선택할 수 있습니다.
11 | 서울시 | 11110 | 종로구
11 | 서울시 | 11140 | 중구
11 | 서울시 | 11170 | 용산구
11 | 서울시 | 11200 | 성동구
11 | 서울시 | 11215 | 광진구
11 | 서울시 | 11230 | 동대문구
11 | 서울시 | 11260 | 중랑구
11 | 서울시 | 11290 | 성북구
11 | 서울시 | 11305 | 강북구
11 | 서울시 | 11320 | 도봉구
11 | 서울시 | 11350 | 노원구
11 | 서울시 | 11380 | 은평구
11 | 서울시 | 11410 | 서대문구
11 | 서울시 | 11440 | 마포구
11 | 서울시 | 11470 | 양천구
11 | 서울시 | 11500 | 강서구
11 | 서울시 | 11530 | 구로구
11 | 서울시 | 11545 | 금천구
11 | 서울시 | 11560 | 영등포구
11 | 서울시 | 11590 | 동작구
11 | 서울시 | 11620 | 관악구
11 | 서울시 | 11650 | 서초구
11 | 서울시 | 11680 | 강남구
11 | 서울시 | 11710 | 송파구
11 | 서울시 | 11740 | 강동구
지형 3D 파일로 내보내기
건물을 올리기 앞서 지형만 사용하고 싶은 경우, 3D 신 내보내기 버튼을 누르면 현재 3D 모델을 OBJ 파일로 내보낼 수 있습니다. '텍스처 내보내기'를 체크하면 현재 보이는 씬의 텍스처가 함께 내보내집니다. 목적에 맞게 레이어를 추가해서 텍스처를 내보낼 수 있습니다. 지형 해상도를 너무 높게 설정하면 폴리곤 개수가 많아져 3D 파일의 크기가 커지므로 필요에 맞게 설정하는 것이 좋습니다. 지형 텍스처 해상도는 4096으로 한계가 있어 너무 넓은 지역을 내보내는 경우 해상도가 떨어져 보일 수 있습니다.
'QGIS로 3D 지도 만들기' 카테고리의 다른 글
QGIS로 건물 3D 제작하기 (0) | 2023.01.03 |
---|---|
수치표고모형(DEM)으로 3D지형 만들기 1 (0) | 2022.12.27 |
QGIS로 공간 정보 데이터 편집하기 (0) | 2022.12.27 |
QGIS 데이터 세팅하기 (0) | 2022.12.26 |
QGIS 데이터 셋 (0) | 2022.12.26 |