26.6. De interface Batch-processing

26.6.1. Introductie

Alle algoritmes (inclusief modellen) kunnen worden uitgevoerd als een batch-proces. Dat is, zij kunnen niet slechts met één enkele set van invoer worden uitgevoerd, maar met meerdere daarvan, het algoritme net zo vaak uitvoerende als nodig is. Dit is handig bij het verwerken van grote hoeveelheden gegevens, omdat het niet nodig is het algoritme vele keren vanuit de Toolbox te starten.

Kik met rechts op de naam in de Toolbox en selecteer de optie Uitvoeren als batch-proces in het pop-upmenu dat verschijnt om een algoritme als een batch-proces uit te voeren.

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

Fig. 26.30 Batch-proces met rechtsklikken

Indien u het dialoogvenster van de uitvoering van het algoritme hebt geopend, kunt u van daar uit ook de interface voor het batch-proces starten, klik op de knop Run as batch process….

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

Fig. 26.31 Batch-proces vanuit dialoogvenster van algoritme

26.6.2. De tabel met parameters

Uitvoeren van een batch-proces is soortgelijk aan het eenmalig uitvoeren van een algoritme. Waarden voor parameters moeten worden gedefinieerd, maar in dit geval hoeven we niet één enkele waarde voor elke parameter op te geven, maar in plaats daarvan een set, één voor elke keer dat het algoritme moet worden uitgevoerd. Waarden worden ingevoerd met behulp van een tabel zoals die welke hierna wordt weergegeven, waar elke rij een doorloop is en kolommen de parameters van het algoritme zijn.

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

Fig. 26.32 In batch verwerken

Vanaf de bovenste werkbalk kunt u:

  • symbologyAdd Regel toevoegen: voegt een nieuw item voor configuratie voor Processing toe.

  • symbologyRemove Rij(en) verwijderen: verwijdert geselecteerde rijen uit de tabel. Selecteren van rijen wordt gedaan door te klikken op het nummer links en staat de combinatie voor het toetsenbord voor meervoudige selectie toe.

  • fileOpen Open een configuratiebestand voor verwerken van batch in Processing

  • fileSave Opslaan de configuratie van batch voor Processing opslaan naar een bestand .JSON dat later kan worden uitgevoerd

Standaard bevat de tabel slechts twee rijen:

  • De eerste rij geeft in elke cel een keuzemenu Autom. vullen… ► met opties om snel de cellen eronder te vullen. Beschikbare opties zijn afhankelijk van het type parameter.

  • De tweede regel (als ook elke daarop volgende) vertegenwoordigt één enkele uitvoering van het algoritme, en elke cel bevat de waarde van één van de parameters. Het is soortgelijk aan het dialoogvenster Parameters dat u ziet bij het uitvoeren van een algoritme vanuit de Toolbox, maar met een andere schikking.

Aan de onderzijde van de tabel, kunt u instellen of checkbox Lagen laden bij voltooien moet worden uitgevoerd.

Als de grootte van de tabel eenmaal is ingesteld, moet die worden gevuld met de gewenste waarden.

26.6.3. Vullen van de tabel met parameters

Voor de meeste parameters is het instellen triviaal. De van toepassing zijnde widget, hetzelfde als in het dialoogvenster voor één proces, wordt verschaft, wat het mogelijk maakt eenvoudigweg de waarde in te typen, of die te selecteren uit een lijst met mogelijke waarden, afhankelijk van het type parameter. Dit is inclusief, indien compatibel, voor de widget data-bepaald.

Voor het automatiseren van de definitie van het proces voor de batch en het vermijden van het cel na cel vullen van de tabel, wilt u misschien het menu Autom. vullen… van een parameter openen met het pijltje ernaast en een van de volgende opties selecteren om waarden in de kolom te vervangen:

  • Naar beneden vullen zal de invoer voor het eerste proces nemen en dat in alle andere processen invoeren.

  • calculateField Berekenen met expressie… zal u toestaan een nieuwe expressie voor QGIS te maken om te gebruiken voor het bijwerken van alle bestaande waarden binnen die kolom. Bestaande waarden voor parameters (inclusief die uit andere kolommen) zijn beschikbaar om te gebruiken binnen de expressie via variabelen. Bijv. instellen van het aantal segmenten, gebaseerd op de bufferafstand van elke laag:

    CASE WHEN @DISTANCE > 20 THEN 12 ELSE 8 END
    
  • Waarden toevoegen met expressie… zal nieuwe rijen toevoegen met de waarden vanuit een expressie die een array teruggeeft (tegengesteld aan Bereken met expressie…, die alleen op bestaande rijen werkt). Het bedoelde geval voor het gebruiken is om het mogelijk te maken het dialoogvenster voor de batch te vullen met complexe numerieke series. Bijvoorbeeld het toevoegen van rijen voor elke batch-buffer met de expressie generate_series(100, 1000, 50) voor de parameter voor de afstand resulteert in nieuwe rijen met de waarden 100, 150, 200, … 1000.

  • Bij het instellen van parameters voor een bestand of laag worden opties verschaft:

    • Bestanden toevoegen op patroon…: voegt nieuwe rijen toe aan de tabel voor bestanden waarvan de naam overeenkomt met een Patroon bestand in een map Kijken in. Bijv. *.shp zal alle bestanden SHP in de map toevoegen aan de lijst. Selecteer checkbox Recursief zoeken om ook in submappen te zoeken.

    • Bestanden selecteren… individueel op schijf

    • Alle bestanden uit een map toevoegen…

    • Uit geopende lagen selecteren… in het actieve project

Parameters voor de uitvoergegevens geven dezelfde mogelijkheden weer als bij het uitvoeren van het algoritme als één enkel proces. Afhankelijk van het algoritme, kan de uitvoer:

  • worden overgeslagen, als de cel leeg is

  • als een tijdelijk bestand worden opgeslagen: vult de cel met TEMPORARY_OUTPUT en onthoud om het keuzevak checkbox Lagen laden bij voltooien te selecteren.

  • worden opgeslagen als een gewoon bestand (.SHP, .GPKG, .XML, .PDF, .JPG,…) waarvan het pad kan worden ingesteld met de opties voor Autom. vullen zoals eerder weergegeven. Bijv. gebruiken van Berekenen met expressie… om de namen voor uitvoerbestanden voor complexe expressies in te stellen als:

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

    U kunt ook het bestandspad direct intypen of het dialoogvenster voor het kiezen van een bestand gebruiken dat verschijnt bij het klikken op de betreffende knop . Als u eenmaal het bestand hebt geselecteerd, wordt een nieuw dialoogvenster weergegeven om automatisch vullen voor andere cellen in dezelfde kolom mogelijk te maken (dezelfde parameter).

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

    Fig. 26.33 Opslaan Batch-proces

    Als de standaardwaarde (Niet automatisch aanvullen) is geselecteerd, zal het eenvoudigweg de geselecteerde bestandsnaam in de geselecteerde cel van de tabel met parameters zetten. Als een van de andere opties is geselecteerd, zullen alle cellen onder de geselecteerde automatisch worden gevuld, gebaseerd op gedefinieerde criteria.

    • Vullen met getallen: voegt een automatisch verhogend nummer toe aan de bestandsnaam

    • Vullen met parameterwaarden: u kunt een parameter selecteren waarvan de waarde in dezelfde rij wordt toegevoegd aan de bestandsnaam. Dit is in het bijzonder nuttig voor het benoemen van objecten van de uitvoergegevens overeenkomstig die van de invoer.

  • worden opgeslagen als een laag binnen een container voor een database:

    # 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)'
    

26.6.4. Uitvoeren van het batch-proces

Klik eenvoudigweg op Uitvoeren om het batch-proces uit te voeren als u eenmaal alle noodzakelijke waarden hebt ingevuld. Het paneel Log wordt geactiveerd en geeft details en stappen van de uitvoering weer van het uitvoeringsproces. De voortgang van de globale taak voor de batch zal worden weergegeven in de voortgangsbalk aan de onderzijde van het dialoogvenster.