QGIS 포인트 좌표(GPS)에 DEM의 해발고도(표고) 정보 넣기

포인트 좌표에 DEM(Digital Elevation Model)의 표고(해발고도) 정보를 넣는 방법이 여러 가지 있는지는 잘 모르겠지만 제가 하는 방법을 한 번 적어 봅니다.

 

1. 좌표 준비

현장에서 기록한 GPS의 데이터를 그대로 사용한다면 이미 표고 정보가 들어가 있긴 하지만, GPS 기록과 함께 DEM의 표고 정보도 같이 비교해 보고 싶다던가, 혹은 가지고 있는 좌표에는 고도 정보가 누락되어 있어서 해당 정보를 추가해야 하는 상황 등이 있기도 합니다. 이런 비슷한 상황을 떠올리며 임의의 좌표 4개에 DEM의 표고를 넣는 작업을 해 보았습니다.

four points
임의 좌표 4개

 

2. 수치표고모델(DEM) 준비

국가공간정보포털에서 해당 지역의 수치표고모델(DEM) 파일을 받습니다. 예전에는 수치지형도를 이용해 직접 DEM을 만들어 사용했었었는데 요즘에는 그냥 DEM 파일을 받아 사용하면 되니 편리하네요. 하지만 편리한만큼 단점이 있었으니, 그것은 픽셀이 90m라서 꽤 러프합니다. 만약 10m 정도 높은 해상도가 필요한 경우에는 결국 1:5000 수치지형도를 통해 DEM을 만들어야합니다. 지금은 DEM을 만드는 포스팅을 하는 게 아니니 그냥 러프해도 받아서 사용해 보았습니다.

파일에는 여러 형식의 파일이 들어있을 수 있는데 확장자가 img인 파일을 사용합니다. 저는 태안군 img 파일만 필요하니 해당 파일만 압축을 풀었습니다.

nsdi
국가공간정보포털

img files
img 파일 사용

 

3. QGIS에서 DEM 파일 불러오기

레이어 > 레이어 추가 > 래스터 레이어 추가

add layer
래스터 레이어 추가

import the DEM file (img file)
받아 놓은 DEM(.img) 파일 선택

imported DEM
DEM이 추가된 모습

 

4. DEM을 래스터에서 벡터로 변환하기

좌표와 DEM을 중첩시키려면 벡터 공간 처리 도구를 사용해야 되는데, 좌표는 벡터이지만 DEM은 래스터여서 그냥은 진행할 수 없습니다. 따라서 래스터인 DEM을 벡터로 변환합니다.

래스터 > 변환 > 폴리곤화(래스터를 벡터로)

raster to vector
폴리곤화(래스터를 벡터로)

input DEM file. field name is elevation
입력에 DEM 파일을 선택하고 필드 이름은 elevation으로 지어줌

became vector
벡터로 변한 DEM

래스터였던 DEM이 벡터로 변환되어 속성 테이블로도 해당 정보를 볼 수 있는 상태가 되었습니다. 좌표 A3에 해당하는 (벡터화된) DEM의 정보를 보니 18이 들어 있네요. 이제 각각의 벡터 레이어를 중첩시켜 좌표에 고도 정보를 넣어 주면 됩니다.

attribute data
속성 정보

 

5. 중첩시키기

벡터 > 공간 처리 도구 > 교차 영역

cross region
교차영역

parameters
입력엔 좌표, 중첩엔 벡터화한 산출물(DEM), 유지할 중첩 필드는 elevation

keep the elevation
유지할 중첩 필드에서 elevation

 

6. 완성

교차영역 산출물의 속성 테이블을 열어보면 좌표에 표고(elevation) 정보가 들어가 있습니다. 참고로 앞선 과정 중, '유지할 중첩 필드'에서 고도(elevation)를 선택하지 않으면 기본 옵션으로서 해당 레이어의 모든 필드 정보가 추가되게 됩니다. 상황에 맞게 설정하면 됩니다.

completion (coordinate with elevation)
좌표에 표고 정보가 들어감

카테고리의 다른 글

  1. QField 앱에 shp 파일 넣고 열어 보기 (아이폰)
  2. QGIS CSV 파일 저장시 한글이 깨질 때
  3. QGIS shp파일 속성 테이블 엑셀로 저장하기
  4. QGIS 등고선에 Z값 설정하기
  5. QGIS 라인을 따라 일정 간격(거리)으로 포인트 찍기

4 thoughts on “QGIS 포인트 좌표(GPS)에 DEM의 해발고도(표고) 정보 넣기”

  1. 안녕하세요 올려주신 자료 덕분에 많은 도움을 받고 있습니다! 궁금한점이 한가지 있는데 고도값이 정수로 나오는 현상이 발생하고 있습니다. 고도값을 바꿔보기 위하여 십진수로 필드계산기를 활용해 보았는데도 .000 으로 정수형태로만 데이터가 산출되는데 위에 대한 해결 방버은 없을까요?

    응답
    • 안녕하세요. 도움을 받고 계시다니 감사합니다. ‘고도값이 정수로 나오는 현상이 발생한다’는 부분에 대해 질문 주셨는데, 일단 어떤 과정에서 해당 문제가 발생했는지 좀 더 구체적으로 말씀해 주시면 해결 방법을 찾는 데 도움이 될 것 같습니다.

      일단 문맥으로 추정해 보면, ‘래스터에서 벡터로 변환했을 때’ 정수만 남는다는 의미로 받아들여 봅니다.

      이 경우 해결 방법은 ‘메뉴 > 래스터 > 변환 > 폴리곤화(래스터를 벡터로)’ 이 아니라, 공간 처리 툴박스에서 ‘벡터 생성 > 래스터 픽셀을 폴리곤으로 변환’을 선택하여 변환하신다면 소수점 단위의 결과물을 얻을 수 있습니다.

      https://lazytrees.com/3347/ 포스트를 참조해 보세요.

      응답

댓글 남기기