` `

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, in plaats daarvan, deel uit van een reeks bewerkingen. Met behulp van Grafische modellen bouwen kan die keten van processen worden verpakt in één enkel proces, dus is het later zo handiger uit te voeren als één enkel proces op een andere verzameling invoer. Het maakt niet uit hoeveel stappen en verschillende algoritmen er bij betrokken zijn, een model wordt uitgevoerd als één enkel algoritme, en bespaart dus tijd en inspanning, speciaal bij grote modellen.

Grafische modellen bouwen kan worden geopend vanuit het menu Processing.

Grafische modellen bouwen heeft een werkruimte waar de structuur van het model en de werkstroom die het vertegenwoordigt worden weergegeven. In het linker gedeelte van het venster kan een paneel met twee tabs worden gebruikt om nieuwe elementen aan het model toe te voegen.

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

Grafische modellen bouwen

Het maken van een model omvat twee stappen:

  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 dat gebeurd met alle beschikbare algoritmen 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 algoritmen en selecteren hoe zij deze invoer gebruiken of hoe zij de uitvoer, reeds gegenereerd door andere algoritmen in het model, gebruiken.

Definitie van invoer

De eerste stap om een model te maken is het definiëren van de invoer die het nodig heeft. De volgende elementen worden gevonden in de tab Invoer aan de linkerkant van het venster Grafische modellen bouwen:

  • Rasterlaag

  • Vectorlaag

  • Tekenreeks

  • Tabelveld

  • Tabel

  • Bereik

  • Getal

  • Booleaanse waarde

  • Bestand

Na dubbelklikken op een van deze elementen wordt een dialoogvenster weergegeven om de karakteristieken te definiëren. Afhankelijk van de parameter zelf, kan het dialoogvenster slechts één basiselement bevatten (de beschrijving, wat datgene is dat de gebruiker zal zien bij het uitvoeren van het model) of meerdere. Bijvoorbeeld bij het toevoegen van een numerieke waarde, zoals kan worden gezien in de volgende afbeelding, los van de beschrijving van de parameter, moet u een standaard waarde en een bereik van geldige waarden instellen.

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

Definiëren parameters model

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

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

Parameters modellen in kaartvenster

U kunt ook invoer toevoegen door het type invoer te slepen vanuit de lijst en neer te zetten in het venster van Grafische modellen bouwen, op de positie waar u het wilt plaatsen.

Definitie van de werkstroom

Als de invoer eenmaal is gedefinieerd, is het tijd om de algoritmen te definiëren die daarop moeten worden toegepast. Algoritmen kunnen worden gevonden op de tab Algoritmen, gegroepeerd op nagenoeg dezelfde wijze als in de Toolbox.

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

Invoer modellen

Dubbelklik op de naam van een algoritme en sleep en zet het neer, net zoals bij het toevoegen van invoer, om een algoritme aan een model toe te voegen. Een dialoogvenster voor de uitvoering zal 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 weergave correspondeert met het algoritme SAGA ‘Convergence index’.

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

Parameters algoritme model

Zoals u ziet zijn er enkele verschillen. In plaats van het vak voor het uitvoerbestand dat werd gebruikt om het pad voor de uitvoer van lagen en tabellen in te stellen, wordt hier een eenvoudig tekstvak gebruikt. Als de laag, gegenereerd door het algoritme, slechts een tijdelijk resultaat is dat zal worden gebruikt als de invoer voor een ander algoritme en niet zou moeten worden bewaard als uiteindelijk resultaat, bewerk dan dat tekstvak niet. Door er iets in te typen betekent het dat het resultaat het eindpunt is en de tekst die u invoert zal de beschrijving voor de uitvoer zijn, wat de uitvoer zal zijn die de gebruiker zal zien bij het uitvoeren van het model.

Selecteren van de waarde van elke parameter gaat ook een beetje anders, omdat er belangrijke verschillen zijn tussen de context van Grafische modellen bouwen en die van de Toolbox. Laten we eens kijken hoe we de waarden voor elk type parameter invullen.

  • Lagen (raster en vector) en tabellen. Deze worden geselecteerd uit een lijst, maar in dit geval zijn de mogelijke waarden niet de huidige in QGIS geladen lagen of tabellen, maar de lijst van ingevoerde modellen van het overeenkomende type, of andere lagen of tabellen die zijn gegenereerd door algoritmen die al zijn toegevoegd aan het model.

  • Numerical values. Literal values can be introduced directly in the text box. But this text box is also a list that can be used to select any of the numerical value inputs of the model. In this case, the parameter will take the value introduced by the user when executing the model.
  • String. As in the case of numerical values, literal strings can be typed, or an input string can be selected.
  • Tabelveld. De velden van de ouder-tabel of laag hoeven niet bekend te zijn op het moment van ontwerpen, omdat zij afhankelijk zijn van de selectie van de gebruiker, elke keer als het model wordt uitgevoerd. Type de naam van een veld direct in het tekstvak, of gebruik de lijst om een tabelveld voor invoer te selecteren dat al is toegevoegd aan het model om de waarde voor deze parameter in te stellen. De geldigheid van het geselecteerde veld zal bij de uitvoering worden gecontroleerd.

In alle gevallen zult u een aanvullende parameter aantreffen, genaamd Ouder-algoritmen dat niet beschikbaar is bij het aanroepen van het algoritme in de Toolbox. Deze parameter stelt u in staat de volgorde te definiëren waarin de algoritmen worden uitgevoerd door expliciet één algoritme als een ouder van het huidige te definiëren, wat forceert dat het ouder-algoritme wordt uitgevoerd vóór het huidige.

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 Ouder-algoritmen en de twee stappen zullen in de juiste volgorde worden uitgevoerd.

Once all the parameters have been assigned valid values, click on [OK] and the algorithm will be added to the canvas. It will be linked to all the other elements in the canvas, whether algorithms or inputs, that provide objects that are used as inputs for that algorithm.

Elementen kunnen naar een andere positie binnen de werkruimte worden gesleept, om de manier waarop de modelstructuur wordt weergegeven te wijzigen en het duidelijker en meer intuïtief te maken. Koppelingen tussen elementen worden automatisch bijgewerkt. U kunt in- en uitzoomen met behulp van het muiswiel.

You can run your algorithm any time by clicking on the [Run] button. However, in order to use the algorithm from the toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents.

Opslaan en laden van modellen

Use the [Save] button to save the current model and the [Open] button to open any model previously saved. Models are saved with the .model extension. If the model has been previously saved from the modeler window, you will not be prompted for a filename. Since there is already a file associated with that model, the same file will be used for any subsequent saves.

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

Modellen die zijn opgeslagen in de map models (de standaard map 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 .model 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.

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

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

Bewerken van een model

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

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

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

Grafische modellen bouwen, klik met rechts

Selecteren van de optie Remove zal het geselecteerde algoritme verwijderen. Een algoritme kan alleen worden verwijderd als er geen andere algoritmen 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

Kan algoritme niet verwijderen

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

Select the new values and then click on the [OK] button as usual. The connections between the model elements will change accordingly in the modeler canvas.

Een model kan gedeeltelijk worden uitgevoerd door enkele van zijn algoritmen uit te schakelen. Selecteer de optie Deactivate 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

Model met uitgeschakelde algoritmen

Door met rechts te klikken op een algoritme dat niet actief is, zult u in plaats daarvan een menuoptie Activate zien die kan worden gebruikt om het opnieuw te activeren.

Bewerken van Help-bestanden Grafische modellen bouwen en meta-informatie

You can document your models from the modeler itself. Just click on the [Edit model help] button and a dialog like the one shown next will appear.

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

Bewerken van Help

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.

Exporting a model as a Python script

As we will see in a later chapter, Processing algorithms can be called from the QGIS Python console, and new Processing algorithms can be created as well using Python. A quick way of creating such a Python script is to create a model and then to export is as a Python file.

To do so, click on the Export as Python script button. Select the output file in the file chooser dialog, and Processing will write in it the Python commands that perform the same operations defined in the current model.

Over beschikbare algoritmen

Het zal u zijn opgevallen dat sommige algoritmen die uitgevoerd kunnen worden vanuit de Toolbox niet verschijnen in de lijst van beschikbare algoritmen wanneer u een model ontwerpt. Een algoritme moet een juiste semantiek hebben, zoals juist zijn gekoppeld aan andere in de werkstroom, om te kunnen worden opgenomen in een model. Als een algoritme niet een dergelijke goed-gedefiniëerde semantiek heeft (als bijvoorbeeld het aantal uit te voeren lagen niet vooruit bekend is), dan is het niet mogelijk om het in een model te gebruiken, en dus, verschijnt het niet in de lijst met algoritmen die u zult zien in het dialoogvenster Grafische modellen bouwen.

Additionally, you will see some algorithms in the modeler that are not found in the toolbox. These algorithms are meant to be used exclusively as part of a model, and they are of no interest in a different context. The ‘Calculator’ algorithm is an example of that. It is just a simple arithmetic calculator that you can use to modify numerical values (entered by the user or generated by some other algorithm). This tool is really useful within a model, but outside of that context, it doesn’t make too much sense.