프로세싱 모델러를 사용하여 복잡한 작업흐름 자동화하기(QGIS3)

GIS 작업흐름도는 전형적으로 많은 단계를 포함합니다. 각 단계는 중간 결과물을 만들어 내고 이것은 다음 단계에 사용됩니다. 만약 입력 데이터가 바뀌거나 매개변수를 바꾸고 싶다면 전체 처리 과정을 일일히 다시 분석해야 할 필요가 있습니다. 다행이도, QGIS는 시각적 모델러가 기본적으로 포함되어 있어 작업흐름도를 정의할 수 있고 한번에 구동시킬 수 있습니다. 대량의 입력 데이터도 일괄처리로써 작업흐름도를 구동시킬수도 있습니다.

작업 개요

해상 해적행위 사건의 포인트 레이어를 취해서 전세계 육각 그리드에 걸쳐 집계하여 밀도 지도를 제작하는 처리 모델을 만들겠습니다.

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

  • 전지구 동일 면적 투영 및 프로젝트 CRS 설정

  • 폴리곤 레이어에 점진적 심볼로지 적용

데이터 획득

국립지질정보국의 ‘해양안전정보 포털<https://msi.nga.mil/NGAPortal/MSI.portal>`_은 해적 행위 방지 메시지<https://msi.nga.mil/Piracy>`_.에 있는 형태로 모든 해양 해적 행위를 형상화한 파일을 제공합니다. 데이터베이스의 ‘Arc Shape 파일<https://msi.nga.mil/api/publications/download?key=16920958/SFH00000/ASAM_shp.zip&type=download>`_ 버전을 다운로드하십시오.

`자연 지구 <http://naturalearthdata.com>`_에는 여러 글로벌 벡터 레이어가 있습니다. 랜드 폴리곤이 포함 된`10m 물리 벡터-랜드 <https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/physical/ne_10m_land.zip>`__를 다운로드하십시오.

편의상 위의 레이어 사본을 아래에서 직접 다운로드 할 수 있습니다.

ASAM_shp.zip

ne_10m_land.zip

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

과정

  1. QGIS 브라우저 패널에서 다운로드한 데이터를 저장한 디렉터리를 찾으십시오. ``ne_10m_land.zip”을 확장하고 ``ne_10m_land”를 선택하십시오.”shp” 층 레이어를 캔버스로 끌어다 놓으십시오. 그런 다음 “ASAM_shp.zip” 파일을 찾으십시오. 그것을 확장하고 “asam_data_download/ASAM_events.shp”레이어를 선택하고 캔버스로 드래그하십시오..”

../../_images/1142.png
  1. ``ASAM_events.shp ‘’레이어에는 이와 관련된 투영 정보가 없으므로 `Coordinate Reference System Selector`에서 CRS를 선택하라는 메시지가 표시됩니다. 여기에서 점은 위도 및 경도 좌표에 있으므로``WGS 84 ‘’CRS를 선택하고 `OK`를 클릭하십시오.

../../_images/2121.png
  1. 레이어가 로드되면 불법 복제 위치의 사건을 나타내는 개별 지점을 볼 수 있습니다. 이러한 레이어를 처리하기 위해 처리 모델 구축을 시작하겠습니다. `Processing-> Graphical Modeler …`로 이동하십시오.

../../_images/358.png
  1. Processing Modeler 대화 상자에서, 모델 속성 패널을 찾으십시오. :Name`으로``piracy hexbin’’을 입력하고 `Groups``로 ``projects ‘’를 입력하십시오. `Save 버튼을 클릭하십시오.

../../_images/430.png
  1. 모델을``piracy_hexbin ‘’으로 저장하십시오.

../../_images/528.png
  1. Now we can start building a graphical model of our processing pipeline. The Processing modeler dialog contains a left-hand panel and a main canvas. On the left-hand panel, locate the Inputs panel listing various types of input data types. Scroll down and select the + Vector Layer input. Drag it to the canvas.

../../_images/628.png
  1. `Parameter name`으로``Input Points ‘’를 입력하고 `Geometry type`으로``Point ‘’를 입력하십시오. 이 입력은 불법 사건 지점 계층을 나타냅니다.

../../_images/727.png
  1. 다음으로 다른 + Vector Layer 입력을 캔버스로 드래그하십시오. `Parameter name`으로``Base Layer ‘’를 입력하고 `Geometry type`으로``Polygon ‘’을 입력하십시오. 이 입력은 natural earth global land layer을 나타냅니다.

../../_images/827.png
  1. 우리는 글로벌 육각그리드를 생성하고 있기 때문에, 사용자에게 격자 크기를 모델의 일부로 하드 코딩하는 대신 입력으로 제공하도록 요청할 수 있습니다. 이러한 방식으로 사용자는 모델을 전혀 변경하지 않고도 다양한 그리드 크기를 빠르게 실험 할 수 있습니다. + Number 입력을 선택하고 캔버스로 드래그하십시오. `Parameter name`으로``Grid Size ‘’를 입력하고 `OK`를 클릭하십시오.

../../_images/927.png
  1. 이제 사용자 입력이 정의되었으므로 처리 단계를 추가 할 준비가되었습니다. 모든 처리 알고리즘은 Algorithms 탭에서 사용할 수 있습니다. 파이프 라인의 첫 번째 단계는 기본 계층을 Project CRS에 다시 투영하는 것입니다. ``Reproject layer ‘’알고리즘을 검색하여 캔버스로 드래그하십시오.

참고

이 재투영 단계의 필요성은 곧 분명해질 것입니다. 그리드 생성 알고리즘을 사용하려면 Project CRS 단위로 그리드의 범위를 지정해야합니다. 이 재계산 된 레이어를 제공하여이 범위를 계산할 수 있습니다.

../../_images/1035.png
  1. Reproject layer 대화 상자에서 `Input layer`로``Base Layer ‘’를 선택하십시오. `프로젝트 CRS 사용`을 `Target CRS`로 확인하십시오. `OK`를 클릭하십시오.

../../_images/1143.png
  1. Processing Modeler 캔버스에서 + Base Layer 입력과 Reproject layer 알고리즘 사이에 연결이 나타납니다. 이 연결은 처리 파이프 라인의 흐름을 나타냅니다. 다음 단계는 육각형 격자를 만드는 것입니다. ``Create grid ‘’알고리즘을 검색하여 캔버스로 드래그하십시오.

../../_images/1236.png
  1. Generate grid 대화 상자에서 Grid type`으로``Hexagon (polygon)``을 선택하십시오. `Grid extent`로 ‘Reproject Layer’알고리즘에서 ‘Reprojected’범위 ‘를 선택하십시오. `Horizonal spacing 레이블 아래 123 버튼을 클릭하고 `Model input`을 선택하십시오.

../../_images/1334.png
  1. `모델 입력 사용`에 대해``격자 크기 ‘’입력을 선택하십시오. `Vertical Spacing`에 대해 동일한 프로세스를 반복하십시오. `OK`를 클릭하십시오.

../../_images/1432.png
  1. 이 시점에서, 우리는 글로벌 육각형 그리드를가집니다. 그리드는 토지 영역과 점이없는 장소를 포함하여 기본 레이어의 전체 범위에 걸쳐 있습니다. 입력 포인트가없는 그리드 폴리곤을 필터링 해 봅시다. ``위치로 추출’’알고리즘을 검색하여 캔버스로 끕니다.

../../_images/1527.png
  1. For Extract features from, select 'Grid' from algorithm 'Generate Grid', Where the features (geometric predicate) as Intersect and By comparing to the features from as Input points. Click OK.

../../_images/1626.png
  1. 이제 입력 포인트가 포함된 그리드 다각형만 있습니다. 이러한 점을 집계하기 위해 ``다각형의 카운트 점 ‘’알고리즘을 사용합니다. 검색하여 캔버스로 드래그하십시오.

../../_images/1727.png
  1. Polygons`의 값으로 ‘Extract by location’알고리즘에서 ‘Extracted (location)’을 선택하십시오. `Points 레이어는``Input Points ‘’입니다. 맨 아래에서 Count 출력 레이어의 이름을``Aggregated ‘’로 지정하십시오. `OK`를 클릭하십시오.

../../_images/1823.png
  1. 이제 모델이 완성되었습니다. Save 버튼을 클릭하십시오.

../../_images/1919.png
  1. 메인 QGIS 창으로 전환하십시오. 새로 작성된 모델은 `Processing Toolbox`의 `Models-> projects-> piracy_hexbin에 있습니다. 이제 모델을 실행하고 테스트 할 차례입니다. 우리의 목표는 육각형 그리드를 통해 입력 포인트를 집계하는 것이므로 그리드를 등 면적 투영법을 사용하여 생성하는 것이 중요합니다. 이렇게 하면 그리드의 위치에 관계없이 정확히 같은 영역을 덮을 수 있습니다. 이 모델은 명시 적으로 CRS를 요구하지 않지만 ** 프로젝트 CRS **로 설정된 CRS를 사용합니다. 프로젝트 CRS로 글로벌 등가 투영법을 선택합시다. `Project –> 속성`로 이동하십시오.

../../_images/2018.png
  1. 프로젝트 속성 대화 상자에서 CRS 탭으로 전환하십시오. 이 연습에서는 등분 투영법 인 글로벌 ** 몰 바이드 ** 투영법을 사용합니다. `Filter ‘상자에서``Mollweide’ ‘를 검색하고 CRS로``World_Mollweide EPSG : 54009’ ‘를 선택하십시오. `OK`를 클릭하십시오.

../../_images/2122.png
  1. 선택한 CRS에 레이어가 즉석에서 재투영되는 것을 볼 수 있습니다. `Processing Toolbox`에서``piracy_hexbin ‘’모델을 찾아 두 번 클릭하십시오.

../../_images/2219.png
  1. 우리의 Base Layer ‘는``ne_10m_land’ ‘이고 `Input Points 레이어는``ASAM_events’ ‘입니다. 선택한 CRS 단위로 `Grid Size ‘를 지정해야합니다. World_Mollweide CRS 단위는 미터이므로``100000 ‘’m (100 Kms)을 `Grid Size ‘로 지정합니다. 처리 파이프 라인을 시작하려면 `Run`을 클릭하십시오. 프로세스가 완료되면 `Close`를 클릭하십시오.

../../_images/2317.png
  1. 모델 결과로``Aggregated ‘’라는 새 레이어가로드 된 것을 볼 수 있습니다. 탐색 할 때 해당 그리드 기능에 포함 된 불법 복제 사건 수를 포함하는 * NUMPOINTS *라는 특성이 레이어에 포함되어 있음을 알 수 있습니다. 이 레이어의 스타일을 지정하여이 정보를 더 잘 표시하십시오. ``Aggregated ‘’레이어를 마우스 오른쪽 버튼으로 클릭하고 `속성`을 선택하십시오.

../../_images/2416.png
  1. Symbology 탭으로 전환하십시오. Column`으로``Graduated` 된 ‘’기호와``NUMPOINTS ‘’를 선택하십시오. Symbol 레이블 옆의 ``Change..``을 클릭하십시오.

../../_images/2515.png
  1. Simple fill 기호를 선택하고 Stroke color`에서 `Transparent Stroke 버튼을 확인하십시오. 이것은 육각 모서리를 투명하게하기위한 것입니다.

../../_images/2614.png
  1. Color ramp 옆에있는 드롭 다운을 클릭하고``Viridis ‘’램프를 선택하십시오. 드롭 다운을 다시 클릭하고 `색상 반전 반전`을 선택하여 색상 순서를 반대로 바꿉니다.

../../_images/2715.png
  1. 점진적 기호는 선택한 열의 값을 개별 클래스로 나누고 각 클래스에 다른 색상을 지정합니다. `Mode`로``Natural Breaks (Jenks)``를 선택하고 `Classify`를 클릭하고 `OK`를 클릭하십시오.

참고

다른 모드에 대한 자세한 설명은 : doc :`../ basic_vector_styling`을 참조하십시오.

../../_images/2815.png
  1. 메인 QGIS 창으로 돌아가서``ASAM_events ‘’레이어를 끕니다. 전세계의 불법 해적행위 핫스팟을 멋지게 시각화 할 수 있습니다.

../../_images/2914.png

모델에서 전체 데이터 파이프 라인을 인코딩 했으므로 결과를 쉽게 재현 할 수 있습니다. 모델을 사용하면 매번 각 중간 단계를 수동으로 반복하지 않고도 신속하게 실험 할 수 있습니다. 시간이 지남에 따라 입력이 변경되면 몇 개월 후에 업데이트 된 불법 복제 데이터베이스가 릴리스되는 경우 각 입력을 기억할 필요없이 해당 입력에서 모델을 실행하여 유사한 시각화를 생성 할 수 있습니다.


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