Stapelverarbeitung mit dem Processing Framework (QGIS3)

Das Processing Framework in QGIS ist eine Umgebung in QGIS, die es ermöglicht, zu QGIS gehörende Algorithmen oder solche von Drittanbietern zu Prozessierung von Daten einzusetzen. Es enthält eine schöne Bedienungsschnittstelle zur Ausführung von Berechnungen auf mehreren Layern. Die Stapelverarbeitung ist ein nützliches Tool, das Handarbeit verringert und dabei hilft, sich wiederholende Abläufe zu automatisieren.

Überblick über die Aufgabe

Wir werden mehrere globale Vektorlayer verwenden und sie mit Hilfe der Stapelverarbeitung auf die Ausdehnung Afrikas zuschneiden.

Weitere Fähigkeiten, die wir erlernen

  • Erstellen eines Filters um ungewollte Features eines Layers zu entfernen ohne einen neuen Layer zu erstellen.

  • Zusammenfügen mehrerer Layer zu einer Geopackage Datei.

Beschaffung der Daten

Unter Natural Earth findet man verschiedene globale Vektorlayer. Lade folgende Layer herunter.

Der Einfachheit halber kannst du eine geopackage Datei der o.g. Layer von folgendem link herunterladen:

ne_global.gpkg

Datenquelle: [NATURALEARTH]

Arbeitsablauf

  1. Gehe im QGIS Browser Bereich zum Verzeichnis in dem die heruntergeladenen Daten abgelegt sind. Erweitere die zip oder gpkg Dateien und wähle den ne_10m_admin_0_countries Layer. Ziehe den Layer in den Arbeitsbereich.

../../_images/119.png
  1. Der geladene Layer ist jetzt im Layerbereich sichtbar. Da unsere Aufgabe ist, die globalen Layer auf die Ausdehnung Afrikas zuzuschneiden, müssen wir zuerst einen Layer vorbereiten, der nur diesen Kontinent enthält. Wenn wir auf die Attributtabelle sehen, erkennen wir welche Attributspalte zur Selektion eines Kontinents genutzt werden kann. Klicke mit der rechten Maustaste auf den Layer ne_10m_admin_0_countries und wähle Attributtabelle öffnen.

Bemerkung

Tip: Man kann auch die Tastenkombination F6 verwenden, um die Attributtabelle des gewählten Layers zu öffnen.

../../_images/216.png
  1. Im Fenster Attributtabelle sieht man beim Scrollen nach rechts, dass der Datensatz das Attribut CONTINENT enthält. Wir können dieses Attribut nutzen, um Features zu filtern.

../../_images/314.png
  1. Schließe das Attributfenster und gehe zurück zum QGIS Hauptfenster. Klicke mit der rechten Maustaste auf den Layer ne_10m_admin_0_countries und wähle Filter.

../../_images/44.png
  1. In the Query Builder window, select the CONTINENT field and click Sample. This will populate the Values panel with the a subset of values of that attribute from features. This step is useful to get an understanding of what type of values are present in your dataset. We can see that our dataset contains a value called Africa among others.

../../_images/54.png
  1. Wir geben jetzt einen Ausdruck in der Textbox Datenanbieter spezifischer Filterausdruck ein. Man klickt dazu doppelt auf das CONTINENT Feld danach auf den Operator = und dann auf den Wert Africa. Man kann den folgenden Ausdruck auch in der Textbox eingeben. Kilcke nach Eingabe des Ausdrucks auf OK.

"CONTINENT" = 'Africa'
../../_images/64.png
  1. Wir sehen, dass das Kartenfenster jetzt nur noch die Länder Afrikas enthält. Achte auf das Filtersymbol neben neben dem Layernamen, das die Verwendung eines Filters anzeigt. Wenn man alle Features des Layers anzeigen möchte, klickt man auf das Filtericon und löscht den Ausdruck. Vorerst belassen wir den Filter, so dass wir aus den anderen Layern Afrika ausschneiden können.

../../_images/74.png
  1. Wir können nun die Stapelverarbeitung zum Ausschneiden der anderen Layer beginnen. Wir suchen folgende Layer im QGIS Browser Bereich: ne_10m_railroads, ne_10m_ports und ne_10m_urban_areas. Halte die Taste Ctrl gedrückt und klicke diese Layer an, um sie zu selektieren. Nachdem sie selektiert sind, schiebe sie in den Arbeitsbereich.

../../_images/84.png
  1. Nachdem die Layer geladen wurden, bemerken wir, dass die Layer Features in allen Ländern enthalten. Jetzt können wir die Stapelverarbeitung beginnen und diese Layer auf Afrika zuschneiden. Öffne Verarbeitung ‣ Werkzeugkiste.

../../_images/94.png
  1. Durchblättere die verfügbaren Algorithmen und gehe zum Tool Zuschneiden aus dem Bereich Vektorüberlagerung ‣ Zuschneiden. Wir können auch das Suche Feld, um den Algorithmus einfacher zu finden.

../../_images/107.png
  1. Klicke mit der rechten Maustaste auf den Zuschneiden Algorithmus und wähle Als Stapelprozess ausführen.

../../_images/1110.png
  1. Im Fenster Stapelverarbeitung werden im ersten Reiter Parameter die Eingabedaten festgelegt. Jede Zeile repräsentiert 1 Datenverarbeitungsaufgabe. Klicke auf den Zeile hinzufügen Knopf um eine neue Zeile hinzuzufügen. Da unsere Aufgabe 3 Layer betrifft, fügen wir 3 Zeilen hinzu.

../../_images/127.png
  1. Klicke auf neben der ersten Zeile in der Spalte Eingabelayer. Wähle :guilabel: Aus geöffneten Layern wählen….

../../_images/136.png
  1. Wähle aus dem Fenster Mehrfachauswahl die 3 Layer aus, die wir zuschneiden wollen und klicke auf OK.

../../_images/146.png
  1. Wir bemerken, dss die Eingabelayer Spalte automatisch mit den ausgewählten Layern gefüllt wird. Als nächstes müssen wir den Layer selektieren mit dem unsere Eingabelayer zugeschnitten werden. Klicke auf den Knopf in der ersten Zeile unter der Spalte Layer überlagern und wähle Aus geöffneten Layern wählen….

../../_images/156.png
  1. Wähle im Fenster Mehrfachauswahl den Layer ne_10m_admin_0_countries und klicke auf OK.

../../_images/166.png
  1. Da der Zuschneidelayer für alle Eingabelayer derselbe ist, geht es schneller doppelt auf den Spaltenkopf Layer überlagern zu klicken, um den Layer automatisch für alle Zeilen einzutragen.

../../_images/176.png
  1. Als nächstes müssen wir unsere Ausgabe vorgeben. Klicke auf den Knopf neben der ersten Zeile in der Spalte Zugeschnitten.

../../_images/184.png
  1. Wähle das Verzeichnis zur Ablage der Ausgabelayer aus. Gebe einen Dateinamen wie zugeschnitten_ an und klicke auf Speichern.

../../_images/194.png
  1. Wir sehen ein neues Fenster Autofüllmodus. Wähle Mit Parameterwerten füllen als Autofüllmodus aus. Wähle Eingabelayer als Zu benutzender Parameter. Diese Einstellung fügt den Dateinamen der Eingabedatei zur Bezeichnung der Ausgabedatei an den vergebenen Präfix zugeschnitten_ an. Das ist wichtig, weil damit jede Ausgabedatei einen eigenen Namen erhält und keine Datei überschrieben wird.

../../_images/204.png
  1. Jetzt können wir die Stapelverarbeitung beginnen. Achte darauf bei Layer bei Abschluss laden einen Haken zu setzen und klicke auf Starte.

../../_images/217.png
  1. The clip algorithm will run for each of the inputs and create output files as we have specified. Once the batch process finishes, click Close to return to QGIS.

Bemerkung

Tip: QGIS kann Berechnungen im Hintergrund ausführen ohne die Benutzeroberfläche zu blockieren. Bei langen Stapelverarbeitungsvorgängen kann man das Dialogfenster schließen und in QGIS weiterarbeiten, während die Berechnung im Hintergrund weiter läuft.

../../_images/224.png
  1. Im QGIS Fenster werden nun die neu hinzugefügten Layer angezeigt. Man bemerkt, dass die globalen Layer nun genau auf die angegebene Grenze zugeschnitten sind.

../../_images/234.png
  1. We have accomplished the task of clipping multiple layers in a batch. But QGIS3 has another handy feature that will help you save and deliver the result in a more efficient way. If you wanted to deliver the clipped layers to someone, you would zip the individual files outside of QGIS. A better option is to package the output layers in a single Geopackage. In the QGIS Browser, locate the clipped output layers. You may have to click the Refresh button to see the newly added files.

../../_images/244.png
  1. Halte die Taste Ctrl grückt und wähle die Layer aus. Ziehe sie in Arbeitsbereich, um sie in QGIS zu laden.

../../_images/254.png
  1. Finde in den Verarbeitungswerkzeugen das Tool Datenbank ‣ Paketlayer.

../../_images/263.png
  1. Klicke im Fenster Paketlayer auf den Knopf neben Eingabelayer.

../../_images/274.png
  1. Wähle im Mehrfachauswahlfenster folgende Layer: clipped_ne_10m_ports, clipped_ne_10m_railroads und clipped_ne_10m_urban_areas. Klicke auf OK.

../../_images/284.png
  1. Nachdem die Eingabelayer ausgewählt sind, klicke auf neben Ziel GeoPackage und wähle In Datei speichern.

../../_images/293.png
  1. Gebe für den Ausgabedateinamen clipped_layers ein.

../../_images/303.png
  1. Kilcke auf Starte um den Packprozess zu starten.

../../_images/315.png
  1. Nachdem die Berechnung abgeschlossen ist, sehen wir eine neue geopackage Datei im QGIS Browser, die alle zugeschnittenen Ausgabelayer enthält. Es handelt sich um eine einzelne lokal abgelegte Datei, die alle Ausgabelayer enthält.

../../_images/322.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)