QGIS-Tipp: Ungültige Geometrien finden und selektieren

An Geodaten werden bezüglich ihrer Geometrien spezielle Anforderungen gestellt, z. B. dürfen sich Polygone nicht selbst überschneiden (Self Intersection) oder Polygonzüge müssen geschlossen sein (Ring Not Closed). Oft werden diese Anforderungen leider vernachlässigt, aber spätestens beim Geoprozessing wird sich das rächen. Man sollte also immer dafür sorgen, nur mit validen Geometrien zu arbeiten. Eine gute Liste mit Geometriefehlern findet Ihr im FME Support Center unter “Invalid OGC Geometry Examples” [1]

Eine Möglichkeit ist ganz sicher die Geometrieprüfung im QGIS, allerdings zeigt sie “nur” die Fehler über die Ausgabe in neue Themen wie “Fehlerausgabe” und “Ungültige Ausgabe”. Aus meiner Sicht viel einfacher kann man es mit einem weiteren QGIS-Bordmittel lösen: “Objekte über Ausdruck wählen” [2] und dort folgenden einfachen Ausdruck einfügen:

not is_valid($geometry)

Im Ergebnis selektiert QGIS sofort alle Geometrien mit Geometriefehlern und Ihr könnt mit dieser Auswahl dann alles damit machen, was QGIS mit Selektionen erlaubt, z. B. Löschen, Kopieren, in ein neues Themen einfügen oder exportieren. Einfach und wirkungsvoll.

Mein Test: Vier Polygone, eins sogar mit Inselfläche werden geprüft, die Ungültigen hier wg. der “self intersection” selektiert

Wer es selbst mal testen möchte, mein Test-Shape könnt Ihr downloaden [3].

[1] … https://support.safe.com/hc/en-us/articles/25407709561741-Invalid-OGC-Geometry-Examples
[2] … https://docs.qgis.org/3.40/de/docs/user_manual/expressions/expression.html
[3] … https://geoobserver.de/download/QGIS_Select_Not_Is_Valid_Geometry_Test_v01.zip

QGIS-Tipp: Erweiterte Liniensymbolisierung

Das der Geometriegenerator von QGIS quasi eine Wunderwaffe bei der Visualisierung ist, war hier schon oft ein Thema [1]. Heute nun wieder einige Beispiel dazu. Es geht um visuelle Effekte wie SpitzenPerlenKetten und Glättung. Schaut Euch mal bei Autor franzpc [2] um, in seinem Beitrag “Líneas con Efectos Visuales Avanzados con el Generador de Geometrías en QGIS: Ideal para suavizar curvas de nivel” [3] beschreibt er den Einsatz des QGIS Geometriegenerators für o. g. Effekte. Einfach Google-Übersetzer an, lesen und probieren: Spielt mit den Parametern, beachtet die Einheiten, es lohnt sich, wegen der Zeichen-Effekte und wegen der Lerneffekte beim Geometriegenerator 😉

creenshoot: Hier Beispiel 4 “Glättung”, beachtet den markierten Slider für Vorher/Nahher (Bildquelle [3])

[1] … https://geoobserver.de/?s=geometriegenerator&submit=Suchen
[2] .. https://acolita.com/author/franzpc/
[3] … https://acolita.com/lineas-con-efectos-visuales-avanzados-con-el-generador-de-geometrias-en-qgis-ideal-para-suavizar-curvas-de-nivel/

QGIS-Tipp: Bedingte Formatierung in Attribut-Tabellen

Screenshot: Mein Test mit halleschen Bevölkerungsdaten [2]

Update 1, 15.04.2025 | Update 2, 16.04.2025

Die “Bedingte Formatierung” von Tabellen in Excel kennt vermutlich jeder, aber wußtet Ihr, dass es eine solche Funktion auch im QGIS gibt? Ja, die gibt es, ich bin durch Michel Stuyts’ blog [1] aufmerksam geworden. Diese Funktion heißt “Bedingte Formatierungsregeln” und ist im Kopf der Attributtabelle (grüner Pfeil) zu finden. Ich hab’s am Beispiel der Bevölkerungsdaten aus dem halleschen Open Data Portal [2] getestet, vgl. Screenshot.

Es ist dabei zu beachten, dass man sowohl in der Symbolisierung (hier “abgestuft”) und bei den “Bedingte Formatierungsregeln” die gleichen Klassen und sinnvollerweise die gleichen Farben vergibt, um Karte und Tabelle optisch anzugleichen.

Update 1 (15.04.2025):
Auf Grund einiger Nachfragen, steht ab sofort mein Test auch als Demoprojekt zum Download bereit [3].

Update 2 (16.04.2025):
Ich bekam noch den Tipp auf ein Youtube-Tuorial “QGIS 3.22 Die Attributtabelle – Zellen und Spalten formatieren” zum Thema inkl. Formatierung der kompletten Zeilen [4].

[1] … https://stuyts.xyz/2025/02/12/conditional-formatting-in-qgis-attribute-tables/
[2] … https://webapp.halle.de/komgis30.hal.opendata/f4fed13f-c8da-79bb-d11d-4919fc5b1d7c.html
[3] … https://geoobserver.de/demo/QGIS_bedingte_formatierung_v01.zip
[4] … https://www.youtube.com/watch?v=ICSb01V91to

geobasisloader.de und 17000

Gleich zwei Dinge rund um das QGIS-Plugin “GeoBasis_Loader” sind gestern passiert. Einerseits kann der 17000. Download vermeldet werden 😃 und zum Anderen ist die zentrale GeoBasis_Loader-Webseite ab sofort auch über die URL https://geobasisloader.de erreichbar. Die neue Kontaktadresse für Anfragen, Probleme, Hinweise zum GeoBasis_Loader ist kontakt@geobasisloader.de.

Und falls Euch das Plugin gefällt, vielleicht könnt Ihr es unterstützen? Danke!

QGIS-Tipp: Zensus 2022 im “GeoBasis_Loader”-Plugin

Der aktuell gültige Zensus für Deutschland stammt aus dem Jahr 2022 (Stichtag 15.05.2025) [1]. Die Ergebnisse kann man sich über den Zensusatlas [2] anschauen, außerdem werden diese auch als Geodienste (WMS) unter [3] mit 14 Themen in jeweils drei Rastergrößen 100m, 1km und 10 km angeboten. Seit Samstag stehen diese freien Zensus-Geodienste auch im QGIS-Plugin “Geobasis_Loader” [4] unter Katalog 7 zur Verfügung. Viel Spaß beim Erkunden via QGIS!

Screenshot 1: Die Zensus 2022 Geodienste [3], hier das Thema „Wohnungen nach Energieträger“ im “GeoBasis_Loader”-Plugin [4]

Manche der Zensus 2022 Daten verwundern mich jedoch, jedenfalls kann sie mir nicht immer erklären. Hier ein Beispiel in Lieskau bei Halle (Saale). Dort erscheint auf einem Gebiet von 200m x 200m der Fernwärmeanteil sehr hoch. Ist das wirklich so und wenn ja, wo kommt dort die Fernwärme her? Lokales Blockkraftwerk, aber für so wenige Häuser? Wer kann es erklären? Bitte in den Kommentaren. Danke!

Screenshot 2: Fernwärme in Lieskau bei Halle (Saale)? Ist mir zumindest nicht bekannt, wer kann es aufklären?

[1] … https://www.zensus2022.de/DE/Home/_inhalt.html
[2] … https://atlas.zensus2022.de/
[3] … https://www.wms.nrw.de/wms/zensusatlas?request=GetCapabilities&version=1.3.0&service=wms
[4] … https://geoobserver.de/qgis-plugin-geobasis-loader/

QGIS-Tipp: “I Like To Move It”

Manchmal sind es die ganz kleinen Dinge, die einem das GIS-Leben erleichtern können. Und diesmal habe ich es im QGIS-Plugin „Move Features” [1] bei den Plugins gefunden. Wer also mal eben im rechtwinkligen Koordinatensystem eine reine Verschiebung (Translation) realisieren möchte, gibt z. B. die Quell- und die Zielkoordinate (dx/dy werden berechnet) und seine zu verschiebende Geometrie ein und nach dem Start entsteht eine neue Geometrie als Temporärlayer. Im folgenden Test habe ich mal das Polygon der halleschen Stadtgrenze um je 1000m in X- und Y-Richtung verschoben.

Nein Test: Die hallesche Stadtgrenze um je 1000m in X- und Y-Richtung verschoben.

Übrigens, erinnert Ihr Euch noch an “I Like To Move It” [2]

[1] … https://plugins.qgis.org/plugins/moving_feature/
[2] … https://www.youtube.com/watch?v=vuo8kD5zF5I

QGIS-Tipp: 3.42.1 “Münster” für Win, Linux und MacOS verfügbar! Test@MacM1

Laut Informationen von Jürgen E. Fischer stehen seit gestern, dem 25.03.2025 die Linux, Windows and Mac packages of #QGIS release 3.40.5 “Bratislava” (LTR) and 3.42.1 “Münster” [1], [2] zum Download [3] bereit. Ich habe mittlerweile die neuen Mac-Pakete installiert. Alles läuft erwartungsgemäß hervorragend in meiner GIS-Umgebung, also QGS 3.42.1 und PostgresApp auf 2.8.1 sowie PostgreSQL auf 16.8, Danke allen Mitwirkenden!

[1] … https://x.com/JuergenEFischer/status/1904453056248299682
[2] … https://norden.social/@jef/114222160468634604
[3] … https://qgis.org/download/

QGIS-Tipp: myVintage Style v01

Wer auf den QGIS-Webseiten [1] unterwegs ist, wird gleich auf der Startseite im ersten Anstrich “Create Maps” mit einer wunderbaren Karte aus Edinburgh [2], [3] im Vintage-Stile begrüßt. Ich finde, eine Karte zum Verlieben, so schön, dass man sie einfach mal nachempfinden muss. Ich habe es am Wochenende so quick and dirty mit QGIS in Halle (Saale) probiert, das Ergebnis ist noch nicht ganz 100%, aber m. M. n. schon ein schöner Anfang 😉

Meine Testdaten entstammen der Digitalen Stadtgrundkarte der Stadt Halle (Saale), also die aktuellen Gebäude und Linien, die Gewässer sind mit dem ALKIS-WMS für die Nutzung aus Sachsen-Anhalt hinterlegt und eingefärbt. Wer Spaß dran hat, ein bißchen zu experimentieren, kann die QML-Files [4] gern herunter laden und ganz gewiss noch verfeinern, schön wäre es, uns an Euern Versuchen teilhaben zu lassen.

Screenshot: Das Original in Edinburgh aus [1] und meine mit QGIS nachempfundene Kopie in Halle (Saale)

[1] … https://qgis.org/
[2] … https://www.openstreetmap.org/?#map=17/55.957309/-3.204339
[3] … https://www.google.de/maps/@55.9572832,-3.2046757,18.58z
[4] … https://geoobserver.4lima.de/downloads/QGIS_Vintage_Style_v01_Archiv.zip

MapScaping-Ankündigung: Chrome-Erweiterung für Geodienste-Adressen

Screenshot (Bildquelle [1])

Na, das ist ja mal wieder eine gute Nachricht zum Wochenende: MapScaping kündigt auf X (ehem. Twitter) [1] eine Chrome-Erweiterung “Detect GIS Services”(?) zur Protokollierung der von Kartenanwendungen verwendeten Geodienste an. Die Ergebnisse (URLs) können dann einfach in QGIS und ArcGIS nachgenutzt werden. Wenn es klappt, erspart man sich jede Menge Arbeit, z. B. nie wieder den Traffic auf Port 80 “abhören”, um die Adressen zu ermitteln 😉 Noch ist die Erweiterung in Arbeit, aber man darf wirklich gespannt sein. Das wäre für mich auch ein cooles Werkzeug für das QGIS-Plugin “GeoBasis_Loader” [2]

Hier der Original-Tweet [1]:

[1] … https://x.com/MapScaping/status/1901776347023950208
[2] … https://geoobserver.de/qgis-plugin-geobasis-loader/

QGIS-Tipp: Korrekte Inselpolygone aus reinen Liniendaten

Neulich an der GIS-Hotline folgendes Problem: Der Nutzer hatte ein reines Linienshape mit Parkplatzgeometrien aus einem Drittsystem und das Ziel was es, mit QGIS daraus Polygone mit korrekten Inselflächen zu erzeugen. Eigentlich sollte man meinen, ein erster Schritt, die Polygonbildung mit der Funktion “Linien zu Polygonen …” wäre völlig unkompliziert, aber mit diesen Liniendaten (viel zu viele und zu kleine Linienstücke, meist mit nur zwei Punkten) kam einfach nichts Vernünftiges raus. Also musste eine andere Lösung gefunden werden, diese wird hier quasi als kleines Kochbuch für QGIS beschrieben.

0. Ausganssituation und fehlgeschlagener Versuch der Polygonbildung mit der Funktion “Linien zu Polygonen …”

Screenshot 1: Ausgangsshape original aus dem Drittsystem
Screenshot 2: fehlgeschlagener Versuch der Polygonbildung mit “Linien zu Polygonen …”
Screenshot 3: Ergebnisse des fehlgeschlagenen Versuchs, leider unbrauchbar

1. Polylinien erzeugen: myLineShape mit “v.buid.polylines” und der Option Kategorienummermodus auf “first”, Ergebnis: myPolylineShape

Screenshot 3: Polylinien erzeugen: myLineShape mit “v.buid.polylines”
Screenshot 4: Ergebnis der Polylinien-Erzeugung

2. Polygonbildung: myPolylineShape mit “Linien zu Polygonen”, jetzt erfolgreich, Ergebnis: myPolygonShape

Screenshot 5: Polygonbildung mit “Linien zu Polygonen”
Screenshot 6: Ergebnis der Polygonbildung aber noch mit übereinander liegenden Flächen der Inseln auf dem Aussenpolygon (topologisch nicht korrekt)

3. myPolygonShape mit einer Flächespalte “myArea” ergänzen

Screenshot 7: Ergänzung der Flächenspalte
Screenshot 8: Ergebnis mit Flächenspalte

4. aus myPolygonShape die größte Fläche selektieren und exportieren, Ergebnis: myPolygonShape_All

Screenshot 9: Selektion der größten Fläche
Screenshot 10: Ergebnis – nur das Aussenpolygon des Parkplatzes

5. aus myPolygonShape alle kleineren Flächen selektieren und exportieren, Ergebnis: myPolygonShape_Islands

Screenshot 11: Selektion aller kleineren Flächen
Screenshot 12: Ergebnis – nur die Inselpolygone des Parkplatzes

6. Differenzbildung mit “Differenz”, also myPolygonShape_all – myPolygonShape_Islands, Ergebnis: myPolygonShape_Result, ein Polygon topologisch korrekt mit allen rausgeschnittenen Inseln

Screenshot 13: Differenzbildung Aussenpolygon – Inselpolygone
Screenshot 14: Ergebnis – ein Polygon topologisch korrekt mit allen rausgeschnittenen Inseln

Sicher gibt es auch andere Lösungen, wer eine bessere, einfachere oder elegantere Lösung kennt, bitte in den Kommentaren. Danke! Es würde sich ganz sicher lohnen, hier mal ein Model zu schreiben. Ich denk mal drüber nach 😉