17.26. Die Schnittstelle zur Stapelverarbeitung
Bemerkung
In dieser Lektion lernen wir die Schnittstelle zur Stapelverarbeitung kennen. Mit ihrer Hilfe können wir einen einzelnen Algorithmus mit mehreren Eingabewerten starten.
Manchmal ist es erforderlich, einen Algorithmus mehrmals mit verschiedenen Eingaben auszuführen. Das ist z.B. der Fall, wenn mehrere Eingabedateien von einem Format in ein anderes konvertiert werden sollen oder wenn Dateien von einer Projektion in eine andere umgewandelt werden müssen.
In diesem Fall ist der wiederholte Aufruf des Algorithmus aus der Werkzeugkiste nicht der optimale Weg. Stattdessen kann man die Stapelverarbeitung verwenden, die die wiederholte Ausführung eines Algorithmus stark vereinfacht. Um einen Algortihmus aus der Werkzeugkiste im Rahmen der Stapelverarbeitung zu starten, klickt man nicht wie sonst doppelt auf den Algorithmus sonder mit der rechten Maustaste und wählt dann Als Stapelprozess ausführen….
In diesem Beispiel verwenden wir den Algorithmus Reprojizieren. Finden Sie ihn und gehen Sie dann wie beschrieben vor. Wir sehen nun den folgenden Dialog.
Wenn wir uns die Daten dieser Lektion ansehen, bemerken wir drei shape-Dateien aber keine QGIS Projektdatei. Wenn ein Algorithmus als Stapelprozess aufgerufen wird, können die Layer sowohl aus dem QGIS Projekt als auch aus einer Datei gewählt werden. Das macht es einfacher, eine große Anzahl an Layern zu verarbeiten, z.B. alle Layer unter einem bestimmten Dateipfad.
Jede Zeile in der Tabelle der Stapelverarbeitung steht für die einmalige Ausführung des Algorithmus. Die Zellen in einer Zeile stehen für die vom Algorithmus verwendeten Parameter. Sie sind nicht einer über dem anderen, wie sonst üblich, sondern nebeneinander angeordnet.
Die Definition des Stapelverarbeitungsprozesses besteht darin, die Tabelle auszufüllen. Der Dialog enthält dazu einige Hilfsmittel.
Lassen Sie uns die Felder eines nach dem anderen füllen. Die erste zu füllende Spalte ist Eingabelayer. Anstelle jeden Layer einzeln einzugeben, können wir alle Layer gleichzeitig wählen. Die Stapelverarbeitung fügt sie in jeweils neue Zeilen ein. Klicken Sie auf die Schaltfläche in der Zelle oben links. Wählen Sie in der nun geöffneten Dateiauswahl die drei zu reprojizierenden Dateien aus. Da nur eine Datei je Zeile benötigt wird, werden die anderen Dateien zum Füllen der Zeilen darunter verwendet.
Als Voreinstellung werden 3 Zeilen angezeigt, genau so viele wie wir benötigen. Wenn Sie mehr Layer auswählen werden zusätzliche Zeilen angelegt. Wenn Sie die Einträge manuell füllen möchten, können Sie neue Zeilen mit Hilfe der Schaltfläche Zeile hinzufügen einfügen.
Wir werden alle Layer in das KBS EPSG:23029 konvertieren. Wir müssen daher dieses KBS im zweiten Feld eintragen. Wir wollen dasselbe KBS für alle Zeilen verwenden. Es reicht, das KBS in der ersten Zeile (ganz oben) einzutragen und den Eintrag anschließend durch Doppelklick auf den Tabellenkopf in die anderen Zellen zu übernehmen.
Als Letztes müssen wir eine Ausgabedatei für jede Ausführung wählen. Wir beginnen mit der ersten Zeile. Klicken Sie auf die Schaltfläche in der obersten Zelle und vergeben Sie einen Dateinamen im gewünschten Ordner (z.B. reprojiziert.shp
).
Nachdem Sie auf die OK Schaltfläche gedrückt haben, erscheint ein neues Fenster wie dieses.
Wenn Sie die erste Option wählen, wird nur die aktuelle Zelle gefüllt. Wenn Sie etwas anderes wählen, werden alle folgenden Zeilen nach einem bestimmten Muster gefüllt. Wir wählen Mit Parameterwerten füllen und in der Auswahl darunter Eingabelayer. Das führt dazu, dass an den von uns gewählten Dateinamen der Wert Eingabelayer (das ist der Layername) angehängt wird. Damit erhält jede Ausgabe einen anderen Dateinamen. Die Stapelverarbeitung sollte nun wie folgt aussehen.
In der letzten Spalte wird eingstellt, ob der Ergebnislayer im aktuellen QGIS Projekt geladen werden soll. Belassen Sie die Einstellung bei Ja, um die Ergebnisse anzuzeigen.
Klicken Sie auf Starte, um die Stapelverarbeitung zu beginnen. Wenn alles klappt, werden alle Ihrer Layer verarbeitet und 3 neue Layer erstellt.