본문 바로가기

Qgis

(Qgis)Qgis로 표고분석 1 - 표고분석값 구하기, 표고별 면적 구하기

 

Qgis로 표고분석을 해보겠다.

표고분석을 할때 보통 두가지 방법이 있다.

 

-'국토지리정보원'의 '수치지형도'에서 등고선을 활용하는법

-'국토지리정보원'혹은'국가 공간정보포털'의 DEM자료를 활용하는법

 

전자의 경우 작은 대상지 면적을 빠르게 구하기 쉽다.

후자의 경우 큰 대상지 면적, 예를 들어 시전체, 혹은 하나 이상의 구의 면적을 구할때 편리하다.

이 글에서는 먼저 DEM을 활용하여 큰 대상지(시,군범위) 표고분석 하는법을 알아보겠다.

 

 

----------DEM자료 다운(좌표)---------

 

1.  '국토지리 정보원' 혹은 '국가공간정보포털'에 들어간다.

    -'국토지리정보원'의 경우 1:50,000의 DEM자료를 다운받을수 있고.

 

국토정보플랫폼 국토정보맵 (ngii.go.kr)

 

국토정보플랫폼 국토정보맵

선택 선택

map.ngii.go.kr

     -'국가공간정보포털'의 경우 시군 범위의 자료를 다운받을수 있다.

 

수치표고모델(DEM) - 오픈마켓 (nsdi.go.kr)

 

수치표고모델(DEM) - 오픈마켓

지형의 고도값을 수치로 저장함으로써 지형의 형상을 나타내는 지도

data.nsdi.go.kr

-------------------------------------------

 

 

 

2. 다운받은 파일중 'img'파일을 압축풀고 Qgis로 불러들인다.

-img파일을 압풀풀면 아래 사진과 같이 시군별 'img'파일이 있다.

-'img'파일중 원하는 시군 아래 사진의 빨간색 박스친 칸으로 드래그 하여 불러온다.

 

3. 좌표를 설정한다. 

좌표를 설정해야 나중에 면적이 제대로 구해진다. 

 

-좌표를 'EPSG:5186'으로 설정한다. (좌표설정하는걸 모른다면 이전글 참조)

  (레이어 좌표와 프로젝트좌표 둘다 설정해줘야한다)

 

 

 

4. 원하는 대상지만 추출한다.

-표고를 원하는 구역계를 불러오고 

  메뉴탭의 '레스터'칸 - '추출' - '마스크 레이어로 레스터 자르기'를 클릭힌다.

 

-아래 사진과 같은 창이 뜨는데

  입력레이어 = '잘라낼 DEM' 파일

  마스크레이어 = '자를 polygon'파일(구역계)

  이렇게 생각하고 해당하는 레이어를 선택하고 확인을 누른다.

 

-아래 사진처럼 '잘라낸 출력물(마스크)"라는 레이어가 새로생겼고

 이전에 입력한 구역계 파일과 도 맞는것을 볼수있다.

 

 

5. 자른 DEM파일을 벡터로 변환한다.

표고값과 면적, 표고별 면적을 구하기 위해 DEM자료를 벡터자료로 변환해야 한다.

 

-메뉴탭의 '레스터'칸 - '추출' - '마스크 레이어로 레스터 자르기'를 클릭힌다.

  

 

-클릭하면 아래와 같은 화면이 뜬다.

  '입력레이어'에 대상지 DEM레이어를 선택하고

  '생성할 필드의 이름'은 표고값이 입력될 속성테이블의 이름을 설정하는 칸이다.

   따로 이름을 설정할것 아니면 바로 '실행'을 누른다.

 

 

-실행하면 '벡터화한 출력물' 이라는 레이어가 생성된다.

  여기서 속성테이블에 들어가 보면 표고값이 들어가 있는것을 알수있다.

 

 

6. 면적을 산출한다.

-속성테이블에 들어가서 아래 사진에 네모박스친 '편집모드 전환'탭을 클릭하고

  '필드계산기'탭을 클릭한다.

 

 

-'필드계산기'탭을 클릭하면 아래와 같은 창이 뜬다.

  먼저 새필드 생성칸의 체크박스를 클릭하고

  필드유형을 선택한다. 정수를 선택하는것과 십진수를 선택하는것 둘다 큰차이는 없는것같다. 

  검색창에 'area'를 검색한후 '$area'를선택하고

  '확인'을 클릭한다.

  다하고 나면 'area'필드에 면적이 입력되어 있을것 이다.

 

 

7. CSV 파일로 내보낸후 엑셀로연다.

평균, 최빈값, 최고값,최소값등 Qgis에서도 구해지는게 있지만 구간별면적등을 산정하기 위해 

csv파일로 내보내서 엑셀로 값을 구해야 한다.

csv파일은 속성테이블에 있는 자료를 ','표시로 구분한 메모파일이라고 보면된다.

 

-'벡터화한 출력물'레이어에서 '마우스 우클릭'- '내보내기'-'객체를 다른 이름으로 저장'을 클릭한다

 

 

-아래와 같은 화면이 뜨면

  '포맷'은 '쉼표로 구분된 값[csv]'으로 지정하고

  '파일이름'은 아래 네모박스친 칸을 눌러 저장위치를 지정하고 저장한다. 

 

 

-엑셀을 열고 '파일'탭을 클릭한다. 

  클릭후 우측사진에 네모박스친것 '열기'-'찾아보기'-'표고값'으로 선택후 열면된다.

  이때 파일이름 옆의 칸을 '모든파일'로 설정해줘야 한다.

 

 

-열면 아래와 같은 화면이 나온다. 

 

 

-엑셀에서 함수를 입력하여 표고별 면적을 구한다. 

 함수는 'sumifs'함수를 사용하면 되고,

 아래 함수에서 '범위'표시된 것에 '범위'만 바꿔서 입력하면 된다.