17.26. De interface Batch-processing

Notitie

Deze les introduceert de interface voor Batch-processing, die het mogelijk maakt één enkel algoritme uit te voeren met een set van verschillende invoerwaarden.

Soms moet een bepaald algoritme herhaaldelijk worden uitgevoerd met verschillende invoer. Dit is bijvoorbeeld het geval als een set invoerbestanden moeten worden geconverteerd vanuit de ene indeling naar een andere, of wanneer verscheidene lagen in een bepaalde projectie moeten worden geconverteerd naar een andere projectie.

In dat geval is het herhaaldelijk aanroepen van het algoritme vanuit de Toolbox niet de beste optie. In plaats daarvan zou de interface Batch-processing moeten worden gebruikt, die het meerdere malen uitvoeren van een bepaald algoritme enorm vereenvoudigd. Zoek het in de Toolbox en, in plaats van erop te dubbelklikken, klik met rechts en selecteer Uitvoeren als batch-proces om een algoritme als een batch-proces uit te voeren,

../../../_images/batch_menu.png

Voor dit voorbeeld zullen we het algoritme Reproject algorithm gebruiken, dus zoek het op en doe zoals hierboven beschreven. U zult het volgende dialoogvenster krijgen.

../../../_images/batch_dialog.png

Als u naar de gegevens voor deze les kijkt, zult u zien dat het drie shapefiles bevat, maar geen projectbestand voor QGIS. Dat is omdat, wanneer een algoritme wordt uitgevoerd als een batch-proces, invoer als lagen kunnen worden geselecteerd ofwel vanuit het huidige project van QGIS of vanuit bestanden. Dat maakt het eenvoudiger grote aantallen lagen te verwerken, zoals, bijvoorbeeld, alle lagen in een bepaalde map.

Elke rij in het dialoogvenster van Batch-processing vertegenwoordigt één enkele uitvoering van het algoritme. Cellen in een rij corresponderen met de benodigde parameter voor het algoritme, die niet boven elkaar zijn geschikt zoals in het normale dialoogvenster voor eenmalige uitvoering, maar horizontaal in die rij.

Definiëren van het uit te voeren batch-proces is er een van het vullen van de tabel met de corresponderende waarden, en het dialoogvenster zelf bevat verscheidene gereedschappen om deze taak eenvoudiger te maken.

Laten we beginnen met het één voor één vullen van de velden. De eerste kolom om te vullen is die van de Input layer. In plaats van de namen in te voeren van elk van de lagen die we willen verwerken, kunt u ze allemaal selecteren en het dialoogvenster er één in elke rij laten plaatsen. Klik op de knop in de cel linksboven, en selecteer in het dialoogvenster voor bestandsselectie dat zal verschijnen, selecteer de drie bestanden om opnieuw te projecteren. Omdat één ervan nodig is voor elke rij, zullen de resterende gebruikt worden om de rijen eronder te vullen.

../../../_images/first_column_filled.png

Het standaard aantal rijen is 3, wat exact het aantal lagen is dat we moeten converteren, maar als u meer lagen selecteert, zullen automatisch nieuwe rijen worden toegevoegd. Als u de items handmatig wilt vullen, kunt u meer rijen toevoegen met behulp van de knop Add row.

We gaan al deze lagen converteren naar het CRS EPSG:23029, dus moeten we dat CRS selecteren in het tweede veld. We willen hetzelfde voor alle rijen, dus we hoeven het niet voor elke individuele rij te doen. In plaats daarvan, stel dat CRS in voor de eerste rij (die bovenaan) met behulp van de knop in de overeenkomstige cel, en dubbelklik dan op de kolomkop. Dat zorgt er voor dal alle cellen in de kolom worden gevuld met behulp van de waarde in de bovenste cel.

../../../_images/second_column_filled.png

Tenslotte zullen we een uitvoerbestand moeten selecteren voor elke uitvoering, wat de overeenkomstige opnieuw geprojecteerde laag zal bevatten. Nogmaals, laten we dat doen voor alleen de eerste rij. Klik op de knop in de bovenste cel en voer, in een map waar u uw uitvoerbestanden wilt plaatsen, een bestandsnaam in (bijvoorbeeld reprojected.shp).

Nu, wanneer u op OK klikt in het dialoogvenster voor bestandsselectie, wordt het bestand niet automatisch weggeschreven naar de cel, maar in plaats daarvan wordt een invoervak weergegeven zoals dat wat hieronder wordt getoond.

../../../_images/autofill.png

Indien u de eerste optie selecteert zal alleen de huidige cel worden gevuld. Als u een van de andere opties selecteert, zullen alle rijen daaronder worden gevuld met een bepaald patroon. In dit geval selecteren we de parameter-optie Vullen met parameterwaarden, en voeren dan de waarde Input Layer in in het keuzemenu eronder. Dat zal er voor zorgen dat de waarde in Input Layer (dat is de laagnaam) zal worden toegevoegd aan de bestandsnaam die we al hebben toegevoegd, wat elke bestandsnaam voor de uitvoer anders maakt. De tabel voor het batch-proces zou er nu zo uit moeten zien.

../../../_images/complete.png

De laatste kolom stelt in of de resulterende lagen al dan niet worden toegevoegd aan het huidige project van QGIS project. Laat de standaard optie Yes staan, zodat u in dit geval uw resultaten kunt zien.

Klik op OK en het batch-proces zal worden uitgevoerd. Als alles goed ging zouden al uw lagen moeten zijn verwerkt en zouden 3 nieuwe lagen moeten zijn gemaakt.