점 데이터 보간법

경고

This tutorial is now obsolete. A new and updated version is available at Interpolating Point Data (QGIS3)

보간법은 이산된 점들로부터 연속적인 표면을 만들기 위해 일반적으로 사용되는 GIS 기법입니다. 실세계의 많은 현상들은 연속적입니다. 즉, 해발고, 토양, 온도 등. 만약 분석을 하기 위해 이러한 표면을 모델로 만들고자 한다면, 표면 전체를 통해서 측정값을 얻어내는 것은 불가능합니다. 그래서 현장조사시 측정자료는 표면을 따라 다양한 점 데이터를 얻어내고 ‘보간법’이라고 하는 과정에 의해 중간값을 취합니다. QGIS에서는 이미 내장된 ``Interpolation plugin``을 사용해서 보간을 할 수 있습니다.

과업 개요

예제에서는 텍사스 알링턴호수의 깊이값을 현장조사를 통해 확보하고 이러한 측정값으로부터 수직고도지형도와 등고선을 만들 것입니다.

기타 스킬

  • 점 데이타로부터 등고선을 만듭니다.

  • 래스터 레이어로의 데이터값 없는 부분을 처리합니다.

  • 벡터레이어에 라벨을 추가합니다.

데이터 획득

Texas Water Development Board provides the shapefiles for completed lake surveys.

Download the 2007-12 survey shapefiles for Lake Arlington.

For convenience, you can directly download the sample data used in this tutorial from link below.

Shapefiles.zip

데이터 출처: [TWDB]

과정

  1. GIS를 구동시키고 메뉴 레이어 –> 레이어 추가 –> 벡터 레이어 추가 :menuselection:`Layer –> Add Layer –> Add Vector Layer..`로 갑니다.

../_images/1188.png
  1. 다운로드한 ``Shapefiles.zip``파일을 찾고 선택합니다. 열기 :guilabel:`Open`를 클릭합니다.

../_images/2153.png
  1. 추가할 레이어 선택 Select layers to add… 다이알로그에서 쉬프트키 :kbd:`Shift`를 누른 채 ``Arlington_Soundings_2007_stpl83.shp``와 ``Boundary2004_550_stpl83.shp``레이어 를 선택합니다. 확인 :guilabel:`OK`을 클릭합니다.

../_images/396.png
  1. QGIS에서 추가된 2개의 레이어를 보게됩니다. ``Boundary2004_550_stpl83``레이어는 호수의 경계를 나타냅니다. TOC에서 이 레이어의 박스를 해체합니다.

../_images/460.png
  1. 두번째 레이어 ``Arlington_Soundings_2007_stpl83``가 나타날 것입니다. 비록 데이터가 선처럼 생겼으나 이것은 점들이 매우 촘촘하게 연속된 것입니다.

../_images/553.png
  1. 확대 Zoom 아이콘을 클릭하여 화면의 작은 지역을 선택합니다. 확대할 수록 점들이 나타납니다. 각 점은 DGPS 장비로 특정 위치에서 *Depth Sounder*로 기록한 데이터값입니다.

../_images/651.png
  1. 객체 확인 Identify 툴을 선택하여 한 점을 클릭합니다. 피처 속성 Identify Results 판넬에서 점의 속성값을 볼 수 있습니다. 이 경우 ``ELEVATION``속성은 그 위치에서의 호수의 길이값을 포함하고 있습니다. 예제에서 깊이 단면과 고도 등고선을 만드는 것이므로 보간법의 입력값으로 이 값을 사용할 것입니다.

../_images/750.png
  1. 보간 플러그인 ``Interpolation plugin``이 활성화 되어 있는지 확인합니다. 어떻게 플러그인을 활성화 하는가는 :doc:`using_plugins`를 보시기 바랍니다. 일단 활성화되었다면, 메뉴 래스터 –> 보간 –> 보간 :menuselection:`Raster –> Interpolation –> Interpolation`으로 갑니다.

../_images/849.png
  1. 보간 플러그인 Interpolation 다이알로그중, 입력 Input 판넬에서 벡터 레이어 Vector layers`로 ``Arlington_Soundings_2007_stpl83``를 선택합니다. 보간 속성값 :guilabel:`Interpolation attribute`으로 ``ELEVATION``를 선택합니다. 추가 :guilabel:`Add`를 클릭합니다. 셀 크기 X :guilabel:`Cellsize X`와 셀 크기 Y :guilabel:`Cellsize Y`의 값을 ``5``로 변경합니다. 이 값은 출력 그리드의 각 픽셀의 크기입니다. 원 자료가 **Feet-US** 단위로 좌표 투영되었으므로 선택을 기준으로 그리드의 크기는 **5 feet**가 될 것입니다. 출력 파일 :guilabel:`Output file 박스를 클릭하여 ``elevation_tin.tif``라고 출력파일명을 입력합니다. 확인 :guilabel:`OK`을 클릭합니다.

참고

보간의 결과는 선택한 방법과 매개변수에 따라서 매우 달라질 수 있습니다. QGiS 보간법은 *Triagulated Irregular Network (TIN)*와 *Inverse Distance Weighting (IDW)*를 지원합니다. TIN 방법은 대체로 수직고도 데이터를 사용하고 반면 IDW방법은 광물농도, 인구밀도 등과 같은 다른 유형의 데이터의 보간에 사용됩니다. 보다 자세한 사항은 QGiS문서인 Spatial Analysis 를 보시기 바랍니다.

../_images/949.png
  1. QGIS에 새로운 레이어로 ``elevation_tin``가 추가될 것입니다. 레이어를 우측클릭하고 레이어 영역으로 확대 :guilabel:`Zoom to layer`를 선택합니다.

../_images/1056.png
  1. 이제 만들어진 표면 전체를 볼 수 있을 것입니다. 보간은 수집된 데이터의 외곽에 대해서는 정확한 값을 제공하지 않습니다. 호수 경계를 가지고 분석된 표면 결과를 잘라내기 해봅시다. 메뉴 래스터 –> 추출 –> 잘라내기 :menuselection:`Raster –> Extraction –> Clipper`로 갑니다.

../_images/1189.png
  1. 출력파일 :guilabel:`Output file`에 ``elevation_tin_clipped.tif``라고 입력합니다. 클리핑 모드:guilabel:`Cliping mode`로 마스크 레이어 :guilabel:`Mask layer`를 선택합니다. 마스크 레이어로 :guilabel:`Mask layer``로 ``Boundary2004_550_stpl83``를 선택합니다. 확인 :guilabel:`OK`을 클릭합니다.

../_images/1258.png
  1. 새로운 래스터 레이어 ``elevation_tin_clipped``가 QGIS에 추가 됩니다. 이제 이 레이어를 스타일링해서 고도차이를 보일 것입니다. ``elevation_tin``레이어로부터 최소 및 최대 고도값을 알아봅니다. ``elevation_tin_clipped``레이어를 우측클릭하고 속성 :guilabel:`Properties`을 선택합니다.

../_images/1356.png
  1. 스타일 :guilabel:`Style`탭으로 갑니다. 랜더유형 :guilabel:`Render type`으로 단일밴드 의사색채 ``Singleband pseudocolor``를 선택합니다. 새 색상표 작성 :guilabel:`Generate new color map`판넬에서 ``Spectral``을 선택합니다. 고도지도에 맞서는 깊이지도를 만드는 것이므로 뒤집기 :guilabel:`Invert`박스를 체크합니다. 그러면 파란색은 깊은 곳, 빨간색은 얕은 곳으로 할당됩니다. 분류 :guilabel:`Classify`를 클릭합니다.

../_images/1452.png
  1. 투명도 Tranparency 탭으로 전환합니다. 최종 출력에서 검은색 픽셀을 제거하고자 합니다. Additional no data value`에 ``0` 을 입력합니다. 확인 :guilabel:`OK`을 클릭합니다.

../_images/1548.png
  1. 이제 개별 깊이 데이터로 만든 호수의 깊이 지형도를 만들었습니다. 이제 등고선을 만들어 봅시다. 메뉴 래스터 –> 추출 –> 등고선 :menuselection:`Raster –> Extraction –> Contours`으로 갑니다.

../_images/1645.png
  1. 등고선 Contour 다이알로그에서 등고선 출력파일 Output file for contour lines`로 ``contours``를 입력합니다. 5ft간격의등고선을 만들 것이므로 등고선 간격 :guilabel:`Interval between contour lines`에 ``5.00``를 입력합니다. 속성 이름 :guilabel:`Attribute name 박스에 체크합니다. 확인 :guilabel:`OK`을 클릭합니다.

../_images/1742.png
  1. 일단 과정이 종료되면 등고선은 contours 레이어로 불러들여질 것입니다. 레이어를 우측클릭하고 속성 :guilabel:`Properties`을 선택합니다.

../_images/1839.png
  1. 라벨 :guilabel:`Labels`탭으로 갑니다. 이 레이어의 라벨 :guilabel:`Label this layer with`을 체크하고 필드로 ``ELEV``를 선택합니다. 배치 :guilabel:`Placement`는 곡선 ``Curved``을 선택하고 확인 :guilabel:`OK`을 클릭합니다.

../_images/1930.png
  1. 각 등고선에 대략적인 고도값 라벨이 선을 따라 부여될 것입니다.

../_images/2025.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)