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.6. Gränssnittet för batchbehandling

23.6.1. Introduktion

Alla algoritmer (inklusive modeller) kan exekveras som en batchprocess. Det innebär att de inte bara kan exekveras med en enda uppsättning indata, utan med flera, och att algoritmen kan exekveras så många gånger som behövs. Detta är användbart vid bearbetning av stora datamängder, eftersom det inte är nödvändigt att starta algoritmen många gånger från verktygslådan.

Om du vill köra en algoritm som en batchprocess högerklickar du på dess namn i verktygslådan och väljer alternativet Execute as batch process i popup-menyn som visas.

../../../_images/batch_processing_right_click.png

Fig. 23.31 Batchbehandling från högerklick

Om du har algoritmens exekveringsdialog öppen kan du också starta batchbehandlingsgränssnittet därifrån genom att klicka på knappen Run as batch process….

../../../_images/parameters_dialog.png

Fig. 23.32 Batchbehandling från algoritmdialog

23.6.2. Parametertabellen

Att köra en batchprocess liknar att köra en enda exekvering av en algoritm. Parametervärdena måste definieras, men i det här fallet behöver vi inte bara ett enda värde för varje parameter, utan en uppsättning av dem, ett för varje gång algoritmen måste köras. Värdena anges med hjälp av en tabell som den som visas här intill, där varje rad är en iteration och kolumnerna är algoritmens parametrar.

../../../_images/batch_processing.png

Fig. 23.33 Batchbehandling

Från det övre verktygsfältet kan du:

  • processingAlgorithm Skifta till avancerat läge: Denna knapp är endast tillgänglig när algoritmen har parametrar som är markerade som avancerade och gör det möjligt att visa eller dölja sådana parametrar i batchdialogen.

  • symbologyAdd Add row: lägger till en ny bearbetningspost för konfiguration

  • symbologyRemove Remove row(s): ta bort valda rader från tabellen. Radval görs genom att klicka på numret till vänster och tillåter :ref:``tangentbordskombination <interacting_features_table>` för flerval.

  • fileOpen Öppna en konfigurationsfil för batchbehandling

  • fileSave Spara konfigurationen för batchbearbetning till en .JSON-fil som kan köras i efterhand

Som standard innehåller tabellen bara två rader:

  • Den första raden visar i varje cell en Autofill… ► rullgardinsmeny med options för att snabbt fylla cellerna nedanför. Vilka alternativ som är tillgängliga beror på parametertypen.

  • Den andra raden (liksom varje efterföljande rad) representerar en enda exekvering av algoritmen, och varje cell innehåller värdet för en av parametrarna. Den liknar dialogrutan Parametrar som du ser när du kör en algoritm från verktygslådan, men med ett annat arrangemang.

Längst ner i tabellen kan du ställa in om du vill att checkbox Load layers on completion.

När bordets storlek har fastställts måste det fyllas med de önskade värdena.

23.6.3. Fylla i parametertabellen

För de flesta parametrar är det trivialt att ställa in värdet. Den lämpliga widgeten, samma som i single process dialog, tillhandahålls, så att du bara kan skriva in värdet eller välja det från en lista med möjliga värden, beroende på parametertypen. Detta inkluderar även data-definieringswidget, när den är kompatibel.

För att automatisera definitionen av batchprocessen och undvika att fylla tabellen cell för cell, kan du trycka ned Autofill…-menyn för en parameter och välja något av följande alternativ för att ersätta värden i kolumnen:

  • Fill Down tar inmatningen för den första processen och matar in den för alla andra processer.

  • calculateField Calculate by Expression… gör att du kan skapa ett nytt QGIS-uttryck som används för att uppdatera alla befintliga värden i kolumnen. Befintliga parametervärden (inklusive de från andra kolumner) är tillgängliga för användning i uttrycket via variables. T.ex. inställning av antalet segment baserat på buffertavståndet för varje lager:

    CASE WHEN @DISTANCE > 20 THEN 12 ELSE 8 END
    
  • Add Values by Expression… lägger till nya rader med värdena från ett uttryck som returnerar en matris (i motsats till Calculate by Expression…, som bara fungerar på befintliga rader). Det avsedda användningsfallet är att göra det möjligt att fylla i batchdialogrutan med komplexa numeriska serier. Om du t.ex. lägger till rader för en batchbuffert med uttrycket generate_series(100, 1000, 50) för avståndsparametern resulterar det i nya rader med värdena 100, 150, 200, …. 1000.

  • När du ställer in en fil- eller lagerparameter finns det fler alternativ:

    • Add Files by Pattern…: lägger till nya rader i tabellen för filer som matchar ett File pattern i en mapp att Look in. T.ex. kommer *.shp att lägga till alla SHP-filer i mappen i listan. Markera checkbox Sök rekursivt för att även bläddra i undermappar.

    • Välj filer… individuellt på hårddisken

    • Lägg till alla filer från en katalog…

    • Välj från Öppna lager… i det aktiva projektet

Output data parameter exponerar samma funktioner som när algoritmen exekveras som en enskild process. Beroende på algoritmen kan utdata vara:

  • hoppas över, om cellen lämnas tom

  • sparas som ett tillfälligt lager: fyll cellen med TEMPORARY_OUTPUT och kom ihåg att kryssa i kryssrutan checkbox Load layers on completion.

  • sparas som en vanlig fil (.SHP, .GPKG, .XML, .PDF, .JPG,…) vars sökväg kan ställas in med Autofill-alternativen som exponerats i förväg. Använd t.ex. Calculate by Expression… för att ställa in utdatafilnamn till komplexa uttryck som:

    '/home/me/stuff/buffer_' || left(@INPUT, 30) || '_' || @DISTANCE || '.shp'
    

    Du kan också skriva in filsökvägen direkt eller använda den dialogruta för filval som visas när du klickar på den tillhörande -knappen. När du har valt fil visas en ny dialogruta för automatisk komplettering av andra celler i samma kolumn (samma parameter).

    ../../../_images/batch_processing_save.png

    Fig. 23.34 Batchbehandling Spara

    Om standardvärdet (Do not autofill) väljs kommer det valda filnamnet bara att placeras i den valda cellen i parametertabellen. Om något av de andra alternativen väljs kommer alla celler under den valda att fyllas i automatiskt baserat på ett definierat kriterium:

    • Fyll med siffror: lägger stegvis till en siffra till filnamnet

    • Fyll med parametervärden: du kan välja en parameter vars värde i samma rad läggs till filnamnet. Detta är särskilt användbart för att namnge utdataobjekt enligt indataobjekt.

  • sparas som ett lager i en databasbehållare:

    # Indicate a layer within a GeoPackage file
    ogr:dbname='C:/Path/To/Geopackage.gpkg' table="New_Table" (geom)
    
    # Use the "Calculate By Expression" to output to different layers in a GeoPackage
    'ogr:dbname=\'' || @project_folder || '/Buffers.gpkg\' table="' || @INPUT || '_' || @DISTANCE || '" (geom)'
    

23.6.4. Exekvering av batchprocessen

För att köra batchprocessen när du har angett alla nödvändiga värden klickar du bara på Run. Panelen Log aktiveras och visar detaljer och steg i exekveringsprocessen. Förloppet för den globala batchuppgiften visas i förloppsindikatorn i den nedre delen av dialogrutan.