24.5. Grafische modellen bouwen

Grafische modellen bouwen stelt u in staat complexe modellen te maken met behulp van een eenvoudige en gemakkelijk te gebruiken interface. Bij het werken met een GIS staan de meeste bewerkingen voor analyses niet op zichzelf, maar maken deel uit van een reeks bewerkingen. Met Grafische modellen bouwen kan die keten van bewerkingen worden verpakt in één enkel proces, wat het handiger maakt het later als één enkel proces uit te voeren op een andere verzameling invoer. Het maakt niet uit hoeveel stappen en verschillende algoritmes er bij betrokken zijn, een model wordt uitgevoerd als één enkel algoritme, en bespaart tijd en inspanning.

Grafische modellen bouwen kan worden geopend vanuit het menu Processing (Processing ► Grafische modellen bouwen).

24.5.1. De interface Grafische modellen bouwen

../../../_images/modeler_canvas.png

Fig. 24.16 Grafische modellen bouwen

In zijn hoofdgedeelte heeft de modelontwerper een werkvenster waar de structuur van het model en de werkstroom die het weergeeft kunnen worden geconstrueerd.

Aan de bovenzijde van het dialoogvenster geven verschillende menu’s en de werkbalk Navigatie toegang tot een variëteit aan gereedschap[en.

24.5.1.1. Menu Model

Label

Sneltoets

Werkbalk Navigatie

Beschrijving

success Model valideren

Controleert of de in het model gebruikte algoritmes en invoer bestaan. Handig voor het uitgeven van het model.

play Model uitvoeren…

F5

checkbox

Voert het model uit

Invoer model opnieuw sorteren…

Stelt de volgorde in waarin invoer wordt weergegeven aan de gebruiker in het dialoogvenster voor het algoritme.

fileOpen Model openen…

Ctrl+O

checkbox

Opent een bestand .model3 om te bewerken of uit te voeren

fileSave Model opslaan

Ctrl+S

checkbox

Slaat het model op schijf op als een bestand .model3

fileSaveAs Model opslaan als…

Ctrl+Shift+S

checkbox

Slaat het model op schijf op als een nieuw bestand .model3

fileSave Model opslaan in project

checkbox

Bedt het modelbestand in het projectbestand in, wat het beschikbaar maakt bij het delen van het projectbestand.

helpContents Model Help bewerken…

checkbox

Een interface om het model, de algoritmes, de parameters en uitvoer, als ook de auteur en versie te documenteren

Exporteren ►

saveMapAsImage ► Als afbeelding exporteren…

checkbox

Slaat het grafische ontwerp van het model op naar een indeling voor een afbeelding (voor illustratie-doeleinden)

saveAsPDF ► Als PDF exporteren…

Slaat het grafische ontwerp van het model op naar een indeling voor PDF (voor illustratie-doeleinden)

saveAsSVG► Als SVG exporteren…

Slaat het grafische ontwerp van het model op naar een indeling voor SVG (voor illustratie-doeleinden)

fileSave► Als scriptalgoritme exporteren…

checkbox

Maakt een scriptbestand voor Python, inclusief de instructies voor het model

24.5.1.2. Menu Bewerken

Label

Sneltoets

Werkbalk Navigatie

Beschrijving

selectAll Alles selecteren

Ctrl+A

Selecteert alle componenten van het model in de ontwerper

Geselecteerde componenten aan raster snappen

snapt en lijnt de elementen uit aan een raster

redo Opnieuw

Ctrl+Y

checkbox

Draai de laatste geannuleerde actie terug. Bekijk ook het paneel Ongedaan maken/Opnieuw.

undo Ongedaan maken

Ctrl+Z

checkbox

Annuleer de laatste wijziging. Bekijk ook het paneel Ongedaan maken/Opnieuw.

editCut Knippen

Ctrl+X

Knipt een selectie componenten uit het model.

editCopy Kopiëren

Ctrl+C

Kopieert een selectie componenten uit het model.

editPaste Plakken

Ctrl+V

Plakt een geknipte of gekopieerde selectie componenten uit een model naar een ander of in hetzelfde model. De geselecteerde componenten behouden hun originele eigenschappen en opmerkingen.

deleteSelected Geselecteerde componenten verwijderen

Del

Verwijdert een component uit het model.

Groepsvak toevoegen

Voegt een vak toe aan de achtergrond van gerelateerde componenten om ze visueel te groeperen. In het bijzonder nuttig in grote modellen om de werkstroom helder te houden.

24.5.1.3. Menu Beeld

Label

Sneltoets

Werkbalk Navigatie

Beschrijving

Zoom naar ►

Zoomt naar het bereik van het geselecteerde groepsvak

zoomIn Inzoomen

Ctrl++

checkbox

zoomOut Uitzoomen

Ctrl+-

checkbox

zoomActual Zoomen naar 100%

Ctrl+1

checkbox

zoomFullExtent Volledig zoomen

Ctrl+0

checkbox

Geeft alle componenten weer in het huidige venster van de ontwerper

checkbox Opmerkingen weergeven

Geeft opmerkingen weer die zijn geassocieerd met elk algoritme of invoer in Grafische modellen bouwen

unchecked Snappen inschakelen

unchecked Zichtbaarheid paneel aan/uit

Ctrl+Tab

Schakelt de panelen in de ontwerper AAN of UIT

24.5.1.4. Panelen

Het linkergedeelte van het venster is een gedeelte met vijf panelen dat kan worden gebruikt om nieuwe elementen aan het model toe te voegen:

  1. Modeleigenschappen: specificeer de naam (vereist) van het model en de groep waarin het moet worden weergegeven in de Toolbox van Processing

  2. Invoer: alle invoerparameters die uw model zouden kunnen vormen

  3. Algoritmes: de beschikibare algoritmes van Processing

  4. Variabelen: Modellen mogen toegewezen variabelen bevatten die uniek zijn en alleen voor hen beschikbaar zijn. Toegang tot deze variabelen kan worden verkregen door een binnen het model gebruikte expressie. Zij zijn nuttig om algoritmes binnen een model te beheren en meerdere aspecten van het model te beheren door het wijzigen van één enkele variabele. De variabelen kunnen worden bekeken en bewerkt in het paneel Variabelen.

  5. Geschiedenis Ongedaan maken: dit paneel zal alles registreren dat in de Grafische modellen bouwen gebeurt, wat het eenvoudiger maakt dingen te annuleren die u fout hebt gedaan.

24.5.1.5. Over beschikbare algoritmes

Sommige algoritmes, die kunnen worden uitgevoerd vanuit de Toolbox, verschijnen niet in de lijst met beschikbare algoritmes wanneer u en model ontwerpt. Een algoritme moet de correcte semantiek hebben om te worden opgenomen in een model. Als een algoritme niet een dergelijke goed gedefinieerde semantiek heeft (bijvoorbeeld als het aantal uitvoerlagen niet vooraf bekend is), dan is het niet mogelijk om het binnen een model te gebruiken, en zal het niet verschijnen in de lijst met algoritmes die u kunt vinden in het dialoogvenster van Grafische modellen bouwen. Aan de andere kant zijn sommige algoritmes specifiek voor Grafische modellen bouwen. Die algoritmes zijn geplaatst in de groep ‘Gereedschappen Grafische modellen bouwen’.

24.5.2. Een model maken

Het maken van een model omvat twee basisstappen:

  1. Definitie van noodzakelijke invoer. Deze invoer zal worden toegevoegd aan het venster Parameters, zodat de gebruiker zijn waarden kan instellen bij het uitvoeren van het model. Het model zelf is een algoritme, dus het venster Parameters wordt automatisch gegenereerd zoals met alle beschikbare algoritmes in het framework Processing.

  2. Definitie van de werkstroom. Met behulp van de invoergegevens van het model wordt de werkstroom gedefinieerd door het toevoegen van algoritmes en selecteren hoe zij de gedefinieerde invoer gebruiken of hoe zij de uitvoer, gegenereerd door andere algoritmes in het model, gebruiken.

24.5.2.1. Definitie van invoer

De eerste stap is het definiëren van de invoer voor het model. De volgende elementen zijn te vinden in het paneel Invoer aan de linkerkant van het venster Grafische modellen bouwen:

Tabel 24.1 Lijst met typen parameter voor bouwen van modellen

Annotation Layer

Authentication Configuration

Boolean

Color

Connection Name

Coordinate Operation

CRS

Database Schema

Database Table

Datetime

Distance

Duration

DXF Layers

Enum

Expression

Extent

Field Aggregates

Fields Mapper

File/Folder

Geometry

Map Layer

Map Theme

Matrix

Mesh Dataset Groups

Mesh Dataset Time

Mesh Layer

Multiple Input

Number

Point

Point Cloud Layer

Print Layout

Print Layout Item

Range

Raster Band

Raster Layer

Scale

String

TIN Creation Layers

Vector Features

Vector Field

Vector Layer

Vector Tile Writer Layers

Notitie

Met de muis over de invoer gaan zal een helptip weergeven met aanvullende informatie.

Bij dubbelklikken op een element wordt een dialoogvenster weergegeven dat u de karakteristieken laat definiëren. Afhankelijk van de parameter, zal het dialoogvenster tenminste één element bevatten (de beschrijving, wat datgene is dat de gebruiker zal zien bij het uitvoeren van het model). Bijvoorbeeld bij het toevoegen van een numerieke waarde, zoals is te zien in de volgende afbeelding, moet u, in aanvulling op de beschrijving van de parameter, een standaardwaarde en het bereik van geldige waarden instellen.

../../../_images/models_parameters.png

Fig. 24.17 Definiëren parameters model

U kunt uw invoer opgeven als verplicht voor uw model door de optie checkbox Verplicht te selecteren en door het keuzevak unchecked Geavanceerd te selecteren kunt u er voor zorgen dat de invoer binnen het gedeelte Geavanceerd staat. Dit is in het bijzonder nuttig als het model veel parameters heeft en enkele daarvan belangrijk zijn, maar u ze toch wilt kiezen.

Voor elke toegevoegde invoer wordt een nieuw element toegevoegd aan de werkruimte van Grafische modellen bouwen.

../../../_images/models_parameters2.png

Fig. 24.18 Parameters Grafische modellen bouwen

U kunt ook invoer toevoegen door het type invoer te slepen vanuit de lijst en neer te zetten op de positie waar u het wilt plaatsen in het venster van Grafische modellen bouwen. Als u een parameter van een bestaande invoer wilt wijzigen, dubbelklik er dan eenvoudigweg op en hetzelfde dialoogvenster zal verschijnen.

Bij het gebruiken van een model in een ander model, worden de benodigde in- en uitvoer worden weergegeven in het kaartvenster.

24.5.2.2. Definitie van de werkstroom

In het volgende voorbeeld zullen we twee invoeren en twee algoritmes toevoegen. Het doel van het model is om de hoogtewaarden uit een DEM rasterlaag te kopiëren naar een lijnlaag met het algoritme Drape, en dan de totale stijging van de lijnlaag te berekenen met het algoritme Klimmen langs lijn.

Kies, op de tab Invoer, de twee invoeren als Vectorlaag voor de lijn en Rasterlaag voor de DEM. We zijn nu klaar om de algoritmes toe te voegen aan de werkstroom.

Algoritmes kunnen worden gevonden op de tab Algoritmes, nagenoeg op dezelfde wijze gegroepeerd als in de Toolbox van Processing.

../../../_images/models_parameters3.png

Fig. 24.19 Invoer modellen

Dubbelklik op de naam van een algoritme en sleep en zet het neer, net zoals bij invoer, om een algoritme aan een model toe te voegen. Net als voor de invoeren kunt u de beschrijving van het algoritme wijzigen en een opmerking toevoegen. Bij het toevoegen van een algoritme, zal een dialoogvenster voor de uitvoering verschijnen met een soortgelijke inhoud als die in het paneel voor uitvoering dat wordt weergegeven bij het uitvoeren van het algoritme vanuit de Toolbox. De volgende afbeelding geeft de dialoogvensters weer voor ‘Drape (Z-waarde instellen vanuit raster)’ en ‘Klimmen langs lijn’.

../../../_images/models_parameters4.png

Fig. 24.20 Parameters algoritme model

Zoals u kunt zien zijn er echter enkele verschillen. Elke parameter heeft een keuzemenu naast zich die het mogelijk maakt te beheren hoe het zal worden geserveerd tijdens de werkstroom:

  • fieldInteger Waarde: stelt u in staat de parameter in te stellen vanuit een geladen laag in het project van QGIS of naar een laag in een map te bladeren

  • expression Vooraf berekende waarde: met deze optie kunt u de Expressiebouwer openen en uw eigen expressie definiëren om de parameter te vullen. Modelinvoeren als ook enkele andere laagstatistieken zijn beschikbaar als variabelen en worden vermeld boven in het dialoogvenster Zoeken van de Expressiebouwer

  • processingModel Invoer model: kies deze optie als de parameter komt uit een invoer van het model dat u hebt gedefinieerd. Eenmaal aangeklikt zal deze optie alle geschikte invoeren vermelden voor de parameter

  • processingAlgorithm Uitvoer algoritme: is nuttig als de parameter voor de invoer van een algoritme een uitvoer van een ander algoritme is

  • parameters uitvoer hebben de aanvullende optie modelOutput Uitvoer model die de uitvoer van het algoritme beschikbaar maakt in het model. Als een door het algoritme gemaakte laag alleen moet worden gebruikt als invoer voor een ander algoritme, bewerk dat tekstvak dan niet.

    In de volgende afbeelding ziet u de twee parameters voor de invoer gedefinieerd als Invoer model en de tijdelijke uitvoerlaag:

    ../../../_images/models_parameters5.png

    Fig. 24.21 Invoer- en uitvoerparameters algoritme

U zult ook een aanvullende parameter vinden, genaamd Afhankelijkheden die niet beschikbaar is bij het aanroepen van het algoritme in de Toolbox. Deze parameter stelt u in staat de volgorde te definiëren waarin algoritmes moeten worden uitgevoerd, door expliciet een algoritme te definiëren als een ouder van het huidige. Dit zal het uitvoeren van het ouder-algoritme vóór het huidige forceren.

Wanneer u de uitvoer van een eerder algoritme gebruikt als de invoer voor uw algoritme, stelt dat impliciet het eerdere algoritme in als ouder van het huidige (en plaatst de overeenkomende pijl in de werkruimte van Grafische modellen bouwen). In sommige gevallen kan een algoritme echter afhankelijk zijn van een ander, zelfs als het er geen uitgevoerd object van gebruikt (bijvoorbeeld een algoritme dat een zin in SQL uitvoert op een database van PostGIS en een ander dat een laag importeert in dezelfde database). Selecteer in dat geval slechts het eerdere algoritme in de parameter Afhankelijkheden en zij zullen in de juiste volgorde worden uitgevoerd.

Klik, als eenmaal aan alle parameters geldige waarden zijn toegewezen, op OK en het algoritme zal worden toegevoegd aan de werkruimte. Het zal worden gekoppeld aan elementen in de werkruimte (algoritme of invoer) dat objecten verschaft die worden gebruikt als invoer voor het algoritme.

Elementen kunnen naar een andere positie in het werkvenster worden gesleept met het gereedschap select Item selecteren/verplaatsen. Dit is nuttig om de structuur van het model helderder te maken en meer intuïtief. U kunt ook de grootte van elementen wijzigen, door hun rand vast te pakken. Dit is bijzonder nuttig als de beschrijving van de invoer of het algoritme lang is. Met de optie Beeld ► Snappen inschakelen geselecteerd, kan het wijzigen van grootte of het verplaatsen worden gebonden aan een virtueel raster, voor een meer visueel gestructureerd ontwerp van het algoritme.

Koppelingen tussen elementen worden automatisch bijgewerkt en u kunt een knop + zien boven- en onderin elk algoritme. Klikken op de knop zal alle invoer en uitvoer van het algoritme vermelden zodat u een snel overzicht heeft.

../../../_images/models_model.png

Fig. 24.22 Een volledig model

Met het gereedschap Bewerken ► Groepsvak toevoegen kunt u een te verslepen vak toevoegen aan het werkvenster. Deze mogelijkheid is heel nuttig in grote modellen om gerelateerde elementen in het werkvenster van Grafische modellen bouwen te groeperen en om de werkstroom helder te houden. We zouden bijvoorbeeld alle invoer voor het voorbeeld kunnen groeperen:

../../../_images/model_group_box.png

Fig. 24.23 Model groepsvak

U kunt de naam en kleur van de vakken wijzigen. Groepsvakken zijn bijzonder nuttig als zij samen worden gebruikt met het gereedschap Beeld ► Zoomen naar ►, wat het voor u mogelijk maakt te zoomen naar een specifiek gedeelte van het model. U kunt ook in- en uitzoomen met het muiswiel.

U wilt misschien de volgorde van de invoeren veranderen en hoe zij zijn vermeld in het hoofddialoogvenster van het model. Aan de onderzijde van het paneel Invoer vindt u de knop Invoer model opnieuw sorteren… en door daarop te klikken verschijnt een nieuw dialoogvenster dat u in staat stelt de volgorde van de invoeren te veranderen:

../../../_images/model_reorder_inputs.png

Fig. 24.24 Invoer model opnieuw sorteren

Opmerkingen kunnen ook worden toegevoegd aan invoer of algoritmes die aanwezig zijn in Grafische modellen bouwen. Dit kan worden gedaan door te gaan naar de tab Opmerking van het item of door met rechts te klikken. Op dezelfde tab kan handmatig een kleur worden ingesteld voor individuele opmerkingen in het model. Opmerkingen zijn alleen zichtbaar in het werkvenster van Grafische modellen bouwen en niet in het dialoogvenster van het uiteindelijke algoritme; zij kunnen worden verborgen door het uitschakelen van Beeld ► Opmerkingen weergeven.

U kunt uw algoritme op elk moment uitvoeren door te klikken op de knop start Model uitvoeren. Bij het gebruiken van de bewerker om een model uit te voeren, zullen niet standaard waarden worden opgeslagen in de invoer. Dit betekent dat uitvoeren van het model op een latere tijd vanuit de bewerker het dialoogvenster vooraf zal vullen met die waarden voor elke volgende uitvoering.

Om het algoritme te gebruiken vanuit de Toolbox, moet het zijn opgeslagen en het dialoogvenster Grafische modellen bouwen zijn gesloten, om het voor de Toolbox mogelijk te maken de inhoud te vernieuwen.

24.5.2.3. Uw model documenteren

U moet uw model documenteren, en dat kan worden gedaan in Grafische modellen bouwen zelf. Klik op de knop editHelpContentModel Help bewerken, en een dialoogvenster dat lijkt op het volgende zal verschijnen.

../../../_images/help_edition.png

Fig. 24.25 Help bewerken

Aan de rechterkant ziet u een eenvoudige HTML-pagina, die is gemaakt met behulp van de beschrijving van de parameters voor de invoer en de uitvoer van het algoritme, tezamen met enkele aanvullende items zoals een algemene beschrijving van het model of de auteur ervan. De eerste keer dat u de bewerker voor de Help opent, zijn al deze beschrijvingen leeg, maar u kunt ze bewerken met behulp van de elementen aan de linkerkant van het dialoogvenster. Selecteer een element in het bovenste gedeelte en schrijf dan de beschrijving ervan in het tekstvak onderin.

Help voor een model wordt opgeslagen als deel van het model zelf.

24.5.3. Opslaan en laden van modellen

24.5.3.1. Modellen opslaan

Gebruik de knop fileSaveModel opslaan om het huidige model op te slaan en de knop fileOpenModel openen om een eerder opgeslagen model te openen. Modellen worden opgeslagen met de extensie .model3. Als het model al werd opgeslagen vanuit het venster Grafische modellen bouwen, zult u niet naar een bestandsnaam worden gevraagd. Het bestand zal worden gebruikt voor volgende opslag, omdat er al een bestand is geassocieerd met het model.

Vóór het opslaan van een model moet u een naam en een groep er voor invoeren in de tekstvakken in het bovenste gedeelte van het venster.

Modellen die zijn opgeslagen in de map models (de standaardmap als u wordt gevraagd naar een bestandsnaam om het model op te slaan) zullen in de corresponderende tak in de Toolbox verschijnen. Wanneer de Toolbox wordt gestart, zoekt het in de map models naar bestanden met de extensie .model3 en laadt de modellen die zij bevatten. Omdat een model in zichzelf een algoritme is, kan het aan de Toolbox worden toegevoegd, net als elk ander algoritme.

Modellen kunnen ook in het projectbestand worden opgeslagen met behulp van de knop addToProjectModel in project opslaan. Modellen die worden opgeslagen met deze methode zullen niet als bestanden .model3 naar de schijf worden weggeschreven, maar zullen worden ingebed in het projectbestand .qgz.

Projectmodellen zijn beschikbaar in het menu qgsProjectFileProjectmodellen van de Toolbox.

De map Modellen kan worden ingesteld in het dialoogvenster Opties van Processing onder de groep Modellen.

Modellen die zijn geladen uit de map models verschijnen niet alleen in de Toolbox, maar ook in de boom met algoritmes op de tab Algoritmes van het venster Grafische modellen bouwen. Dat betekent dat u een model kunt invoegen als deel van een groter model, net zoals andere algoritmes.

Modellen zullen worden weergegeven in het paneel Browser en kunnen van daaruit worden uitgevoerd.

24.5.3.2. Een model als script voor Python exporteren

Zoals we in een later hoofdstuk zullen zien kunnen algoritmes van Processing worden aangeroepen vanuit de console voor Python van QGIS en nieuwe algoritmes van Processing kunnen worden gemaakt met Python. Een snelle manier om zo’n script voor Python te maken is om een model te maken en dat te exporteren als bestand voor Python.

Klik, om dat te doen, op saveAsPythonAls scriptalgoritme exporteren… in de werkruimte of klik met rechts op de naam van het model in de Toolbox van Processing en kies Model als algoritme voor Python exporteren….

24.5.3.3. Een model als afbeelding, PDF of SVG exporteren

Een model kan ook worden geëxporteerd als een afbeelding, SVG of PDF (ter illustratie) door te klikken op saveMapAsImageAls afbeelding exporteren, saveAsPDFAls PDF exporteren of saveAsSVGAls SVG exporteren.

24.5.4. Bewerken van een model

U kunt het model, dat u momenteel maakt, bewerken, de werkstroom opnieuw definiëren en de relaties tussen de algoritmes en invoer die het model definiëren.

Als u met rechts klikt op een algoritme in de werkruimte, zult u een contextmenu zien zoals dat wat hieronder wordt weergegeven:

../../../_images/modeler_right_click.png

Fig. 24.26 Grafische modellen bouwen, klik met rechts

Selecteren van de optie Verwijderen zal het geselecteerde algoritme verwijderen. Een algoritme kan alleen worden verwijderd als er geen andere algoritmes van afhankelijk zijn. Dat is, als er geen uitvoer van het algoritme wordt gebruikt in een ander als invoer. Als u probeert een algoritme te verwijderen waarvan andere afhankelijk zijn, zal een waarschuwingsbericht, zoals dat wat hieronder wordt weergegeven, worden getoond:

../../../_images/cannot_delete_alg.png

Fig. 24.27 Kan algoritme niet verwijderen

Selecteren van de optie Bewerken… zal het dialoogvenster Parameter van het algoritme weergeven, zodat u de invoer- en parameterwaarden kunt wijzigen. Niet alle beschikbare elementen voor invoer in het model zullen verschijnen als beschikbare invoer. Lagen of waarden die worden gemaakt in een meer gevorderde stap in de werkstroom die is gedefinieerd door het model, zal niet beschikbaar zijn als zij cirkelverwijzingen veroorzaken.

Selecteer de nieuwe waarden en klik op de knop OK zoals gewoonlijk. De verbindingen tussen de elementen van het model zullen overeenkomstig wijzigen in de werkruimte van Grafische modellen bouwen.

Opmerking toevoegen… stelt u in staat een opmerking toe te voegen aan het algoritme om het gedrag beter te beschrijven.

Een model kan gedeeltelijk worden uitgevoerd door enkele van zijn algoritmes uit te schakelen. Selecteer de optie Deactiveren in het contextmenu dat verschijnt door met rechts te klikken op een element van een algoritme om dit te doen. Het geselecteerde algoritme, en alle in het model die daarvan afhankelijk zijn, zullen grijs worden weergegeven en zullen niet worden uitgevoerd als deel van het model.

../../../_images/deactivated.png

Fig. 24.28 Model met uitgeschakelde algoritmes

Door met rechts te klikken op een algoritme dat niet actief is, zult u een menuoptie Activate zien die u kunt gebruiken om het opnieuw te activeren.