본문 바로가기

Qgis

(Qgis)Qgis로 경사분석1 - 평균경사, 경사별 면적 구하기

Qgis에서 DEM자료를 활용해 경사분석 하는법을 알아보겠다.

 

 

1. '국토지리 정보원'에서 DEM자료를 다운받고 그중 'img'파일을 Qgis에서 아래 빨간박스쳐져있는

    부분으로 드래그 한다.

 

 

2. 불러온 레스터파일의 좌표계를 정의한다. 

    - 불러온 레스터파일에 마우스를 갖다대고 우클릭을 한다. 

    - 우클릭하면 나오는 창에서 '레이어좌표계' - '레이어좌표계 설정'을 클릭한다.

이미지 위치를 확인하기 위해 '카카오 위성사진'을 올렸다.

 

    - '레이어 좌표계 설정'을 클릭하면 나오는 창에서 '5186'을 검색한다.

       (국토지리정보원에서 다운받은 DEM 자료는 'EPSG:5186'이다)

    - 2번 빨간박스친 칸을 클릭하고 '확인'을 누른다.

 

 

3.  '레스터'데이터를 구역계로 자른다.

    - 구역계를 불러오고, 메뉴창의 '레스터' - '추출' - '마스크 레이어로 레스터 자르기'를 클릭한다.

 

    - 뜨는 창에서 

        입력 레이어 : 해당 DEM자료를 선택
        마스 크레이어 : 자를 구역계를 선택

       선택후 '실행'을 클릭한다.   

 

    - 실행을 클릭후 저장하는 창이뜬다. 

       포맷은 ' Geopackage' 혹은 'Esri shape'로 설정한다.

       파일이름 칸에 '....'을 클릭하고 이름을 입력후 확인을 누른다.

       그후 좌표계를 '5186'으로 설정하고 클릭을 누른다.

     

     아래와 같이 잘려진 레스터 데이터가 생성되었다.

 

 

4. '경사(Slope)'툴 실행하기

     - 1번 빨간박스를 우클릭하고 '공간처리툴박스 패널'을 클릭한다.

 

     - 검색창에 'Slope'를 검색하고 '경사'를 클릭한다.

 

     - '경사'를 클릭하면 뜨는창에서 이전 과정에서 잘라낸 DEM레이어를 선택한다.

        (나의경우 '잘라낸 산출물(마스크)이다)

 

5. '경사'를 실행한 파일을 벡터자료로 변환

    ( 레스터 자료로는 평균경사, 경사분포를 알수 없기에  레스터 자료를 벡터로 변환해야 한다. )

   

    - 메뉴바의 '레스터' - '변환' - '폴리곤화(레스터를벡터로)'를 클릭한다.

 

    

    -  '폴리곤화(레스터를벡터로)'를 누르면 뜨는창에서 

       '입력레이어' 에서는 경사분석을 돌리고 나온 레스터레이어를 넣고

       '생성할필드이름' 에서는 각셀별 경사값이 입력될 속성필드의 이름을 입력한다(아무이름이나 해도된다.)

나의경우 경사값 필드이름은 DN으로 했다.

 

 

    -  위 과정을 실시하면 아래와 같은 벡터자료가 나온다. 

 

 

6. 생성한 벡터자료의 속성값으로 평균, 경사분포를 구한다.

*혼동 주의

    ( 아래의 과정은 이전에 다룬 표고분석에서 하는 방법과 완전히 같기에 표고분석글을 그대로 가져오겠다.

레이어가 다르나 하는방법은 완전히 똑같기에 아래와 같은 방법으로 값을 구할수 있다.)

 

   

    - 변환한 벡터레이어의 속성테이블에 들어가서 아래 사진에 네모박스친 '편집모드 전환'탭을

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

 

 

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

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

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

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

      '확인'을 클릭한다.

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

 

 

7. CSV 파일로 내보낸후 엑셀로 값을 구한다.

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

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

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

 

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

표고분석사진을 가져왔다. 이전 경사분석에서 벡터화한 출력물을 내보내면 된다.

 

 

    - 아래와 같은 화면이 뜨면

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

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

      이 사진의 경우 '표고분석'이지만 '경사분석'으로 내보내면된다.

 

 

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

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

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

 

 

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

 

 

- 엑셀에서 함수를 입력하여 평균경사와 경사별 면적을 구한다.

  평균경사는 구하기 쉬우니 넘어가고 , 경사별 면적의 경우

  우리는 경사분석할때, O도~O도 이렇게 경사단위별 면적을 구하기에

  'SUMIFS' 함수를 사용한다.

  'SUMIFS' 함수로 OO도 이상 OO도 미만을 표현하기 위해선 아래와 같은 식을 쓰면 된다.

 

= Sumifs(면적 열, 경사값 열,">="&조건1, 경사값 열,"<"&조건2)

  만약 5도이상 10도의 경사면적을 구하고 싶다면 조건1에 5를, 조건2에 10을 적으면 된다.

 

 

  아래는 표고분석에서 실시한 예이다. 

  아래의 경우 C:C가 면적값이 있는 셀이며, B:B가 표고값이 있는 칸이다. 

  100초과 200이하의 범위의 값을 구했으며, 100초과는 ">"&100 으로, 200이하는 "<="&200으로

  표현한다.