점 또는 다각형을 이용한 래스터 데이터 표본 추출 작업¶
경고
This tutorial is now obsolete. A new and updated version is available at 점 또는 다각형을 이용한 래스터 데이터 표본 추출 작업(QGIS3)
많은 과학적 그리고 환경적 데이터셋은 그리드 래스터 데이터입니다. 해발고도 데이터 (DEM) 또한 래스터 파일로 배포되고 있습니다. 이러한 래스터 파일에서 표현되는 매개변수는 래스터의 픽셀값으로 부호화 됩니다. 종종 어떤 위치의 픽셀값을 추출하거나 어떤 지역을 모아서 수집할 필요가 있습니다. QGIS에 이런 기능이 ``Point Sampling Tool``와 ``Zonal Statistics plugin``플러그인을 통해 가능합니다.
과업 개요¶
미국내 최대 기온의 래스터 그리드를 가지고 모든 도시지역의 기온을 추출하고 더불어 미국에서 각 군의 평균기온을 추출할 필요가 있습니다.
다른 스킬¶
벡터 레이어를 재투영합니다.
QGIS의 TOC에서 다중 레이어를 선택하고 삭제합니다.
데이터 획득¶
NOAA’s Climate Prediction Center 는 미국내 온도와 강수량과 관련된 `GIS data <http://www.cpc.ncep.noaa.gov/products/GIS/GIS_DATA/>`_를 제공합니다. `latest grid filei for maximum temperatures <ftp://ftp.cpc.ncep.noaa.gov/GIS/GRADS_GIS/GeoTIFF/TEMP/us_tmax/>`_를 다운로드 하십시오. 파일명은 ``us.tmax_nohads_ll_{YYYYMMDD}_float.tif``이 될 것입니다.
미국에서 도시지역을 나타내는 `2013 US Gazetteer <https://www.census.gov/geo/maps-data/data/gazetteer2013.html>`_로부터 CSV파일을 사용할 것입니다. `Urban Areas Gazetteer File <http://www2.census.gov/geo/gazetteer/2013_Gazetteer/2013_Gaz_ua_national.zip>`_를 다운로드하십시오.
군단위의 온도를 모으기 위해서 `2013 TIGER/Line Shapefiles <https://www.census.gov/cgi-bin/geo/shapefiles2013/main>`_를 사용할 것입니다. `Counties (and equivalents) shapefile <http://www2.census.gov/geo/tiger/TIGER2013/COUNTY/tl_2013_us_county.zip>`_를 다운로드 하십시오.
For convenience, you may directly download a copy of the datasets from the links below:
us.tmax_nohads_ll_20140525_float.tif
데이터 출처: [NOAACPC], [USGAZETTEER] [TIGER]
과정¶
메뉴 –> 래스터 데이터 추가 :menuselection:`Layer –> Add Raster Layer`로 가서 다운로드한 ``us.tmax_nohads_ll_{YYYYMMDD}_float.tif``파일을 찾고 열기 :guilabel:`Open`를 클릭합니다.
일단 레이어가 올라오면 객체확인 :guilabel:`Identify`툴을 선택하고 레이어 아무 곳이나 클릭을 합니다. 온도값이 섭씨로 나타나는 것 혹은 그 위치에서 밴드 1을 보게 됩니다.
이제 다운로드한 파일 ``2013_Gaz_ua_national.zip``을 압축해제하고 ``2013_Gaz_ua_national.txt``를 추출합니다. 메뉴 레이어 –> 레이어 추가 –> 구분자로 분리된 텍스트 레이어를 추가 :menuselection:`Layer –> Add Delimited Text Layer`로 갑니다.
구분자로 분리된 텍스트 레이어 파일 추가 Create a Layer from Delimited Text File 다이알로그에서 탐색 Browse 을 클릭하고 ``2013_Gaz_ua_national.txt``을 여십시오. 구분자 정의 Custom delimiters`에서 탭 :guilabel:`Tab 을 선택하십시오. 점 좌표는 위도와 경도입니다. 그래서 X필드로 INTPTLONG, Y필드로 :guilabel:`INTPTLAT`를 선택합니다. 공간 인덱스 사용 :guilabel:`Use spatial index`을 체크하고 확인 :guilabel:`OK`을 클릭합니다.
이제 래스터 레이어에서 온도값을 추출할 준비가 되었습니다. ``Point Sampling Tool``플러그인을 설치하십시오. 플러그인을 어떻게 설치하는지는 플러그인 사용하기 를 보시기 바랍니다.
메뉴 :menuselection:`Plugins –> Analyses –> Point sampling tool`를 엽니다.
Point Sampling Tool 다이알로그에서 Layer containing sampling points`로 ``2013_Gaz_ua_national``를 선택합니다. 입력레이어에서 출력 레이어에포함될 수 있도록 반드시 명확하게 필드를 선택해야 합니다. ``2013_Gaz_ua_national``레이어에서 ``GEOID` 와 ``NAME``를 선택합니다. 한번에 여러개의 래스터 밴드에서 표본 값을 추출할 수 있습니다. 그러나 래스터가 하나의 밴드만 가지므로 ``us.tmax_nohads_ll_{YYYYMMDD}_float: Band 1``를 선택합니다. ``max_temparature_at_urban_locations.shp``로 출력 벡터 레이어 이름을 입력합니다. 표본추출과정을 시작하기 위해 확인 :guilabel:`OK`를 클릭합니다. 과정이 종료되면 닫기 :guilabel:`Close`를 클릭합니다.
QGIS에 새롭게 불러들여진 ``max_temparature_at_urban_locations``레이어가 보일 것입니다. 객체 확인:guilabel:`Identify`을 이용하여 아무 점이나 클릭하여 속성을 봅니다. 그 점의 위치에서 래스터 픽셀값이 담긴 ``us.tmax_no``필드를 볼 것입니다.
분석의 첫번째 부분이 완료되었습니다. 이제 불필요한 레이어를 제거해 봅시다. 쉬프트키 Shift 를 누른 채
max_temparature_at_urban_locations
와2013_Gaz_ua_national
레이어를 선택합니다. 우측 클릭을 하고 QGIS TOC에서 제거하기 위해 삭제 :guilabel:`Remove`를 선택합니다.
메뉴 레이어 –> 벡터 레이어 추가 `OK`을 클릭합니다.
레이어를 선택하고 확인 :guilabel:
QGIS에
tl_2013_us_county``가 추가될 것입니다. 이 레이어는 ``EPSG:4269 NAD83
투영입니다. 이것은 래스터레이어의 투영과 맞지 않습니다. 그래서 이 레이어를EPSG:4326 WGS84
투영으로 재투영할 것입니다.
tl_2013_us_county
레이어를 우측클릭하고 새 이름으로 저장 :guilabel:`Save As..`을 선택합니다.
새 이름으로 벡터 레이어 저장하기 Save Vector layer as.. 다이알로그에서 탐색 Browse`을 클릭하고 출력 파일로 ``counties.shp``를 입력합니다. 좌표계 :guilabel:`CRS 드롭다운 메뉴에서 선택된 좌표계 :guilabel:`Selected CRS`를 선택합니다. 탐색 :guilabel:`Browse`을 클릭하고 CRS로 ``WGS 84``를 선택합니다. 저장된 파일을 지도에 추가 :guilabel:`Add saved file to map`에 체크하고 확인 :guilabel:`OK`을 클릭합니다.
새로운 레이어가 ``counties``라는 이름으로 QGiS에 추가될 것입니다.
구역 통계 플러그인 ``Zonal Statistics Plugins``을 활성화 합니다. 이것은 핵심 플러그인으로 이미 설치가 되어 있습니다. 핵심플러그인을 어떻게 활성화하는 가를 알려면 :doc:`using_plugins`를 보기 바랍니다.
메뉴 래스터 –> 구역 통계 –> 구역 통계 :menuselection:`Raster –> Zonal statistics –> Zonal statistics`로 갑니다.
래스터레이어 :guilabel:`Raster layer`로 ``us.tmax_nohads_ll_{YYYYMMDD}_float``를, 영역을 포함하는 폴리곤 레이어 :guilabel:`Polygon layer containing the zones`로 ``counties``를 선택합니다. 출력 컬럼 접두사 :guilabel:`Output column prefix`로 ``ZS_``를 입력합니다. 확인 :guilabel:`OK`을 클릭합니다.
분석은 데이터셋의 크기에 따라서 시간이 좀 걸릴 수 있습니다.
일단 과정이 종료되면
counties``레이어를 선택합니다. 객체 확인 :guilabel:`Identify`툴을 이용해서 아무 군 폴리곤이나 클릭을 합니다. 세개의 새로운 속성 ``ZS_count
,ZS_mean
그리고 ``ZS_sum``이 추가된 것을 보게 될 것입니다. 이러한 속성들은 래스터 픽셀의 갯수, 래그터 픽셀값의 평균 그리고 래스터 픽셀값의 합계를 각각 포함합니다. 평균온도가 주요 관심사항이므로 ``ZS_mean``필드가 사용할 필드가 될 것입니다.
스타일 Style 탭으로 전환합니다. 단계로 나누어진 Graduated`을 선택하고 컬럼 :guilabel:`Column`으로 ``ZS_mean` 를 선택합니다. 색상표 :guilabel:`Color Ramp`와 모드 :guilabel:`Mode`를 다음과 같이 선택합니다. 클래스를 만들기 위해 분류 :guilabel:`Classify`를 클릭합니다. 확인 :guilabel:`OK`을 클릭합니다. (스타일리에 대한 보다 자세한 내용은 :doc:`basic_vector_styling`를 보십시오.)
래스터 그리드로 부터 추출한 평균 최대 온도를 사용하여 스타일링한 군단위 폴리곤을 보게될 것입니다.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)