Community • 23. Mai 2024

Ein Modell im Modell für mehr Ordnung im QGIS-Workflow

Mit der Graphischen Modellierung von QGIS lassen sich neue Verarbeitungswerkzeuge erstellen, die komplexe Arbeitsabläufe automatisieren. Größere Modelle werden allerdings sehr schnell unübersichtlich, so dass es sich lohnt diese in einzelne, spezifische Modelle zu zerlegen und anschließend in ein großes, komplexes Modell zu überführen. Das vereinfacht nicht nur die Erstellung und Wartung von Modellen, sondern ermöglicht auch eine einfache Wiederverwendung einzelner Teile für andere Zwecke. Basis dafür ist die praktische Möglichkeit der Einbindung von einmal erstellten Modellen als eigene Verarbeitungswerkzeuge in andere Modelle.

In diesem Artikel stellen wir Ihnen die Vorgehensweise anhand eines kartografischen Projektes vor. Sie erfahren, wie Verarbeitungswerkzeuge im Modeller zu einem neuen Algorithmus verknüpft werden und wie Sie Stile automatisiert einem Layer zuweisen können.

Topologische Einfärbung von Flächen berechnen

In der Mathematik gibt es den 4-Farben-Satz. Er besagt, dass vier Farben ausreichen, um angrenzende Flächen so einzufärben, dass benachbarte Flächen nie dieselbe Farbe haben, solange es keine Exklaven gibt. QGIS bietet das Werkzeug Topologische Einfärbung (native:topologicalcoloring), welches für einen Polygon-Layer je Fläche eine entsprechende Farbklasse berechnet.

Im Beispiel verwenden wir dafür den world-Datensatz, welchen QGIS bereits mitbringt: Geben Sie dafür "world" im Koordinatenfeld unten im QGIS-Fenster ein und drücken Sie die Eingabetaste. Für diesen Layer anschließend das Werkzeug Topologische Einfärbung ausführen. Das Ergebnis ist ein neuer Datensatz mit der Spalte color_id, welche mittels unterschiedlicher Zahlen die Farben repräsentiert. Aufgrund der Exklaven entstehen hier 5 verschiedene Klassen. Für eine farbliche Visualisierung muss nun der Layer - kategorisiert nach dieser Spalte - eingefärbt werden. Dazu müssen die gewünschten Farben definiert und zugewiesen werden. Das Ergebnis kann dann zum Beispiel wie folgt aussehen:

Ein Modell für die Einfärbung

Die Lösung gefällt uns und wir wollen das Prinzip auf weitere Layer übertragen, um diese ebenfalls topologisch einzufärben. Allerdings erscheint es uns als sehr aufwendig, die Farbpalette jedes Mal wieder neu zuweisen zu müssen...

Unser Tipp für Sie, denn es gibt einen besseren Weg.

Wir erstellen den Stil einmal, speichern ihn als QML-Stildatei ab und bauen ein Modell, welches zuerst den Algorithmus Topologische Einfärbung auf den Eingabe-Layer anwendet und dem Ergebnis-Layer anschließend den gespeicherten Stil zuweist.

Dieses Modell können wir nun als neues Verarbeitungswerkzeug zu unserem QGIS-Profil hinzufügen. Durch die Modell-Eigenschaften Name "Topologisch einfärben mit Stil" und Gruppe "Kartographie" wird es in die Sammlung der Verarbeitungswerkzeuge einsortiert.

Wir können dieses Modell nun wie jedes andere Verarbeitungswerkzeug aufrufen und verwenden. Ein Unterschied zu bereits vorhanden Werkzeugen ist nicht zu erkennen. Möglich ist auch, eine Hilfe mit Hinweisen zur Nutzung des Modells zu erzeugen oder es um weitere Parameter oder Arbeitsschritte zu erweitern.

Das Modell im Modell

Die auf diese Art und Weise in einem Modell gekapselte Funktionslogik können wir nun als Algorithmus in anderen Modellen einsetzen - zum Beispiel um die fertig prozessierten und gestylten Polygone mit dem Tool "Layer verpacken (native:package) in einem GeoPackage zu speichern. Dieses graphische Modell könnten wir ebenfalls wieder als Werkzeug zu den Verarbeitungswerkzeugen hinzufügen.

Die Vorteile dieser Lösung:

  1. Das erste Modell kann auch unabhängig vom zweiten Modell genutzt werden.
  2. Die Nutzung ist nicht auf die Graphische Modellierung beschränkt
  3. Auch der Aufruf durch ein Python-Skript oder die Konsole ist möglich.
  4. Bei weiterem Anpassungsbedarf könnte man das Modell von QGIS auch in Python-Code umwandeln lassen, der ebenso als neues Verarbeitungswerkzeug eingebunden werden könnte.

Fazit

Mit der Graphische Modellierung in QGIS können Sie neue Verarbeitungswerkzeuge erstellen, die sich auch in anderen Modellen verwenden lassen. Für Anwender und Anwenderinnen ist der Unterschied nicht sichtbar.

Wiederkehrende Arbeitsabläufe lassen sich gut automatisieren und warten.

Unser Tipp zum Schluss: In den meisten Fällen lohnt es sich bei der der Implementation von Workflows in QGIS zunächst die Graphische Modellierung anzuwenden und nur besondere Arbeitsschritte, die sich nicht damit umsetzen lassen, mit eigenem Python-Code zu implementieren. Das spart Zeit und Aufwand bei Anpassungen.

Weitere Beiträge, die Dich interessieren könnten:

Hannes Kroeger

Johannes Kröger

Nach einem Abschluss als Master of Science Geomatik an der HafenCity Universität Hamburg arbeitete Johannes Kröger mehrere Jahre als Wissenschaftlicher Mitarbeiter im dortigen Lab for Geoinformatics and Geovisualization (g2lab) in der Lehre und Forschung. Seit März 2020 ist er als GIS-Entwickler und -berater bei der WhereGroup tätig. Johannes Kröger ist auch privat im Umfeld von Kartografie, Open-Data und FOSSGIS aktiv.

Dr. -Ing. Mathias Gröbe

Mathias Gröbe hat Kartographie an der TU Dresden studiert und arbeitet als GIS-Experte bei der WhereGroup. Er ist in Dresden zu hause und verbindet seine Wanderungen gerne mit dem Ergänzen von fehlenden Informationen in OpenStreetMap.

Artikel teilen: