나의 기록
[QGIS 활용] 표고 분석 본문
QGIS&CAD

[QGIS 활용] 표고 분석

민민자 2022. 7. 28.
728x90

Qgis 활용한 표고 분석하기


다운로드 받은 수치지도를 활용해 표고와 경사도를 출력하는 방법을 하겠음.

 

1) 캐드 활용. 수치지도에서 등고선과 구역계 분리하기.

표고 경사를 출력하기 위해 다운로드 받은 dxf 파일에서 등고선 레이어만 분리를 해야함.

다양한 방법이 있지만, 그중에서 캐드를 활용해서 레이어를 분리를 하겠음.

먼저 지난 포스팅에서 다운로드 받은 수치지형도 파일을 실행하고,

표고와 경사도를 출력할 구역의 해치를 지정. (편의상 폴리라인으로 임의로 그리겠음.)

캐드에서 layiso명령어(선택한 명령어만 켜줌)를 통해

등고선 ( F0017111, F0017114) 레이어와 미리 설정한 구역의 해치만(선없이) 켠 후

복사(Ctrl-C) 후 원래좌표로 붙여넣기를 통해 새 dxf 파일을 만들어줌

각각 레이어만 켤 시 아래와 같은 형태여야 함.

구역은 해치만 가져와야함. 

(다른이름으로 저장하기가 아니고, 새파일 생성후 원래좌표로 붙여넣기를 해야함)

(여기서 중요한건 Ctrl-A를 하면 절대 안됨, 꼭 박스선택으로 선택해서 복사해야 켜져있는 레이어만 선택이 됨)


아래와 같이 등고선과 구역(경계선 해치파일만)을 같이 저장을 해줌.

Qgis에서는 한 파일을 불러와도 라인과 폴리곤을 별도의 레이어로 읽음.



Qgis에서 Tin보간 분석을 할때 영역 지정으로 잘라줄 수 있으므로 등고선을 잘라주지 않아도 됌.



2) Qgis 활용. 분리된 등고선+구역(해치) dxf 파일 shp로 변환하기

 

I. 기본작업


Qgis를 실행하여, 등고선과 구역(해치)가 들어 있는 dxf 파일을 불러와줌.

아래와 같이 뜨면 전체 선택 후 레이어 추가 해주면 됌.


각각 폴리곤과 라인의 형태로 불러와졌음.

레이어 탭에서 확인 가능하며, 이름 옆 ? 표시 확인.

?표시는 좌표계가 설정이 안되어있어서 뜸.

프로젝트 좌표계와 레이어 좌표계를 각각 설정해줌.

여기서 좌표계는

수치지도를 다운로드 후 따로 좌표변환을 하지 않았기에,

GRS80 이며, 경기도 안성시 월정리는 중부원점이므로

EPSG : 5186으로 설정하면 됨.

※ 수치지도 좌표계를 GRS80 에서 Bessel1841로 변경 시 EPSG : 5174 로 설정하면 됌.

 



여기서 좌표계는

위에서와 마찬가지로 수치지도를 다운로드 후 따로 좌표변환을 하지 않았기에,

GRS80 이며, 경기도 안성시 월정리는 중부원점이므로

EPSG : 5186으로 설정하면 됨.

※ 수치지도 좌표계를 GRS80 에서 Bessel1841로 변경 시 EPSG : 5174 로 설정하면 됌.

저장 위치, 인코딩 등을 추가로 설정 하고, 확인을 눌러 저장함.


헷갈릴수 있으니 entities 가 붙은 기존의 dxf 파일들은

레이어에서 제거해주는게 좋음.

 

Ⅱ. 공간 처리 툴박스 탭 생성 하기.

Qgis 를 사용하다 보면 메뉴에 대부분이 있으나, 하나 하나 찾는데 어려움이 있기 때문에

공간 처리 툴박스를 활용해 모든 것을 검색해서 사용 할 수 있음.

여러모로 활용도가 높아 지금 미리 추가를 하겠음.



상단 메뉴바 우측 끝쪽의 공간 처리(c)의 툴박스 클릭 하면

우측으로 공간 처리 툴박스가 생김.

 


3) TIN보간 생성

Ⅰ. 래스터 형식의 보간 출력물 생성


다시 공간 처리 툴박스에

  1. 'tin' 검색
  2. 'Tin 보간' 선택
  3. 백터레이어 : 등고선.shp 레이어 선택
  4. 보간속성값 : 속성 선택 (1개만 있음)
  5. 보간에 z좌표값 이용 체크
  6. + 버튼으로 벡터레이어 추가
  7. 유형 : 포인트 (구조선 으로 해도 무관함)
  8. 보간방법 : 선형
  9. 범위 : 우측 ㆍㆍㆍ 클릭 - 캔버스에 그리기 - 지도위에 적당한 크기로 박스
  10. 출력 래스터 크기 : 픽셀 크기를 10으로 바꿈 (환경영향평가서 작성 시 10 이므로 10 선택했음)
  11. 실행

결과물은 보간 출력물로 아래처럼 생성됌.


Ⅱ. 래스터 형식의 보간 출력물 벡터 데이터로 변환

이제 다시 공간 처리 툴박스에

  1. '폴리곤화' 검색
  2. '폴리곤화(래스터를 벡터로)' 선택 (=메뉴 탭 - 래스터 - 변환 - 폴리곤화(래스터를 벡터로))
  3. 입력레이어 : 보간 출력물
  4. 생성할 필드의 이름 : 이름 지정
  5. 실행

다음과 같은 벡터 형태의 출력물이 생성됨.


4) 표고 분석하기

Ⅰ. 데이터 편집 : 구역계로 자르기

이제 생성된 '벡터화한 출력물'을 위에서 만든 '구역' 폴리곤 만큼 잘라야함.

공간 처리 툴박스에

  1. '자르기' 검색
  2. 자르기 선택 (메뉴 탭 - 벡터 - 공간 처리 도구 - 자르기)
  3. 입력 레이어 : 벡터화한 출력물
  4. 중첩 레이어 : 폴리곤 (폴리곤화 한 구역)
  5. 실행

※자르기 할 땐 입력레이어는 바탕, 중첩레이어는 자를 객체 라고 생각하면 됌

벡터화한 출력물(녹색)을 구역으로 자르면 구역 모양(보라색) 만큼 잘라진 벡터 레이어(출력물 or 산출물)가 생성됨.

 

Ⅱ. 데이터 편집 : 표고 분석하기

자른 출력물을 활용해 표고를 뽑아내려함.

  1. 레이어 탭에서 '산출물' 더블클릭 또는 우클릭-속성
  2. 속성 탭 왼쪽 메뉴에서 심볼 선택
  3. 분류 방법을 '병합한 객체' 선택
  4. 하위 렌더러 : '단계 구분'
  5. 값 : 표고 필드 - DN (보간 출력물을 벡터화 출력물 변환할 때 입력한 필드 이름)
  6. 색상 램프 : 적당한 색 선택
  7. 모드 : 등간격
  8. 분류 : 10단위인지 5단위인지 따라 계산해서 입력
  9. 값의 각 칸 더블클릭하여 범위 지정
  10. 값입력
  11. 확인 (끝)


다음과 같은 출력물이 나옴.

 

5) 데이터 내보내기

Ⅰ. 데이터 산출하기 : 속성테이블 활용

등고선의 각 구역의 면적을 구하기 위해서 속성테이블을 활용해야함.

레이어 탭에서

  1. 산출물 마우스 우클릭 속성테이블 선택or 선택 후 F6
  2. 속성테이블 메뉴바에서 연필모양 선택(편집모드 전환)
  3. 주판모양 선택 (필드 계산기)
  4. 산출 필드 이름 : 면적
  5. 산출 필드 유형 : 십진수 - 소수자리 까지 표현 위함
  6. 정밀도 : 2 - 소수점 자릿수
  7. 표현식 : $area
  8. 확인

산출 값은 다음과 같이 나옴

 

Ⅱ. 엑셀로 데이터 내보내기

이걸 평균내고 하는 여러 방법이 있겠으나,

이것을 엑셀로 내보내 활용할 계획임.

엑셀로 내보내는 방법은

레이어탭에서

  1. 산출물 우클릭 - 내보내기(Export) - 객체를 다른이름으로 저장하기
  2. 포맷 : 쉼표로 구분된 값(csv)
  3. 파일이름 : 위치랑 이름 지정
  4. 좌표계 필요없음
  5. 인코딩 EUC-KR 또는 UTF-8 - 다른걸로 하면 글씨가 깨짐.


저장을 하면 이러한 엑셀 형식의 파일이 생성됨.

근데 .csv 형식의 파일이기 때문에 읽기전용으로 켜야하며,

다른 이름으로 저장하기를 통해 Excel 통합문서(.xls) 형식으로 저장해서

데이터를 편집하면 됨.


이후는 엑셀 함수 활용이므로 패스.


끝.

 

경사분석, 내보내기는 다음에 다루겠음.

728x90
Comments