Complexe werkstromen automatiseren met behulp van Grafische modellen bouwen (QGIS3)

Werkstromen in GIS omvatten gewoonlijk vele stappen - waarin elke stap een tussenliggend resultaat genereert die wordt gebruikt in de volgende stap. Als u de invoergegevens wijzigt of een parameter aan wilt passen, zult u opnieuw handmatig het gehele proces moeten uitvoeren. Gelukkig heeft QGIS Grafische modellen bouwen ingebouwd dat u kan helpen uw werkstroom te definiëren en die uit te voeren met één enkele druk op de knop. U kunt deze werkstromen ook als batch uitvoeren over een groot aantal invoeren.

Overzicht van de taak

We zullen een puntenlaag gebruiken van marietieme incidenten met piraten en een model voor verwerking maken om een dichtheidskaart te produceren door ze samen te voegen over een globaal hexagonaal raster.

Andere vaardigheden die u zult leren

  • Gebruiken van een globale equal area-projectie en instellen van het CRS voor het project.

  • Toepassen van een symbologie Gradueel op een polygoonlaag.

De gegevens ophalen

National Geospatial-Intelligence Agency’s Maritime Safety Information portal verschaft een shapefile van alle incidenten van maritieme piraterij in de vorm van Anti-shipping Activity Messages. Download de Arc Shapefile versie van de database.

Natural Earth heeft verscheidene globale vectorlagen. Download de 10m Physical Vectors - Land die polygonen voor landen bevat.

Voor het gemak kunt u direct een kopie downloaden van bovenstaande lagen vanaf de link hieronder:

ASAM_shp.zip

ne_10m_land.zip

Gegevensbron: [NGA_MSI] [NATURALEARTH]

Procedure

  1. Zoek, in het paneel QGIS Browser, de map waar u uw gegevens hebt gedownload. Vergroot het item ne_10m_land.zip en selecteer de laag ne_10m_land.shp. Sleep de laag naar het kaartvenster. Zoek vervolgens het bestand ASAM_shp.zip op. Vergroot het en selecteer de laag asam_data_download/ASAM_events.shp en sleep die naar het kaartvenster.

../../_images/1109.png
  1. De laag ASAM 11 OCT 18.shp heeft geen informatie over de projectie in zich, u zult dus gevraagd worden een CRS te selecteren in Keuze Coördinaten ReferentieSysteem. De punten staan hier in coördinaten van latitude en longitude, dus selecteer het CRS WGS 84 en klik op OK.

../../_images/2104.png
  1. Als de laag eenmaal is geladen kunt u de individuele punten zien die locaties van incidenten van piraterij weergeven. Laten we beginnen met het bouwen van ons model voor Processing om deze lagen te verwerken. Ga naar Processing ‣ Grafische modellen bouwen….

../../_images/350.png
  1. Zoek, in het dialoogvenster Processing - Grafische modellen bouwen…, het paneel Modeleigenschappen op. Voer piraterij hexbin in als de Naam van het model en Projecten als de Groepen. Klik op de knop Opslaan.

../../_images/425.png
  1. Sla het model op als piraterij_hexbin.

../../_images/523.png
  1. Nu kunnen we beginnen met het bouwen van een grafisch model van onze pijplijn voor de verwerking. Het dialoogvenster Processing - Modelontwerper bevat een paneel aan de linkerkant en een hoofdvenster. Zoek, in het paneel aan de linkerkant, het paneel Invoer dat verschillende typen voor gegevenstypen voor invoer vermeld. Scroll naar beneden en selecteer de invoer + Vectorlaag. Sleep het naar het kaartvenster.

../../_images/623.png
  1. Voer Invoer punten in als de Parameternaam en Punt als het Type geometrie. Deze invoer geeft de puntenlaag van piraterij-incidenten weer.

../../_images/722.png
  1. Sleep vervolgens nog een andere invoer + Vectorlaag in het kaartvenster. Voer Basislaag in als de Parameternaam en Polygoon als het Type geometrie. Deze invoer geeft de Natural Earth globale landlaag weer.

../../_images/822.png
  1. We vragen, omdat we een globaal hexagonaal raster genereren, de gebruiker om de grootte van het raster op te geven als invoer, in plaats van het hard te coderen als deel van ons model. Op deze manier kan de gebruiker snel experimenteren met verschillende grootten van het raster zonder op enige manier het model aan te passen. Selecteer een invoer + Getal en sleep het in het kaartvenster. Voer Rastergrootte in als de Parameternaam en klik op OK.

../../_images/922.png
  1. Nu we onze gebruikersinvoer gedefinieerd hebben, zijn we klaar om de stappen voor de verwerking toe te voegen. Alle algoritmen voor verwerking zijn beschikbaar voor u onder de tab Algoritmen. De eerste stap in onze pijplijn zal zijn om de basislaag opnieuw te projecteren naar het Project CRS. Zoek naar het algoritme Laag opnieuw projecteren en sleep het naar het kaartvenster.

Notitie

De noodzakelijkheid van de stap om opnieuw te projecteren zal snel duidelijk worden. Het algoritme voor het genereren van het raster eist van ons om het bereik van het raster te specificeren in de eenheid van het Project CRS. We kunnen deze opnieuw geprojecteerde laag aanbieden om dat bereik te berekenen.

../../_images/1030.png
  1. Selecteer, in het dialoogvenster Laag opnieuw projecteren, Basislaag als de Invoerlaag. Selecteer Project-CRS gebruiken als het Doel-CRS. Klik op OK.

../../_images/1133.png
  1. In het kaartvenster van Processing - Grafische modellen bouwen, zult u een verbinding zien verschijnen tussen de invoer + Basislaag en het algoritme Laag opnieuw projecteren. Deze verbinding geeft de stroomrichting aan van onze pijlijn voor d everwerking. De volgende stap is om een hexagonaal raster te maken. Zoek naar het algoritme Grid maken en sleep het naar het kaartvenster.

../../_images/1231.png
  1. Kies, in het dialoogvenster Grid maken, Hexagoon (polygoon) als het Type raster. Selecteer Extent of 'Opnieuw geprojecteerd' van het algoritme 'Laag opnieuw projecteren' als het Grid-bereik. Klik op de knop 123 onder het label Horizontale afstand en kies Invoer model.

../../_images/1329.png
  1. Selecteer invoer Rastergrootte voor Invoer model gebruiken. Herhaal hetzelfde proces voor Verticale afstand. Klik op OK.

../../_images/1427.png
  1. Op dit punt hebben we een globaal hexagonaal raster. Het raster omvat het volledige breik van de basislaag, inclusief landgebieden en plaatsen waar geen punten zijn. Laten we die rasterpolygonen waar geen invoerpunten zijn er uit filteren. Zoek naar het algoritme Extract by location en sleep het naar het kaartvenster.

../../_images/1524.png
  1. Selecteer voor Objecten uitnemen uit 'Raster' van het algoritme 'Grid maken', Waar de objecten (geometrisch voorvoegsel) als kruisen met en Door objecten te vergelijken van als Invoer punten. Klik op OK.

../../_images/1623.png
  1. Nu hebben we alleen die polygonen van het raster die ook enkele invoerpunten bevatten. We zullen het algoritme Punten in polygonen tellen gebruiken om deze punten samen te voegen. Zoek het op en sleep het naar het kaartvenster.

../../_images/1724.png
  1. Selecteer 'Uitgenomen (locatie)' from algorithm 'Extract by location' als de waarde voor Polygonen. De laag:guilabel:Punten zou Invoer punten moeten zijn. Noem, aan de onderzijde, de uitvoerlaag Telling Samengevoegd. Klik op OK.

../../_images/1821.png
  1. Het model is nu compleet. Klik op de knop Opslaan.

../../_images/1917.png
  1. Schakel over naar het hoofdvenster van QGIS. U kunt u nieuw gemaakte model vinden in de Processing Toolbox onder Modellen ‣ Projecten ‣ piraterij_hexbin. Nu is het tijd om het uit te voeren en het model te testen. Het is beangrijk dat de ratsers wordne gegenereerd met behulp van een equal-area projectie omdat ons doel is om de invoerpunten samen te voegen in hexagonale rasters. Dit zal er voor zorgen, ongeacht de locatie van het raster, exact hetzelfde gebied te bedekken. Ons model vraagt niet expliciet naar een CRS, maar gebruikt altijd het CRS datis ingesteld als het Project CRS. Laten we een globale equal area projectie kiezen als het Project CRS. Ga naar Project ‣ Eigenschappen.

../../_images/2016.png
  1. Schakel, in het dialoggvenster Projecteigenschappen, over naar de tab CRS. We zullen een globale Mollweide projectie gebruiken voor deze oefening, wat een equal area projectie is. Zoek naar Mollweide in het vak Filter en selecteer World_Mollweide EPSG:54009 als het CRS. Klik op OK.

../../_images/2120.png
  1. U zult zien dat de lagen direct opnieuw geprojecteerd worden naar het geselecteerde CRS. Zoek naar het model piraterij_hexbin in de Processing Toolbox en dubbelklik er op.

../../_images/2218.png
  1. Onze Basislaag is de laag ne_10m_land en de laag Invoer punten is ASAM_events. De Rastergrootte dient te zijn gespecificeerd in de eenheden van het geselecteerde CRS. De eenheid voor het CRS World_Mollweide is meters, dus specificeren we 100000 m (100 Kms) als de Rastergrootte. Klik op Uitvoeren om het verwerken van de pijplijn te beginnen. Klik, als het proces eenmaal is voltooid, op Close.

../../_images/2316.png
  1. U zult dien dat een nieuwe laag Samengevoegd is geladen als resultaat van het model. Als u verder gaat verkennen zult u opmerken dat de laag een attribuut bevat, genaamd NUMPOINTS, dat het aantal punten van incidenten met piraten bevat binnen dat object van het raster. Laten we deze laag opmaken zodat die informatie beter wordt weergegeven. Klik met rechts op de laag Samengevoegd en selecteer Eigenschappen.

../../_images/2415.png
  1. Schakel naar de tab Symbologie. Selecteer de symbologie Gradueel en NUMPOINTS als de Kolom. Klik op Wijizgen… naast het label Symbool.

../../_images/2514.png
  1. Selecteer het symbool Standaard vulling en sekecteer het vak Transparante lijn onder Lijnkleur. Dit om de randen van de hexagonen transparant te maken.

../../_images/2614.png
  1. Klik op de keuzelijst naast Kleurverloop en selecteer het kleurverloop Viridis. Klik opnieuw op de keuzelijst en selecteer Kleurverloop omdraaien om de volgorde van de kleuren om te draaien.

../../_images/2714.png
  1. De symbologie Graduaeel zal de waarden in de geselecteerde kolom verdelen in afzonderlijke klassen en een verschillende kleur aan elk van die klassen toewijzen. Selecteer Natuurlijke grenzen (Jenks) als de Modus en klik op Classificeren en klik op OK.

Notitie

bekijk Basis opmaken van vectoren voor een gedetailleerde uitleg van de verschillende modi.

../../_images/2814.png
  1. Schakel, terug in het hoofdvenster van QGIS, de laag ASAM_events uit. U zult een aardige visualisatie van hotspots van piraterij over de gehele wereld zien.

../../_images/2913.png

Nu u de volledige pijplijn voor de gegevens het gecodeerd in het model, is het eenvoudig om uw resultaten te reproduceren. Een model stelt u ook in staat om snel te experimenteren zonder elke keer elke tussenliggende stap opnieuw uit te moeten voeren. Als uw invoer gedurende de tijd wijzigt, bijvoorbeeld een bijgewerkte database van piraterij wordt na een paar maanden uitgegeven, kunt u uw model op die invoer uitvoeren om een soortgelijke visualisatie te genereren zonder elke stap te hoevn onthouden.


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