Software • 24. November 2021

Verwaltung von QGIS-Profilen mit dem Plugin „Profil-Manager“

QGIS bietet eine Fülle von Einstellungs- und Anpassungsmöglichkeiten für Nutzerinnen und Nutzer – viele Funktionalitäten wie der Quell-Browser, Python-Skripte, eigene Symbole, Variablen und Funktionen lassen sich individuell konfigurieren. Angelegt und gespeichert wird die persönliche Konfiguration im entsprechenden QGIS-Profil. Für diverse Vorhaben oder Zwecke können so zielgerichtet Profile erstellt werden. Der Austausch von speziellen Einstellungen zwischen den Profilen ist jedoch in QGIS nicht automatisiert möglich, was die Arbeit mit unterschiedlichen Profilen teilweise schwerfällig macht.

Um die Nutzung und Verwaltung verschiedener Profile in QGIS zu erleichtern, hat die WhereGroup das Plugin „Profil-Manager“ entwickelt. Dieses steht in einer ersten Beta-Version allen interessierten Nutzer*innen zur Verfügung. 

Problematik der QGIS-Profile und deren Verwaltung

Die Verwaltung von Profilen ist in QGIS nur eingeschränkt möglich. So bietet QGIS in der aktuellen Version keine Funktion, um Profile zu kopieren oder zu bearbeiten.

Der wesentliche Aufwand bei der Nutzung unterschiedlicher Profile besteht somit darin, dass jedes neue Profil leer startet und einzeln manuell konfiguriert werden muss. Wurden beispielsweise bereits WMS-Quellen und Datenbankverbindungen angelegt, stehen sie im neuen Profil nicht automatisch zur Verfügung. Es besteht zwar die Möglichkeit, die Verbindungen manuell ins neue Profil zu kopieren – dies ist jedoch arbeitsaufwendig und birgt ein hohes Fehlerpotenzial.

Vorteile durch die Nutzung des Profil-Managers

Im Vergleich zum manuellen Kopieren der Profildaten oder dem Neu-Anlegen eines Profils bietet der QGIS-Profil-Manager zwei wesentliche Vorteile:

An erster Stelle steht die Zeitersparnis. Der QGIS-Profil-Manager ermöglicht es, statt der händischen Erstellung von Kopien, Datenquellen und Datenbankverbindungen mit nur wenigen Klicks ein fertiges neues Profil einzufügen. Damit sinkt naturgemäß die Fehleranfälligkeit des Kopiervorgangs. Zudem wird zur Sicherheit vor jeder Aktion automatisiert ein Backup des aktuellen Profils angelegt.

Technische Umsetzung eines QGIS-Profils

Im Wesentlichen besteht ein QGIS-Profil aus einer einzigen (.ini-)Textdatei: "C:\Users\{USER]\AppData\Roaming\QGIS\QGIS3\profiles\default\QGIS\QGIS3.ini".

In dieser Datei sind die wichtigsten Informationen, wie Datenbankanbindungen und Kartendienste des Profils, als Wertepaare festgehalten.

Beispiel WMS-Verbindungen:

Beispiel Datenbank-Verbindungen:

Bookmarks sind in einer weiteren .ini-Datei angelegt, während Dinge wie Custom-Symbole, Labels und Texteinstellungen in der SQL-Datenbank “symbology-style.db” hinterlegt sind. Eine kleine Besonderheit sind Skripte, Modelle und andere Plugins, welche jeweils in den Verzeichnissen “/processing” und “/python/plugins/” im QGIS-Profilverzeichnis liegen.

Entwicklung des QGIS-Plugins

Der erste Schritt bei der Entwicklung des Profil-Managers war natürlich der Blick in die PyQGIS-Dokumentation. Leider hat sich dabei recht schnell gezeigt, dass PyQGIS kaum Funktionen bietet, um die Profile und deren Inhalte über die API anzusprechen. Lediglich die Erzeugung eines neuen Profils war mithilfe der API möglich.

Um aber auch die Inhalte eines Profils verwalten zu können, musste für den Profil-Manager ein anderer Weg eingeschlagen werden. Da die meisten Information in Form von Text gespeichert werden, bot sich als Nächstes der Einsatz des ConfigParser von Python an.

Dieser Parser kann .ini, also Config-Dateien, öffnen bzw. lesen und bietet Funktionen, um gezielt an Informationen zu kommen. Zuerst wird der ConfigParser initialisiert und die Datei eingelesen, danach wird geprüft, ob z. B. die Section “qgis” in der Datei vorhanden ist.

In der qgis.ini wäre das die “qgis-Section”:

Auf dem Screenshot ist zu sehen, dass jede Section durch eine eingeklammerte Überschrift gekennzeichnet ist. Mit dem ConfigParser können so gezielt einzelne Sections ausgelesen und gefiltert werden.

Mit der “set-Funktion” des ConfigParsers kann festgesetzt werden, welche Daten in die Zieldatei geschrieben werden sollen. Diese werden letztendlich in der neuen Datei an dieselbe Stelle geschrieben. Zusammengefasst sieht das bei den Datenbankverbindungen so aus:

Die gleiche Vorgehensweise kann für Datenquellen wie WMS-Dienste, QGIS-Interface Anpassungen und Funktionen/Expressions angewandt werden.

Bookmarks werden ähnlich ausgelesen, allerdings sind diese als XML definiert und werden daher mit einem entsprechenden XML-Parser ausgelesen.

Dinge wie weitere Plugins, Python-Skripte oder Modelle sind in separaten Verzeichnissen gespeichert und können so leicht in ein neues Profil kopiert werden. Python bietet hierfür gute Werkzeuge, so auch für die “Styles” und “Labels”, die in QGIS definiert werden können. Mit der Python-Library “sqlite3” lassen sich diese mit wenigen querys auslesen und in die neue Datenbank schreiben.

Anwendung und Funktionalitäten des QGIS-Profil-Managers

Die Anwendung des QGIS-Profil-Managers ist einfach und selbsterklärend. Nach dem Öffnen wird zunächst die Standard-Profilverwaltung angezeigt:

Hier können Profile erstellt, kopiert, umbenannt und gelöscht werden. Nach erfolgreicher Durchführung der jeweiligen Aktionen erscheint ein Popup-Fenster, welches diese bestätigt. Bei der Option “Löschen” wird zusätzlich darüber informiert, dass ein Backup unter “C:\Users\{USER}\QGISBackup” angelegt wird:

Unter dem Reiter “Import” erhalten die Nutzerinnen und Nutzer eine erweiterte Ansicht, in der Datenquellen, Datenbankverbindungen, Plugins, Styles, Bookmarks, Funktionen und Variablen ausgewählt und in ein neues Profil kopiert werden können. Allerdings lassen sich in der aktuellen QGIS-Version die Optionen unter dem Reiter “Other (Import only)” zur Zeit nur importieren, nicht aber aus einem Profil löschen. Die Funktionalität „Löschen“ wird in einer nächsten Version umgesetzt.

Zur Verwaltung von Profilen müssen im linken Bereich zunächst Quell- und Zielprofil ausgewählt werden. Ist dies erfolgt, werden im rechten Bereich entsprechend die im Profil vorhandenen Quellen dargestellt. Importiert wird immer vom Quell- ins Zielprofil, gelöscht wird dagegen immer aus dem Quellprofil. Nach dem erfolgreichen Import erscheint auch hier ein Popup zur Bestätigung des Vorgangs:

Hier wird im Popup darauf hingewiesen, dass der QGIS-Browser aktualisiert werden muss, um die Änderungen im Ziel- bzw. Quellprofil zu sehen.

Installation des Profil-Managers

Das Plugin kann ganz einfach über den Menüeintrag "Erweiterung verwalten und installieren..." in QGIS aktiviert werden. Da der Profil-Manager aktuell in der Beta-Version veröffentlicht und somit als “experimentell” gekennzeichnet ist, muss bei der Installation im Erweiterungsfenster unter “Einstellungen” der Haken bei “Auch experimentelle Erweiterungen anzeigen” gesetzt werden.

Fazit

Der Einsatz des Profil-Managers erspart allen, die in ihrer täglichen Arbeit mit QGIS mehrere Profile nutzen, Zeit und senkt die Fehlerquote bei der Übertragung von Konfigurationen.

Aber auch Nutzerinnen und Nutzer, die lediglich für ein einzelnes neues Projekt ein separates Profil anlegen möchten, profitieren vom Profil-Manager. Die Anwendung ist dank der eindeutigen Benutzeroberfläche intuitiv, sodass das Plugin auch für unerfahrene Nutzerinnen und Nutzer leicht einsetzbar ist und den Aufwand bei der Erstellung neuer Profile deutlich verringert.

 

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

Dominik Szill

Dominik Szill ist seit 2019 Auszubildender zum Fachinformatiker bei der WhereGroup in Freiburg. Neben der QGIS-Plugin-Entwicklung war er bereits an Android- und Mapbender-Projekten der WhereGroup beteiligt. Mitte 2022 wird er seine Ausbildung zum Anwendungsentwickler abschließen.

Artikel teilen: