Belangrijk
Vertalen is een inspanning van de gemeenschap waaraan u deel kunt nemen <translation_guidelines>. Deze pagina is momenteel voor 100.00% vertaald.
27.5. De Modelontwerper
Modelontwerper 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 Modelontwerper 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.
De modelontwerper kan worden geopend vanuit het menu Processing (
).27.5.1. De interface van Modelontwerper
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.
27.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:
Modeleigenschappen: specificeer de naam (vereist) van het model en de groep waarin het moet worden weergegeven in de Toolbox van Processing
Invoer: alle invoerparameters die uw model zouden kunnen vormen
Algoritmes: de beschikbare algoritmes van Processing
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. Ze 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.
Geschiedenis Ongedaan maken: dit paneel zal alles registreren dat in de Modelontwerper gebeurt, wat het eenvoudiger maakt dingen te annuleren die u fout hebt gedaan.
27.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 Modelontwerper. Aan de andere kant zijn sommige algoritmes specifiek voor Modelontwerper. Die algoritmes zijn geplaatst in de groep ‘Gereedschappen Modelontwerper’.
27.5.2. Een model maken
Het maken van een model omvat twee basisstappen:
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.
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.
27.5.2.1. Definitie van invoer
De eerste stap is om de invoer voor het model te definiëren. Zij zijn te vinden in het paneel Invoer aan de linkerkant van het venster van Modelontwerper. Door met de muis over de invoer te gaan wordt een helptip weergegeven met aanvullende informatie. Voor een volledige lijst van beschikbare parameters in Modelontwerper en hun overeenkomsten met scripten, lees Typen invoer en uitvoer voor algoritmes van Processing.
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.
U kunt uw invoer opgeven als verplicht voor uw model door de optie Verplicht
te selecteren en door het keuzevak 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 Modelontwerper.
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 Modelontwerper. 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.
27.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.
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’.
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:
Waarde: stelt u in staat een statische waarde toe te wijzen aan de parameter. Afhankelijk van het type parameter zal de widget u een getal laten invoeren (5.0``), een tekenreeks (
mytext
), la(a)g(en) selecteren die zijn geladen in het project van QGIS of vanuit een map, items kiezen vanuit een lijst, …Vooraf berekende waarde: opent het dialoogvenster Expressiebouwer en laat u een expressie definiëren om de parameter te vullen. Invoer voor modellen, samen met enkele andere statistieken voor de laag, zijn beschikbaar als variabelen en worden vermeld aan de bovenzijde van het dialoogvenster Zoeken van de Expressiebouwer. De expressie wordt eenmaal geëvalueerd voordat het kind-algoritme wordt uitgevoerd en gebruikt gedurende het uitvoeren van dat algoritme.
Model invoer: maakt het mogelijk een aan het model toegevoegde invoer als een parameter te gebruiken. Eenmaal aangeklikt zal deze optie alle geschikte invoer voor de parameter vermelden.
Uitvoer algoritme: maakt het mogelijk de uitvoer van een ander algoritme als invoer voor het huidige algoritme te gebruiken. Net als bij Model invoer zal deze optie alle geschikte invoer voor de parameter vermelden.
De parameter uitvoer heeft ook de hierboven vermelde opties in zijn keuzemenu:
statische uitvoeren voor kind-algoritmes toevoegen, bijv. altijd de uitvoer een een kind-algoritme opslaan naar een vooraf gedefinieerde laag van een GeoPackage of Postgres
een expressie gebruiken, gebaseerd op uitvoerwaarden voor kind-algoritmes, bijv. genereren van een automatische bestandsnaam, gebaseerd op de datum van vandaag en uitvoeren naar dat bestand opslaan
een model invoer gebruiken, bijv. de model invoer Bestand/Map om een bestand of map voor de uitvoer te specificeren
een andere uitvoer van een algoritme gebruiken, bijv. de uitvoer van het algoritme Map maken (uit Modelontwerper)
een aanvullende optie
Uitvoer model
maakt de uitvoer van het algoritme beschikbaar 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:
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 Modelontwerper). 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 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 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.
Met het gereedschap
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 Modelontwerper te groeperen en om de werkstroom helder te houden. We zouden bijvoorbeeld alle invoer voor het voorbeeld kunnen groeperen:U kunt de naam en kleur van de vakken wijzigen. Groepsvakken zijn bijzonder nuttig als zij samen worden gebruikt met het gereedschap
, 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:
Er is ook de mogelijkheid om een specifieke volgorde in te stellen die de uitvoer van het model moet gebruiken bij het laden van de resultaten in een project. Dit geeft de maker van het model een middel om ervoor te zorgen dat lagen logisch geordend worden in het kaartvenster bij het uitvoeren van een model, zoals het plaatsen van de uitvoer van een vectorlaag boven de uitvoer van een rasterlaag, of een puntlaag boven een polygoonlaag. De maker van het kan ook een optionele “Groepsnaam” voor de uitvoeren voor het automatisch groeperen van uitvoeren in de boom van lagen met een nieuwe groepsnaam of door ze toe te voegen aan een bestaande groep. In het menu Model
vindt u het item Uitvoer opnieuw sorteren…
en door erop te klikken verschijnt een nieuw dialoogvenster dat u in staat stelt de volgorde van de uitvoerlagen te wijzigen:
Opmerkingen kunnen ook worden toegevoegd aan invoer of algoritmes die aanwezig zijn in Modelontwerper. 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 Modelontwerper en niet in het dialoogvenster van het uiteindelijke algoritme; zij kunnen worden verborgen door het uitschakelen van .
U kunt uw algoritme op elk moment uitvoeren door te klikken op de knop 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 Modelontwerper zijn gesloten, om het voor de Toolbox mogelijk te maken de inhoud te vernieuwen.
27.5.2.3. Uw model documenteren
U moet uw model documenteren, en dat kan worden gedaan in Modelontwerper zelf. Klik op de knop Model Help bewerken, en een dialoogvenster dat lijkt op het volgende zal verschijnen.
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. Er is ook een gedeelte Voorbeelden waar u uw eigen aangepaste voorbeelden kunt invoeren om te helpen bij het uitleggen van het gebruiken van het model. 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.
27.5.3. Opslaan en laden van modellen
27.5.3.1. Modellen opslaan
Gebruik de knop Model opslaan om het huidige model op te slaan en de knop Model openen om een eerder opgeslagen model te openen. Modellen worden opgeslagen met de extensie .model3
. Als het model al werd opgeslagen vanuit het venster Modelontwerper, 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 Model 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 Projectmodellen van de Toolbox en in het menu-item .
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 Modelontwerper. 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.
27.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 Als 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….
27.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 Als afbeelding exporteren, Als PDF exporteren of Als SVG exporteren.
27.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:
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:
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 Modelontwerper.
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.
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.