최근린 분석(QGIS3)

GIS는 피처 간의 공간 관계를 분석하는 데 매우 유용합니다. 그러한 분석 중 하나는 주어진 기능에 가장 가까운 기능을 찾는 것입니다. QGIS에서이 분석을 수행하는 방법에는 여러 가지가 있습니다. 이 자습서에서는 ** 가장 가까운 허브까지의 거리 ** 및 ** 거리 매트릭스 ** 도구를 탐색하여 가장 가까운 이웃 분석을 수행합니다.

작업 개요

이미 알려져 있는 주요 지진발생 위치가 주어지면 지진이 발생한 곳에서 가장 가깝게 인구가 밀집한 지역을 찾습니다.

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

  • Use the Geometry Generator renderer to dynamically create lines from a multipoint layer.

데이터 획득

우리는 NOAA의 국가 지구 물리학 데이터 센터의`지진 지진 데이터베이스 <http://www.ngdc.noaa.gov/nndc/struts/form?t=101650&s=1&d=1>`_를 모든 주요 지진을 나타내는 계층으로 사용합니다. `탭으로 구분 된 지진 데이터 <https://www.ngdc.noaa.gov/nndc/struts/results?type_0=Exact&query_0=$ID&t=101650&s=13&d=189&dfn=signif.txt>`_를 다운로드하십시오.

Natural Earth는 훌륭한 인구밀집지역 Populated Places 데이터베이스를 가지고 있습니다. 단순 데이터셋`simple (less columns) dataset <http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places_simple.zip>`_을 다운 받으십시오.

용이하게 하기 위해 두가지 데이터셋을 아래 링크로부터 바로 다운로드할 수 있습니다.

signif.txt

ne_10m_populated_places_simple.zip

데이터 출처: [NGDC] [NATURALEARTH]

과정

  1. : guilabel :Browser 패널에서 다운로드 한``ne_10m_populated_places_simple.zip ‘’파일을 찾아 확장하십시오. ``ne_10m_populated_places_simple.shp ‘’파일을 캔버스로 드래그하십시오.

../../_images/170.png
  1. : guilabel :Layers 패널에 새로운 레이어``ne_10m_populated_places_simple ‘’이로드 된 것을 볼 수 있습니다. 이 레이어에는 채워진 장소를 나타내는 점이 포함됩니다. 이제 지진 레이어를로드하겠습니다. 이 계층은 * TSV (Tab Serepated Values) * 텍스트 파일로 제공됩니다. 이 파일을 불러 오려면 : guilabel :데이터 소스 도구 모음`에서 : guilabel :`데이터 소스 관리자 열기`버튼을 클릭하십시오. : kbd :`Ctrl + L 단축키를 사용할 수도 있습니다.

../../_images/238.png
  1. : guilabel :파일 이름 ‘옆에있는 : guilabel :...`버튼을 클릭하고 다운로드 한``signif.txt’ ‘파일을 찾습니다. 일단로드되면 : guilabel :File Format 및 : guilabel :Geometry Definition 필드가 올바른 값으로 자동 채워 져야합니다. : guilabel :Add 다음에 : guilabel :`Close`를 클릭하십시오.

../../_images/328.png
  1. 두 데이터 세트를 둘러보고 탐색하십시오. 각 노란색 점은 심각한 지진의 위치를 나타내고 각 빨간색 점은 인구가 많은 장소의 위치를 나타냅니다. 우리의 목표는 지진 층의 각 지점에 대해 인구 밀집 지역에서 가장 가까운 지점을 찾는 것입니다.

../../_images/414.png
  1. 분석을 수행하기 전에 입력을 정리해야합니다. ``signif ‘’레이어에는 유효한 지오메트리가없는 많은 레코드가 포함됩니다. 이 레코드는 ** NULL ** 형상으로 가져 왔습니다. 먼저이 레코드를 제거하겠습니다. : menuselection :`Processing-> Toolbox`로 이동하십시오.

../../_images/514.png
  1. : menuselection :`Vector geometry-> null geometry 제거`도구를 검색하고 찾습니다. 시작하려면 두 번 클릭하십시오.

../../_images/614.png
  1. : guilabel :`Input layer`로``signif ‘’를 선택하고 : guilabel :`Run`을 클릭하십시오. 처리가 끝나면 : guilabel :`Close`를 클릭하십시오.

../../_images/713.png
  1. : guilabel :Layers 패널에로드 된``Non null geometry ‘’라는 새로운 레이어가 표시됩니다. 추가 분석에서 원래``signif ‘’레이어 대신이 레이어를 사용합니다. : guilabel :Layers 패널에서``signif ‘’레이어를 선택 취소하여 숨 깁니다. 이제 가장 가까운 이웃 분석을 수행 할 차례입니다. : menuselection :`벡터 분석-> 가장 가까운 허브까지의 거리 (라인-허브) 도구를 찾아서 찾습니다. 시작하려면 두 번 클릭하십시오.

../../_images/813.png

주석

출력으로 포인트 레이어가 필요한 경우 * 가장 가까운 허브까지의 거리 * 도구를 대신 사용하십시오.

  1. : guilabel :`가장 가까운 허브까지의 거리 (Line to Hub)`대화 상자에서 : guilabel :`Source points layer`로``Null null geometry ‘’를 선택하십시오. : guilabel :`Distination hubs layer ‘로``ne_10m_populated_places_simple’ ‘을 선택하십시오. : guilabel :`Hub layer name attribute`로``name ‘’을 선택하십시오. 이 도구는 또한 채워진 장소와 가장 가까운 지진 사이의 직선 거리를 계산합니다. ``Kilometers ‘’를 : guilabel :`Measurement unit`으로 설정하십시오. : guilabel :`Run`을 클릭하십시오. 처리가 끝나면 : guilabel :`Close`를 클릭하십시오.

../../_images/913.png
  1. 메인 QGIS 창으로 돌아가서 : guilabel :Layers 패널에``허브 거리 ‘’라는 새로운 선 레이어가 나타납니다. 이 레이어에는 각 지진 지점을 가장 가까운 인구 밀집 지역에 연결하는 선 피쳐가 있습니다. ``허브 거리 ‘’레이어를 마우스 오른쪽 버튼으로 클릭하고 : guilabel :`속성 테이블 열기`를 선택하십시오.

../../_images/1013.png
  1. 마지막 열로 오른쪽으로 스크롤하면 ** HubName ** 및 ** HubDist **라는 두 가지 새로운 속성이 원래 지진 기능에 추가 된 것을 볼 수 있습니다. 이것은 채워진 장소 레이어에서 가장 가까운 이웃까지의 거리입니다.

../../_images/1116.png
  1. 우리의 분석이 완료되었습니다. 이제 유사한 분석을 수행 할 수있는 다른 도구를 탐색 할 수 있습니다. ** 거리 매트릭스 **는 가장 가까운 점까지의 거리뿐만 아니라 다른 레이어의 모든 점까지의 거리를 계산할 수있는 강력한 도구입니다. 이 방법을 * 가장 가까운 허브까지의 거리 * 도구 대신 사용할 수 있습니다. ``허브 거리 ‘’레이어를 선택 취소하여 숨 깁니다. : menuselection :Vector analysis-> Distance matrix 도구를 검색하고 찾습니다.

../../_images/1214.png
  1. : guilabel :`Distance matrix ‘대화 상자에서``Non null geometry’ ‘를 : guilabel :`Input point laeyer`로,``I_D’ ‘를 : guilabel :`Input unique ID 필드로 설정하십시오. ``ne_10m_populated_places_simple ‘’을 : guilabel :`Target point layer`로,``name ‘’을 : guilabel :`Target unique ID 필드로 설정하십시오. : guilabel :`Output matrix type`으로``Linear (N * k x 3) distance matrix ‘’를 선택하십시오. 여기서 핵심은 : guilabel :`가장 가까운 (k) 대상 포인트 만 사용 ‘매개 변수를``1’ ‘으로 설정하는 것입니다. 이는 출력에서 가장 가까운 이웃 만 제공합니다. 매트릭스 계산을 시작하려면 : guilabel :`Run`을 클릭하십시오. 처리가 끝나면 : guilabel :`Close`를 클릭하십시오.

../../_images/1314.png
  1. 처리가 완료되면``거리 매트릭스 ‘’라는 새 레이어가로드됩니다. 이 도구의 출력은 * MultiPoint * 형상을 포함하는 레이어입니다. 각 기능에는 소스와 대상의 2 가지 포인트가 있습니다. 레이어의 : guilabel :`Attribute Table`을여십시오. 각 지형지 물에는 지진을 가장 가까운 곳에 배치하는 속성이 있습니다. 여기서의 거리는 레이어의 CRS 단위 (도)입니다.

../../_images/1412.png
  1. 이제 레이어를 마우스 오른쪽 버튼으로 클릭하고 : menuselection :`Export-> Save Features As`를 선택하여 원하는 형식으로 결과를 저장할 수 있습니다. 결과를 더 잘 시각화하려면 피쳐의 형상에서 허브 스포크 렌더링을 쉽게 만들 수 있습니다. ``거리 매트릭스 ‘’레이어를 마우스 오른쪽 버튼으로 클릭하고 : guilabel :`Properties`를 선택하십시오.

../../_images/1511.png
  1. : guilabel :Properties 대화 상자에서 : guilabel :Symbology 탭으로 전환하십시오. ``Simple marker ‘’하위 렌더링을 클릭하고 : guilabel :Symbol layer type`으로``Geometry generator ‘’를 선택하십시오. ``LineString / MultiLineString ‘’을 : guilabel :`Geometry type`으로 설정하십시오. : guilabel :`Expression 버튼을 클릭하십시오.

../../_images/1611.png
  1. 여기에서 각 다 지점 소스 지오메트리 내의 2 개 점에서 선 지오메트리를 작성하는 표현식을 입력 할 수 있습니다. 다음 식을 입력하십시오.

make_line(point_n( $geometry, 1), point_n( $geometry, 2))
../../_images/1711.png
  1. : guilabel :Symbology 탭으로 돌아가서 원하는대로 선 스타일을 설정하고 : guilabel :`OK`를 클릭하십시오.

../../_images/1810.png
  1. ``거리 매트릭스 ‘’레이어가 이제 점 대신 선으로 렌더링됩니다. 이 시각화를 위해 새 레이어를 만들 필요는 없습니다. 레이어에는 여전히 MultiPoint 지오메트리가 포함되지만 표현식을 기반으로 선으로 동적으로 렌더링됩니다.

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

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