래스터 붙이기 및 자르기 (QGIS3)

이 예제에서는 QGIS에서 다루는 자르기와 부속세팅과 같은 기본적인 기능에 대해서 알아봅니다.

작업 개요

SRTM 형태로 제공하는 Sri Lanka의 고도 데이터를 내려받은 후, 각각의 데이터를 ‘merge’,합치고,’clip’, 자르기를 통해 국가행정경계 모자이크를 만드는 과정을 배울 것입니다.

이 예제에서 필요한 다른 기술

  • 고도데이터를 시각화하는 “Hillshade renderer”의 사용

데이터 획득

Land Processes Distribyted Active Archive Center(LP DAAC)는 NASA Shuttle Radar Topography Mission (SRTM) Global 1 arc second dataset as elevation tiles 데이터를 제공합니다.

예제파일은 Derek Watkins의 30-Meter SRTM Tile Downloader <https://dwtkns.com/srtm30m/>`_에서 내려받을 수 있습니다. Sri Lanka의 SRTM 파일을 내려받으세요. 내려받을 시 `Earth Data account 가 필요합니다.

../../_images/data120.png

We will also need the Admin 0 - Countries shapefile from Natural Earth.

아래 링크에서 이번예제에 사용되는 샘플파일을 쉽게 내려받을 수 있습니다:

N05E080.SRTMGL1.hgt.zip

N06E079.SRTMGL1.hgt.zip

N06E080.SRTMGL1.hgt.zip

N06E081.SRTMGL1.hgt.zip

N07E079.SRTMGL1.hgt.zip

N07E080.SRTMGL1.hgt.zip

N07E081.SRTMGL1.hgt.zip

N08E079.SRTMGL1.hgt.zip

N08E080.SRTMGL1.hgt.zip

N08E081.SRTMGL1.hgt.zip

N09E080.SRTMGL1.hgt.zip

ne_10m_admin_0_countries.zip

출처: [SRTM] , [NATURALEARTH]

과정

  1. QGIS를 열고, Browser panel에 내려받은 파일을 불러옵니다. 압축되어있는 .hgt 개별파일들을 엽니다. ‘Ctrl’를 누른 상태로 모든 파일을 선택하여 ‘canvas’로 드래그하여 불러옵니다.

../../_images/1148.png
  1. 11개의 개별 레이어가 Layers 패널에 들어가고, ‘canvas’창에 보여집니다. 이제 우리는 개별 조각들을 하나의 모자이크로 합병할 것입니다. 메뉴선택창에서 ‘공간처리’ –> 툴박스를 클릭합니다.

../../_images/2126.png
  1. 공간처리툴박스 검색창에 ‘merge’를 입력한 후 검색결과 중 ‘GDAL —> 레스터 기타 –> 병합’ 을 찾은 후 더블클릭합니다.

../../_images/364.png
  1. ‘Merge’창에서 ‘…’버튼을 클릭합니다. 11개의 레이어를 모두 선택하기 위해 ‘select all’ 버튼을 누른 후 확인버튼을 클릭합니다.

../../_images/435.png
  1. As mentioned in the dataset layer details, the input data type is 16-bit signed integer. To maintain data integrity, we should keep the same data type for the merged layer. Select Int16 as the Output data type. Also the default output data format is GeoTiff. GeoTiff files can get very large if not compressed. Choose High Compression as the Profile. Click Run.

../../_images/531.png
  1. Once the processing finishes, the a new layer Merged will be added to the Layers panel. In case the layer is not at the top of the stack, select it and drag it to the top of the Layers panel.

../../_images/630.png
  1. You will see that the Merged layer contains the merged elevation data from the individual input tiles. The default visualization only shows the pixel values in the range from 0-255. But our data contains pixels with values -14 to 2371, resulting in a low contrast rendering. Let’s change it a better visualization. Click the Open the layer Styling panel button in the Layers panel.

../../_images/730.png
  1. ‘레이어 스타일 작업’창에서 ‘랜더 유형’을 클릭해주시고 목록 중 제일 아래에 위치한 “음영기복도”를 선택해주세요. 이 랜더링 유형은 고도 데이터를 효과적으로 표현하는 데 최적화되어있습니다.

../../_images/829.png
  1. 작업영역을 자르기는 레스터 작업시 보통 유용하게 사용됩니다. 이번 예제에서, 우리가 병합한 결과물을 스리랑카 경계에 맞춰 자를 것입니다. 내려받은 ne_10m_admin_0_countries.zip file을 열어주세요. 이 파일을 드래그에서 프로젝트 캔버스로 옮겨주세요.

../../_images/930.png
  1. Select the newly added ne_10m_admin_0_countries layers in the Layers panel. Click the Select Features by area or single click button on the Attributes Toolbar. Once selected, click the polygon for Sri Lanka to select it.

../../_images/1037.png
  1. ‘공간처리툴박스’에서 ‘Clip’을 검색하셔서 GDAL –> Raster extraction –> ‘마스크레이어로 래스터 자르기’를 선택해주세요. 더블클릭하셔서 실행해주세요.

../../_images/1149.png
  1. In the Clip Raster by Mask Layer dialog, set Merged as the Input Layer. Select ne_10m_admin_0_countries as the Mask layer, and check the Selected features only checkbox. Enter 0.0000 as the Assign a specified nodata value to output bands. As before, choose High compression as the Profile. Click Run.

../../_images/1239.png
  1. A new layer Clipped (mask) will be added to the Layers panel. At this point, it may be hard to see the output because we have too many overlapping layers visible. Click the Manage Map Themes button in the Layers panel and choose Hide All Layers.

../../_images/1337.png
  1. Turn on only the latest Clipped (mask) layer and style it with the Hilshade renderer as done before.

../../_images/1434.png
  1. 우리가 원하는 영역으로 병합되고 편집된 스리랑카지역의 고도 데이터 레이어가 준비되었습니다.

../../_images/1530.png

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