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.
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:
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.
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:
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 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: