Viktigt

Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.

23.5. Modellkonstruktören

Med model designer kan du skapa komplexa modeller med hjälp av ett enkelt och lättanvänt gränssnitt. När man arbetar med ett GIS är de flesta analysoperationer inte isolerade, utan ingår i en kedja av operationer. Med hjälp av modelldesignern kan denna kedja av operationer förpackas i en enda process, vilket gör det bekvämt att köra senare med en annan uppsättning ingångar. Oavsett hur många steg och olika algoritmer det handlar om körs en modell som en enda algoritm, vilket sparar tid och ansträngning.

Modellkonstruktören kan öppnas från bearbetningsmenyn (:menyval:`Bearbetning --> Modellkonstruktör`).

23.5.1. Gränssnittet för modellkonstruktören

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

Fig. 23.18 Modelldesigner

I huvudsak har modelleraren en arbetsyta där modellens struktur och det arbetsflöde som den representerar kan konstrueras.

Längst upp i dialogrutan finns olika menyer och verktygsfältet Navigation som ger tillgång till en mängd olika verktyg.

23.5.1.1. Meny för modell

Etikett

Genväg

Verktygsfält för navigering

Beskrivning

success Validera modell

Kontrollerar om de algoritmer och indata som används i modellen finns. Praktiskt innan du släpper en modell.

play Kör modell…

F5

checkbox

Exekverar modellen

runSelected Kör valda steg…

Shift+F5

Kör endast de valda stegen i en modell, vilket gör det möjligt att köra en delmängd av modellen

Ombeställ modellens indata…

Anger i vilken ordning indata ska presenteras för användaren i algoritmdialogen.

Omordna utmatningsskikten…

Ställer in en specifik ordning som utdata från modellen måste använda när resultaten laddas in i ett projekt.

fileOpen Öppna modell…

Ctrl+O

checkbox

Öppnar en .model3-fil för redigering eller exekvering

fileSave Spara modell

Ctrl+S

checkbox

Sparar modellen på hårddisken som en .model3-fil

fileSaveAs Spara modell som…

Ctrl+Shift+S

checkbox

Sparar modellen på hårddisken som en ny .model3-fil

fileSave Spara modell i projekt

checkbox

Bäddar in modellfilen i projektfilen, så att den blir tillgänglig när du delar projektfilen.

helpContents Redigera modellhjälp…

checkbox

Ett gränssnitt för att dokumentera modellen, algoritmerna, parametrarna och utdata, samt författare och versionshantering

:menyval:`Export -->`

saveMapAsImage ► Exportera som bild…

checkbox

Sparar modellens grafiska design i ett bildfilformat (för illustrationsändamål)

saveAsPDF:menyerelection:`--> Exportera som PDF...`

Sparar modellens grafiska design till filformatet PDF (för illustrationsändamål)

saveAsSVG:menyval:`--> Exportera som SVG...`

Sparar modellens grafiska design i filformatet SVG (för illustrationsändamål)

fileSave:menyerelection:`--> Exportera som skriptalgoritm...`

checkbox

Genererar en pythonskriptfil med instruktioner för modellen

23.5.1.2. Redigera meny

Etikett

Genväg

Verktygsfält för navigering

Beskrivning

selectAll Välj alla

Ctrl+A

Markerar alla modellkomponenter i designern

Snapna valda komponenter till rutnätet

snäpper och riktar in elementen i ett rutnät

redo Redo

Ctrl+Y

checkbox

Återställer den senast avbrutna åtgärden. Se även panelen Undo/Redo.

undo Undo

Ctrl+Z

checkbox

Avbryt den föregående ändringen. Se även panelen Undo/Redo.

editCut Cut

Ctrl+X

Skär ut ett urval av komponenter från modellen.

editCopy Copy

Ctrl+C

Kopierar ett urval av komponenter från modellen.

editPaste Paste

Ctrl+V

Klistrar in ett utskuret eller kopierat urval av komponenter från en modell till en annan eller inom samma modell. De valda komponenterna behåller sina ursprungliga egenskaper och kommentarer.

deleteSelected Radera valda komponenter

Del

Tar bort en komponent från modellen.

Add Group Box

Lägger till en ruta i bakgrunden på relaterade komponenter för att gruppera dem visuellt. Särskilt användbart i stora modeller för att hålla arbetsflödet rent.

23.5.1.3. Visa meny

Etikett

Genväg

Verktygsfält för navigering

Beskrivning

:menyselection:`Zoom To -->`

Zoomar till den valda gruppboxens omfattning

zoomIn Zoom In

Ctrl++

checkbox

zoomOut Zoom Out

Ctrl+-

checkbox

zoomActual Zoom till 100%

Ctrl+1

checkbox

zoomFullExtent Zoom Full

Ctrl+0

checkbox

Visar alla komponenter i designerns aktuella arbetsyta

checkbox Visa kommentarer

Visar kommentarer som är kopplade till varje algoritm eller indata i modellkonstruktören

|ej markerad| Aktivera Snapping

|ej markerad| Toggle Panel Visibility

Ctrl+Tab

Slår på eller av :ref:paneler <modelerpanels> i designern

23.5.1.4. Paneler

Den vänstra delen av fönstret är en sektion med fem paneler som kan användas för att lägga till nya element i modellen:

  1. Model Properties: ange namnet (obligatoriskt) på modellen och i vilken grupp den ska visas i Processing Toolbox

  2. Input: alla inputparametrar som kan forma din modell

  3. Algoritmer: tillgängliga Processing-algoritmer

  4. Variabler: Modeller kan innehålla dedikerade variabler som är unika och endast tillgängliga för dem. Dessa variabler kan nås av alla uttryck som används i modellen. De är användbara för att styra algoritmer inom en modell och styra flera aspekter av modellen genom att ändra en enda variabel. Variablerna kan visas och ändras i panelen Variables.

  5. Undo History: den här panelen registrerar allt som händer i modelleraren, vilket gör det enkelt att avbryta saker du gjort fel.

23.5.1.5. Om tillgängliga algoritmer

Vissa algoritmer som kan köras från verktygslådan visas inte i listan över tillgängliga algoritmer när du utformar en modell. För att en algoritm ska kunna ingå i en modell måste den ha rätt semantik. Om en algoritm inte har en sådan väldefinierad semantik (t.ex. om antalet utmatningslager inte är känt i förväg) går det inte att använda den i en modell och den visas inte i listan över algoritmer som du hittar i dialogrutan för modellering. Å andra sidan är vissa algoritmer specifika för modelleraren. Dessa algoritmer finns i gruppen ”Modelleringsverktyg”.

23.5.2. Skapa en modell

Att skapa en modell innebär två grundläggande steg:

  1. Definition av nödvändiga indata. Dessa indata kommer att läggas till i parameterfönstret, så att användaren kan ställa in deras värden när modellen körs. Modellen i sig är en algoritm, så parameterfönstret genereras automatiskt som för alla algoritmer som är tillgängliga i Processing-ramverket.

  2. Definition av arbetsflödet. Med hjälp av modellens indata definieras arbetsflödet genom att lägga till algoritmer och välja hur de använder de definierade indata eller de utdata som genereras av andra algoritmer i modellen.

23.5.2.1. Definition av ingångar

Det första steget är att definiera indata för modellen. De finns i Inputs-panelen till vänster i modelleringsfönstret. Om du håller muspekaren över indata visas ett verktygstips med ytterligare information. För en fullständig lista över tillgängliga parametrar i modeler och deras motsvarighet för skriptning, läs Inmatnings- och utmatningstyper för bearbetningsalgoritmer.

När du dubbelklickar på ett element visas en dialogruta där du kan definiera dess egenskaper. Beroende på parametern innehåller dialogrutan minst ett element (beskrivningen, som är det som användaren ser när modellen körs). Om du t.ex. lägger till ett numeriskt värde, som visas i nästa figur, måste du förutom beskrivningen av parametern ange ett standardvärde och ett intervall för giltiga värden.

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

Fig. 23.19 Definition av modellparametrar

Du kan definiera dina indata som obligatoriska för din modell genom att markera alternativet checkbox Mandatory och genom att markera kryssrutan unchecked Advanced kan du ange att indata ska finnas i avsnittet Advanced. Detta är särskilt användbart när modellen har många parametrar och några av dem inte är triviala, men du vill ändå välja dem.

För varje ny inmatning läggs ett nytt element till i modelleringspanelen.

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

Fig. 23.20 Modell Parametrar

Du kan också lägga till ingångar genom att dra ingångstypen från listan och släppa den på den plats där du vill ha den i modelleringspanelen. Om du vill ändra en parameter för en befintlig ingång dubbelklickar du bara på den, så visas samma dialogruta.

När du använder en modell i en annan modell visas de nödvändiga in- och utmatningarna i Canvas.

23.5.2.2. Definition av arbetsflödet

I följande exempel lägger vi till två indata och två algoritmer. Syftet med modellen är att kopiera höjdvärdena från ett DEM-rasterlager till ett linjeskikt med hjälp av algoritmen ”Drape” och sedan beräkna linjeskiktets totala stigning med hjälp av algoritmen ”Climb Along Line”.

På fliken Inputs väljer du de två indata som Vector Layer för linjen och Raster Layer för DEM. Vi är nu redo att lägga till algoritmerna i arbetsflödet.

Algoritmer finns i panelen Algorithms, grupperade på ungefär samma sätt som i verktygslådan i Processing.

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

Fig. 23.21 Inmatning av modell

För att lägga till en algoritm i en modell dubbelklickar du på dess namn eller drar och släpper den, precis som för indata. På samma sätt som för indata kan du ändra beskrivningen av algoritmen och lägga till en kommentar. När du lägger till en algoritm visas en exekveringsdialog med ett innehåll som liknar det som finns i exekveringspanelen som visas när du exekverar algoritmen från verktygslådan. Följande bild visar både algoritmdialogerna Drape (set Z value from raster) och Climb along line.

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

Fig. 23.22 Modell Algoritm parametrar

Som du kan se finns det dock vissa skillnader. Varje parameter har en rullgardinsmeny bredvid sig som gör det möjligt att styra hur den ska serveras under arbetsflödet:

  • fieldInteger Value: gör att du kan tilldela parametern ett statiskt värde. Beroende på parametertyp kan du i widgeten ange ett tal (5.0), en sträng (mytext), välja lager som laddats i QGIS-projektet eller från en mapp, välja objekt från en lista, …

  • expression Pre-calculated Value: öppnar dialogrutan Expression Builder och låter dig definiera ett uttryck för att fylla i parametern. Modellinmatningar tillsammans med viss annan lagerstatistik är tillgängliga som variabler och listas högst upp i dialogrutan Search i Expression Builder. Uttrycket utvärderas en gång innan den underordnade algoritmen körs och används under körningen av den algoritmen.

  • processingModel Model Input: gör det möjligt att använda en indata som lagts till i modellen som en parameter. När du klickar på detta alternativ visas en lista över alla lämpliga indata för parametern.

  • processingAlgorithm Algorithm Output: gör det möjligt att använda utdata från en annan algoritm som indata för den aktuella algoritmen. När det gäller modellinmatningar kommer detta alternativ att lista alla lämpliga inmatningar för parametern.

  • Även output parameter har ovanstående alternativ i sin rullgardinsmeny:

    • lägga till statiska utdata för underordnade algoritmer, t.ex. alltid spara en underordnad algoritms utdata till ett fördefinierat geopaket eller postgres-lager

    • använda ett uttrycksbaserat utdatavärde för underordnade algoritmer, t.ex. generera ett automatiskt filnamn baserat på dagens datum och spara utdata i den filen

    • använda en modellinmatning, t.ex. modellinmatningen File/Folder för att ange en utdatafil eller -mapp

    • använda en annan algoritms utdata, t.ex. utdata från algoritmen Create directory (från Modeler tools)

    • ett extra alternativ modelOutput Model Output gör algoritmens utdata tillgängliga i modellen. Om ett lager som genereras av algoritmen endast ska användas som indata till en annan algoritm, redigera inte textrutan.

    I följande bild kan du se de två ingångsparametrarna som definieras som ”Model Input” och det tillfälliga utgångsskiktet:

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

    Fig. 23.23 Algoritm Parametrar för inmatning och utmatning

Du hittar också en ytterligare parameter med namnet Dependencies som inte är tillgänglig när du anropar algoritmen från verktygslådan. Med denna parameter kan du definiera i vilken ordning algoritmerna exekveras genom att uttryckligen definiera en algoritm som en förälder till den aktuella algoritmen. Detta tvingar föräldra-algoritmen att exekveras före den aktuella algoritmen.

När du använder utdata från en tidigare algoritm som indata för din algoritm, innebär det implicit att den tidigare algoritmen blir överordnad den aktuella algoritmen (och att motsvarande pil placeras i modelleringspanelen). I vissa fall kan dock en algoritm vara beroende av en annan algoritm även om den inte använder något utdataobjekt från den (t.ex. en algoritm som kör en SQL-sats på en PostGIS-databas och en annan som importerar ett lager till samma databas). I så fall väljer du bara den föregående algoritmen i parametern Dependencies så kommer de att köras i rätt ordning.

När alla parametrar har tilldelats giltiga värden klickar du på OK och algoritmen läggs till i kanvasen. Den kommer att länkas till de element i Canvas (algoritmer eller indata) som tillhandahåller objekt som används som indata för algoritmen.

Element kan dras till en annan position på duken med hjälp av verktyget select Select/Move Item. Detta är användbart för att göra modellens struktur tydligare och mer intuitiv. Du kan också ändra storlek på elementen genom att ta tag i deras kant. Detta är särskilt användbart om beskrivningen av indata eller algoritm är lång. Om alternativet View ► Enable snapping är markerat kan element som ändras i storlek eller förflyttas bindas till ett virtuellt rutnät, vilket ger en mer visuellt strukturerad algoritmdesign.

Länkar mellan element uppdateras automatiskt och du kan se en +-knapp högst upp och längst ned i varje algoritm. Om du klickar på knappen listas alla algoritmens in- och utgångar så att du snabbt kan få en överblick.

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

Fig. 23.24 En komplett modell

Med verktyget Edit ► Add Group Box kan du lägga till en dragbar låda i Canvas. Denna funktion är mycket användbar i stora modeller för att gruppera relaterade element i modelleringskanvasen och för att hålla arbetsflödet rent. Vi kan t.ex. gruppera alla ingångar i exemplet:

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

Fig. 23.25 Modell Grupp Box

Du kan ändra namn och färg på boxarna. Gruppboxar är mycket användbara när de används tillsammans med :menuselection:View --> Zoom To -->, så att du kan zooma till en viss del av modellen. Du kan också zooma in och ut med hjälp av mushjulet.

Du kanske vill ändra ordningen på indata och hur de listas i huvudmodellens dialogruta. Längst ned i panelen Input hittar du knappen Reorder Model Inputs... och genom att klicka på den öppnas en ny dialogruta där du kan ändra ordningen på indata:

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

Fig. 23.26 Omordna modellens ingångar

Det finns också möjlighet att ange en specifik ordning som utdata från modellen måste använda när resultaten laddas in i ett projekt. Detta ger modellskaparen ett sätt att se till att lagren är logiskt ordnade på duken när en modell körs, t.ex. genom att placera en vektorlagerutgång över en rasterlagerutgång eller ett punktlager över ett polygonlager. Modellskaparen kan också ange ett valfritt ”Gruppnamn” för utdata för att automatiskt gruppera utdata i lagerträdet med hjälp av ett nytt gruppnamn eller genom att lägga till dem i en befintlig grupp. I menyn Model hittar du posten Reorder Output Layers... och genom att klicka på den öppnas en ny dialogruta där du kan ändra ordningen på utdatalagren:

../../../_images/model_reorder_output_layers.png

Fig. 23.27 Ordna om utmatningsskikten

Kommentarer kan också läggas till indata eller algoritmer som finns i modelleraren. Detta kan göras genom att gå in på fliken Comment i objektet eller genom att högerklicka. I samma flik kan en färg ställas in manuellt för enskilda modellkommentarer. Kommentarer är endast synliga i modelleringspanelen och inte i dialogen för den slutliga algoritmen; de kan döljas genom att avaktivera View ► Show Comments.

Din modell kan köras på olika sätt:

  • Du kan köra hela modellen genom att klicka på start Run Model… i verktygsfältet eller Model ► start Run Model…: När du använder editorn för att köra en modell sparas alla värden som inte är standardvärden i indata. Detta innebär att om modellen körs vid ett senare tillfälle från editorn kommer dialogrutan att fyllas i med dessa värden vid varje efterföljande körning.

  • Du kan välja ut delar av modellen och köra endast den delmängden av modellen: tryck på alternativet runSelected Run Selected Steps… från menyn Models ► eller från den kontextuella menyn för en vald algoritm. Initialtillståndet hämtas från alla tidigare körningar av modellen via editorn, så resultat från tidigare steg i modellen är tillgängliga för de valda stegen. Detta gör det möjligt att fixa delar av en stor modell utan att hela tiden behöva köra hela modellen för att testa. Detta är särskilt användbart när tidigare steg i modellen är tidskrävande.

  • Du kan köra en delmängd av modellen med början från en viss algoritm: högerklicka på algoritmen och välj start Kör härifrån…. På samma sätt hämtas värden från tidigare körningar.

  • För att kunna använda algoritmen från verktygslådan Processing måste den sparas och dialogrutan för modellering stängas, så att verktygslådan kan uppdatera sitt innehåll.

23.5.2.3. Dokumentera din modell

Du måste dokumentera din modell, och detta kan göras från själva modelleraren. Klicka på knappen editHelpContentEdit model help så visas en dialogruta som den som visas här intill.

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

Fig. 23.28 Hjälp med redigering

På höger sida ser du en enkel HTML-sida som skapats med hjälp av beskrivningen av algoritmens ingångsparametrar och utdata, tillsammans med några ytterligare objekt som en allmän beskrivning av modellen eller dess författare. Det finns också ett avsnitt med exempel där du kan skriva in dina egna anpassade exempel för att förklara hur modellen används. Första gången du öppnar hjälpredigeraren är alla dessa beskrivningar tomma, men du kan redigera dem med hjälp av elementen på vänster sida av dialogrutan. Välj ett element i den övre delen och skriv sedan dess beskrivning i textrutan nedan.

Modellhjälp sparas som en del av själva modellen.

23.5.3. Spara och ladda modeller

23.5.3.1. Spara modeller

Använd knappen fileSaveSave model för att spara den aktuella modellen och knappen fileOpenOpen Model för att öppna en tidigare sparad modell. Modeller sparas med filnamnstillägget .model3. Om modellen redan har sparats från modelleringsfönstret kommer du inte att uppmanas att ange något filnamn. Eftersom det redan finns en fil kopplad till modellen kommer den filen att användas för efterföljande sparningar.

Innan du sparar en modell måste du ange ett namn och en grupp för den i textrutorna i den övre delen av fönstret.

Modeller som sparats i mappen models (standardmappen när du uppmanas att ange ett filnamn för att spara modellen) visas i verktygslådan i motsvarande gren. När verktygslådan startas söker den i mappen models efter filer med filnamnstillägget .model3 och laddar de modeller de innehåller. Eftersom en modell i sig är en algoritm kan den läggas till i verktygslådan precis som vilken annan algoritm som helst.

Modeller kan också sparas i projektfilen med hjälp av knappen addToProjectSpara modell i projekt. Modeller som sparas med den här metoden skrivs inte ut som .model3-filer på disken utan bäddas in i projektfilen.

Projektmodeller finns tillgängliga i menyn qgsProjectFileProjektmodeller i verktygslådan och i menyalternativet Projekt ► Modeller.

Modellmappen kan ställas in i dialogrutan Processing configuration, under gruppen Modeler.

Modeller som laddas från mappen models visas inte bara i verktygslådan utan även i algoritmträdet på fliken Algorithms i modelleringsfönstret. Det innebär att du kan integrera en modell som en del av en större modell, precis som andra algoritmer.

Modellerna kommer att visas i Browser-panelen och kan köras därifrån.

23.5.3.2. Exportera en modell som ett Python-skript

Som vi kommer att se i ett senare kapitel kan Processing-algoritmer anropas från QGIS Python-konsolen, och nya Processing-algoritmer kan skapas med hjälp av Python. Ett snabbt sätt att skapa ett sådant Python-skript är att skapa en modell och sedan exportera den som en Python-fil.

För att göra det, klicka på saveAsPythonExport as Script Algorithm… i modelleringsrutan eller högerklicka på namnet på modellen i Processing Toolbox och välj saveAsPythonExport Model as Python Algorithm….

23.5.3.3. Exportera en modell som en bild, PDF eller SVG

En modell kan också exporteras som en bild, SVG eller PDF (för illustrationssyften) genom att klicka på saveMapAsImageExport as image, saveAsPDFExport as PDF eller saveAsSVGExport as SVG.

23.5.4. Redigera en modell

Du kan redigera den modell du håller på att skapa och omdefiniera arbetsflödet och relationerna mellan de algoritmer och indata som definierar modellen.

Om du högerklickar på en algoritm i Canvas visas en kontextmeny som den som visas här intill:

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

Fig. 23.29 Modellerare Högerklicka

  • Alternativ för kör en del av modellen har exponerats tidigare.

  • Om du väljer alternativet Remove kommer den valda algoritmen att tas bort. En algoritm kan bara tas bort om det inte finns några andra algoritmer som är beroende av den. Det vill säga om ingen utdata från algoritmen används som indata i en annan algoritm.

  • Om du väljer alternativet Edit… visas parameterdialogen så att du kan ändra indata och parametervärden. Alla indataelement som är tillgängliga i modellen visas inte som tillgängliga indata. Lager eller värden som genereras i ett mer avancerat steg i det arbetsflöde som definieras av modellen kommer inte att vara tillgängliga om de orsakar cirkulära beroenden.

    Välj de nya värdena och klicka på knappen OK som vanligt. Anslutningarna mellan modellelementen kommer att ändras i modelleringspanelen i enlighet med detta.

  • Med Add comment… kan du lägga till en kommentar till algoritmen för att bättre beskriva beteendet.

Observera

Om du högerklickar på en inmatningsparameter kan du också Remove, Edit… och Add comment…

  • En modell kan köras delvis genom att avaktivera några av dess algoritmer. Det gör du genom att välja alternativet Deaktivera i snabbmenyn som visas när du högerklickar på ett algoritmelement. Den valda algoritmen och alla de algoritmer i modellen som är beroende av den visas i grått och körs inte som en del av modellen.

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

    Fig. 23.30 Modell med avaktiverad algoritm

    När du högerklickar på en algoritm som inte är aktiv visas ett Activate-menyalternativ som du kan använda för att aktivera den igen.

  • När du redigerar en modell via designern (och efter att ha kört modellen) kan du högerklicka på ett underordnat steg i modellen och välja showSelectedLayers View Output Layers. Detta lägger till utdatalagren från det steget som nya lager i det aktuella QGIS-projektet.

    Den här åtgärden är tillgänglig för alla underordnade algoritmer i modellen, även om modellen inte är konfigurerad för att använda utdata från dessa underordnade algoritmer som modellutdata. Denna åtgärd är avsedd att vara till hjälp vid felsökning. Om en modell misslyckas (eller ger oväntade resultat) kan du spåra den genom modellen och visa utdata för misstänkta problematiska steg. Det gör att man inte behöver lägga till tillfälliga utdata i en modell och köra om den för att testa.

    Dessutom är denna åtgärd alltid tillgänglig efter att modellen har körts, även om modellen i sig misslyckades (t.ex. på grund av ett felkonfigurerat steg senare i modellen).

  • Åtgärden View Log hjälper dig att se loggen för varje underordnad algoritm efter att du har stängt algoritmdialogen.