공간 조회 실행

공간조회는 QGIS 분석의 많은 유형에서 핵심적인 내용입니다. QGIS에서 이 기능은 Spatial Query 플러그인을 사용하여 작업을 수행합니다.

과업 개요

강을 나타내는 선형 레이어와 도시를 나타내는 점 레이어의 2개 데이터셋을 작업을 합니다. 이 작업은 강으로부터 10km이내 분포하는 도시를 찾는 공간 조회를 하는 것입니다.

기타 스킬

  • QGIS에서 .zip 압출파일을 바로 엽니다.

  • 벡터 데이터에 적절한 투영법을 선택하고 재 투영합니다.

  • 버퍼를 생성합니다.

  • SQL같은 표현식을 이용하여 객체를 선택합니다.

  • Shapefile을 KML파일로 전환합니다.

  • Google Earth를 이용하여 결과를 검증합니다.

데이터 획득

Natural Earth에서 ne_10m_rivers_lake_centerlines``와 ``10m_populated_places_simple 데이터셋을 사용합니다.

Download Rivers and Lake Centerlines

`Populated Places <http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/ 10m/cultural/ne_10m_populated_places_simple.zip>`_를 다운로드 합니다.

데이터 출처: [NATURALEARTH]

과정

  1. 일단 데이터를 다운로드하면 QGIS를 엽니다. 메뉴 –> 메리어 –> 벡터 레이어 추가 :menuselection:`Layer –> Add Vector Layer`로 갑니다.

../_images/1103.png
  1. 탐색 :guilabel:`Browse`를 크릭하고 다운로드한 압축파일이 포함된 폴더를 찾습니다.

../_images/248.png
  1. 쉬프트 :kbd:`Shift`키를 누른 채 두개의 압축파일을 선택하기 위해 클릭합니다. 열기 :guilabel:`Open`를 클릭합니다.

../_images/329.png
  1. 압축파일로부터 레이어를 선택하라는 창이 나타납니다. ``ne_10m_rivers_lake_centerlines.shp``를 선택하고 :guilabel:`OK`를 클릭합니다.

../_images/421.png
  1. 다중 파일을 선택했으므로 다음 파일을 선택하기위해 과정을 반복합니다. ``10m_populated_places_simple.shp``를 선택하고 :guilabel:`OK`를 클릭합니다.

../_images/522.png
  1. QGIS에 두 개의 파일이 불러들여지는 것을 보게됩니다.

../_images/621.png
  1. 점과 선레이어 주변에 버퍼가 만들어 질 것입니다. QGIS에서 ‘버퍼’ 지오프로세싱 툴은 버퍼의 거리를 계산하기 위해 ‘레이어 유닛’을 사용합니다. 두 레이어는 degrees`단위를 가진 `Geographic Coordinate Reference System (CRS)`입니다. 이것은 `metres 혹은 `kilometres`를 사용하여 분석을 하고자 할 때에는 적절치 않습니다. 분석을 하기 위해서는 레이러를 `Projected Coordinate Reference System (CRS)`로 반드시 재투영해야 합니다. ``10m_populated_places_simple layer``를 우측클릭하고 새 이름으로 저장 :guilabel:`Save As`을 클릭합니다.

../_images/720.png
  1. 새 이름으로 벡터 레이어 저장하기 Save vector layer as... 다이알로그 박스에서 새임으로 저장 Save as 옆에 있는 탐색 Browse`을 클릭합니다. 출력파일 이름을 ``populated_places_reprojected.shp``로 입력합니다. 다음으로, 좌표계 :guilabel:`CRS 옆에 있는 탐색 Browse 버튼을 클릭합니다.

../_images/819.png
  1. 이제 목적에 맞는 적절한 CRS를 선택해야 합니다. 버퍼를 만들기 위해서는 Azimuthal Equidistant 투영이 투영중앙부의 반경거리가 정확해야 하므로 가장 적절할 것입니다. 예제에서는 데이터셋이 전 지구적이므로 세계 투영을 선택할 것입니다. 좌표계 선택 Coordinate Reference System Selector 다이알로그에서 world az..`라고 좌표계를 찾기위한 입력을 시작하면 몇가지 결과들이 나타납니다. `World_Azimuthal_Equidistant 를 선택하고 :guilabel:`OK`를 클릭합니다.

주석

The World_Azimuthal_Equidistant projection spans 90 degrees from the origin. Here the origin being 0 degrees longitude, the only data contained within +/- 90 degrees longitude will be converted.

../_images/917.png
  1. 새 이름으로 벡터레이어 저장하기 Save vector layer as ... 다아일로그로 되돌아가서 저장된 파일을 지도에 추가 Add saved file to map 옆에 있는 박스를 체크하고 `OK`를 클릭합니다.

../_images/1018.png
  1. ``ne_10m_rivers_lake_centerlines``레이어 대해 재투영과정을 반복하고, ``rivers_lake_reprojected.shp``로 새로운 레이어를 저장합니다.

../_images/1121.png
  1. 이제 레이어 판넬 Layers Panel`에 4개의 레이어가 생깁니다. 원래의 레이어 옆에 있는 박스에서 체크해제하고 오로지 재투영된 레이어만 나타냅니다. 재투영된 레이어는 여전히 `Geographic CRS`로 보여지는데 이는 세팅때문입니다. 이것을 꺼보도록 하겠습니다. 프로젝트 속성 :guilabel:`Project Properties 단추를 클릭합니다. 이 세팅은 메뉴 프로젝트 –> 프로젝트 속성 :menuselection:`Project –> Project Properties`에서도 접근할 수 있습니다.

../_images/1220.png
  1. 프로젝트 속성 Project Properties 다이알로그의 좌표계 CRS`탭에서 ‘실시간’ 좌표계 변환 활성화 :guilabel:`Enable on-the-fly CRS transformation 옆에 있는 박스를 체크해제 합니다. :guilabel:`OK`를 클릭합니다.

../_images/1317.png
  1. QGIS 메인 창으로 되돌아 와서 재투영된 아무 레이어나 우측클릭하고 레이어 영역으로 확대 :guilabel:`Zoom to Layer Extent`를 선택합니다.

../_images/1416.png
  1. 이제 레이어의 CRS에서 데이터를 보게 됩니다. 이제 두 데이터셋에 대한 버퍼를 만들어 보겠습니다. 메뉴 벡터 –> 공간연산도구 –> 버퍼 :menuselection:`Vector –> Geoprocessing Tools –> Buffer`를 클릭합니다.

../_images/1515.png
  1. 버퍼 :guilabel:`Buffer`도구에서 ``populated_places_reprojected``레이어를 입력 레이어로 선택합니다. 버퍼 거리를 `10000`으로 입력합니다. 만들고자 하는 버퍼의 거리는 10km을 명심하고 CRS 단위가 미터이므로 10,000을 입력할 필요가 있습니다. 출력파일명으로 ``populated_places_buffer.shp``를 입력합니다. :guilabel:`OK`를 클릭합니다.

../_images/1614.png
  1. 일단 버퍼 작업이 끝나면 새롭게 만들어진 레이어를 TOC에 추가하기 위해 :guilabel:`Yes`를 클릭합니다.

../_images/1713.png
  1. ``rivers_lake_reprojected``레이어에 대해서도 같은 버퍼작업을 반복하고 출력 파일명으로 ``rivers_lake_buffer.shp``를 만듭니다.

../_images/1813.png
  1. ``rivers_lake_buffer``는 강과 호수 객체 둘 다를 포함합니다. 이 예제에서는 오로지 강 객체만 요구되므로 조회를 통해 강 객체만 선택합니다. ``rivers_lake_buffer``레이어를 우측클릭하고 속성 테이블 열기 :guilabel:`Open Attribute Table`를 선택합니다.

../_images/1911.png
  1. featurecla 속성이 각 객체를 선택하는데 사용할 수 있는 정보를 포함하고 있습니다. 표현식을 이용해 객체 선택 Select features using an expression 버튼을 클릭합니다.

../_images/208.png
  1. 표현식 “featurecla” = “River” 를 입력하고 선택 :guilabel:`Select`을 클릭한 다음 QGIS로 ㅗ디돌아 가기 위해 닫기 :guilabel:`Close`를 클릭합니다.

../_images/2114.png
  1. 이제 공간조회를 수행할 준비가 되었습니다. 이 기능을 사용하기 위해 Spatial Query plugin 을 활성화할 필요가 있습니다. 보다 자세한 사항은 :doc:`using_plugins`를 보십시오. 일단 메뉴 벡터 –> 공간검색 –> 공간검색 :menuselection:`Vector –> Spatial Query –> Spatial Query`으로 갑니다.

../_images/2213.png
  1. 조회를 하기 위해서 버퍼분석이 완료된 강의 선과 교차되는 버퍼 지역으로부터 객체를 선택합니다. 선택된 지오메트리 selected geometries 옆의 박스가 체크되어 있는지 확인합니다. 이것은 조회를 확실하게 수행하기 위한 것으로 전에 선택된 강 객체만 사용합니다. 적용 :guilabel:`Apply`을 클릭합니다.

../_images/2310.png
  1. 일단 조회가 완료되면 선택된 객체 :guilabel:`Selected features`라는 이름의 새로운 섹션이 나타날 것입니다. 선택된객체로 레이어 만들기 :guilabel:`Create layer with selected`버튼을 클릭합니다. 새로운 레이어가 레이어판넬 `Layers Panel`에 추가될 것입니다. 닫기 :guilabel:`Close`를 클릭하십시오.

../_images/249.png
  1. 아무 곳이나 확대를 하고 결과를 비교하십시오. 새로운 레이어는 단지 강 버퍼와 교차되는 객체만 포함하고 있음을 알게될 것입니다.

../_images/256.png
  1. 분석에 문제는 없는지 확인하기 위해 결과를 항상 검증해야 합니다. 결과를 검증하는 한 가지 방법은 이 레이어를 KML파일로 내보내기를 해서 구슬어스에 올려보는 것입니다. 분석결과로 나온 지역이 실제로 강으로부터 10km이내인지 아닌지 검토할 수 있습니다. 레이어를 우측클릭하고 새이름으로 저장 :guilabel:`Save As...`을 선택합니다.

../_images/266.png
  1. 새 이름으로 벡터 레이어 저장하기 :guilabel:`Save vector layer as...`에서 좌표계로 `WGS84`를 선택합니다. 왜냐하면 KML포맷은 좌표계에 있는 좌표가 필요하기 때문입니다. ``cities_near_river.kml``라고 KML파일명을 입력합니다.

../_images/276.png
  1. 구슬어스를 열고 이 버퍼가 표시하는 도시가 강과 실제로 인접한지를 검증합니다.

../_images/284.png
comments powered by Disqus

This work is licensed under a Creative Commons Attribution 4.0 International License