Python for Spatial

Python als Skriptsprache hat insbesondere im Bereich Geografischer Informationssysteme seit Jahren eine wachsende Bedeutung. Sowohl beim Marktführer in der Arc*-Welt wie auch im freien QGIS stehen viele Python-basierte Skripte und Erweiterungen zur Verfügung. Arcpy, PyProj, NumPy sind typische Vertreter. Außerdem können die GI-Systeme mit Python recht einfach um eigene Funktionalitäten und Automaten erweitert werden. In [1] heißt es einleitend:

“Python-Bibliotheken sind die ultimative Erweiterung für GIS, denn sie ermöglichen es Ihnen, die Kernfunktionen zu erweitern.
Durch die Verwendung von Python-Bibliotheken können Sie aus der GIS-Schablone ausbrechen und in die Datenwissenschaft eintauchen.”
[1]

Für mich ein Grund mehr, heute mal dieses Thema bei Euch anzutriggern und einige Sammlungen für Python-Ressourcen in “Python and GIS Resources” [1], “15 Python Libraries for GIS Mapping” [2] und die Linkliste von Milan Janosov [3] zu zeigen.

Einen kleinen Einstieg in die Problematik Python & QGIS & Plugin findet Ihr bei Ivo Partschefeld alias PyQGIS (@PyQgis) auf Youtube im Video “QGIS Plugin erstellen für Anfänger | Create a QGIS Plugin for beginners” [4]:

[1] … https://www.gislounge.com/python-and-gis-resources/
[2] … https://gisgeography.com/python-libraries-gis-mapping/
[3] … https://www.linkedin.com/posts/milan-janosov_datavisualization-datascience-data-activity-7115972452437884929-V-XH/
[4] … https://www.youtube.com/watch?v=1tu88NsIDfE

QGIS-Tipp: Das “Consolidate Networks”-Plugin

Animation: Mein “Consolidate Networks”-Test

Früher, zu proprietären (ESRI)-Zeiten hatten wir “clean” für Fehler und “build” für Topologie, die “dangle lenght” und die “fuzzy tolerance”. Etwas Ähnliches findet Ihr in dem neuen QGIS-Plugin “Consolidate Networks” [1]. Coole Sache, so was habe ich schon lange gesucht. Ich habe es mal “quick & dirty” gestestet, es klappt gut, nur eine Frage bleibt (jedenfalls bei mir) noch offen. Vielleicht habt Ihr eine Erklärung, gern in den Kommentaren, den Testdatensatz findet Ihr in [2]. Mein Test, seht selbst:

Screenshot 1: Die Ausgangssituation, Linien mit Digitalisierungs- und Topologiefehlern
Screenshot 2: Das Ergebnis, die Linien geometrisch repariert und via FID topologisch verbunden. Nur ein Fehler wird nicht korrigiert
Screenshot 3: Meine Test-EInstellungen – alles mal “quick & dirty” mit 20 m
Screenshot 4: Das Protokoll des Verarbeitungsprozesses

[1] … https://plugins.qgis.org/plugins/consolidate_networks/
[2] … https://www.geoobserver.de/Download/Consolidate_Networks_Test_1.zip

QGIS-Tipp: Noch einmal verbesserte Linienbeschriftung

Im QGIS-Tipp “LineLabels korrigiert” [1] habe ich über die gezielte Beeinflussung von Linienbeschriftungen schon berichtet. Klas Karlson hat Ende September 2023 auf Mastodon [2] eine neues Youtube-Video “QGIS User 0052 – Contour Labels Aggregate function” [3] zur gleichen Thematik angekündigt, mittlerweile ist dieses Video online. Dort wird die Problematik der Linienbeschriftungen noch mal deutlich durch den Einsatz des Geometrie-Generators verfeinert, schaut es Euch an, es lohnt sich. Den verwendeten Code findet Ihr in der Videobeschreibung. Danke Klas!

[1] … https://geoobserver.de/2022/07/14/qgis-tipp-linelabels-korrigiert/
[2] … https://fosstodon.org/@klaskarlsson/111121138454001170
[3] … https://www.youtube.com/watch?v=1BNDV71BsNY

Stamen: Kacheln ziehen zu Stadia Maps

Via Tweet [1] hat Stamen letzte Woche bekannt gegeben, dass die berühmten Hintergrundkacheln ab 31.10.2023 zu Stadia Maps umziehen. Laut Stamen bleiben die Kacheln “Für die meisten Benutzer immer noch kostenlos” [1]. Mehr Infos findet Ihr bei den Stamen-FAQs [2] und bei Stadia Maps [3]. Ich habe mich mal registriert, im QGIS getestet und werde testen …

Test 1: Die alten Stamen-Kacheln auf Stamen.com
Test 2: Die neuen Kacheln bei stadiamaps.com im QGIS (bei mir trotz Anmeldung/API-Key noch mit dem Hinweis)

Hier der Original Tweet [1]

[1] … https://x.com/stamen/status/1709592003015503933?s=20
[2] … http://stamen.com/faq
[3] … https://stadiamaps.com/stamen/

QGIS & qgis2web: Ein Mini-Viewer für Open Data Sachsen-Anhalt!

Über den Neustart des Open Data Portals in Sachsen-Anhalt hatte in “Relaunched: Mehr Open Data im Geodatenportal in Sachsen-Anhalt!” [1] am 04.07.2023 berichtet. Da ich den Sachsen-Anhalt-Viewer mitunter für etwas oversized halte, habe ich mich mal um einen kleineren Viewer bemüht, z. B. um Leuten in meinem Umfeld (Kommunale Verwaltungen und Stadtwerke) auf die Schnelle die typischen freien Daten (ALKIS & Co) mittels der vom LVermGeo LSA angebotenen Geodienste (WMS) zu zeigen. Ihr findet den LSA_OpenData_Viewer unter [2].

Genutzt habe ich QGIS und das qgis2web-Plugin [3]. Alle Themen sind Geodienste aus dem LSA Open Data Portal. Standardmäßig werden Sie vom Plugin als Kachel-Dienste (TileWMS) angelegt. Da Kacheln bei Beschriftungen fast immer schlechte Ergebnisse liefern, denn die Schriften werden an der Kachelgrenzen abgeschnitten, habe ich einige Layer händisch in “normale” WMS-Aufrufe (ImageWMS) umgeschrieben, klappt prima! Hier der Vergleich:

Screenshots: Vergleich von TileWMS (abgeschnittene Schriften) und ImageWMS (nicht abgeschnittene Schriften)

Die Themen nutzen folgende WMS-Typen:

  • ImageWMS: Bauland, Land- und Forstwirtschaft, Flurstücke, Gebäude, Bodenschätzung
  • TileWMS: Verfahrensgebiete, Tatsächliche Nutzung, Digitale Orthophotos DOP20, basemap.de

[1] … https://geoobserver.de/2023/07/04/relaunched-open-data-portal-in-sachsen-anhalt/
[2] … https://geoobserver.de/demo-lsa-opendata-viewer-fur-alkis/
[3] … https://github.com/tomchadwin/qgis2web
[4] … https://www.lvermgeo.sachsen-anhalt.de/de/gdp-open-data.html
[5] … https://geodatenportal.sachsen-anhalt.de/gfds/

QGIS: Wo ist (wirklich) die Mitte von Berlin?

Wer im Internet nach dem Mittelpunkt der Hauptstadt Berlin sucht, wird schnell fündig, z. B. beim größten Suchmaschinenbetreiber mit der Abfrage nach “mittelpunkt berlin” [1]. Ich war am Wochenende in Berlin und Dank des Tipps eines meiner Söhne waren wir vor Ort, am in massiven Granit (?) ausgeführten Stein, wirklich solide gemacht! Auch im OpenStreetMap [2] ist dieser Punkt seit neun Jahren zu finden.

Der “Mittelpunkt” von Berlin in Kreuzberg, Nähe Alexandrinenstraße 12 (Foto: #geoObserver)

Eine gute Idee, aber der geübte GIS-Blick auf den Stein ließ mich irgendwie zweifeln, rein optisch würde ich den Mittelpunkt eher etwas nördlich und östlich vermuten. Den Anderen ging es ähnlich und im Berlin-Blog [3] finde ich die Bestätigung: “Grundlage war eine offizielle Vermessung, nach unserem Geschmack müsste der Mittelpunkt weiter nördlich sein, aber nun ja, dafür gibt es ja Experten. Vielleicht kennt sich da jemand aus, siehe Kommentarbereich.” [3] So angepingt bin ich also gleich auf die Suche nach den Geodaten der Berlin-Umrisse gegangen. Gesucht, gefunden [4], im QGIS geladen und das Zentroid prozessiert. Dann mein Foto vom Stein georefenziert und hinterlegt.

Screenshot: Mein QGIS-Test mit dem neuen (?) Zentroid

Und … mein/unser erster optischer Eindruck wurde bestätigt, der berechnete Mittelpunkt liegt eher tatsächlich nördlicher und östtlicher als der auf dem Stein dargestellte. Die Entfernung zwischen beiden beträgt ca. 3000 m! So, und warum nun? Welche Erklärungen könnte es geben?

  1. Angegeben sind am Stein die Berliner Grenzen von 1996, meine geladenen Grenzen [4] sind jünger, angegeben mit ALKIS 03/2023, aber im Sichtvergleich scheinen sie ungefähr die gleiche Geometrie zu haben, also eher nein.
  2. Meine Georeferenzierung ist eher “quick & dirty”, aber rein optisch hinreichend genau
  3. Sind die QGIS-Algorithmen zu ungenau (ich habe mehrere getestet, immer das gleiche Ergebnis) – NEIN: Jetzt noch einmal neu mit FME, SAGA und QGIS überprüft, alle kommen auf den gleichen Zentroiden in der Nähe der Alexandrinenstraße 12 – zum Glück 😉
  4. Die Abbildung auf dem Stein ist nicht ganz exakt? Künstlerische Freiheit oder so? (Mein Favorit)
  5. Wer noch andere Ideen und Erklärungen hat, gern in den Kommentaren, ich bin gespannt …

[1] … https://www.google.com/search?q=mittelpunkt+berlin
[2] … https://www.openstreetmap.org/node/2862216432
[3] … https://blog.inberlin.de/2014/10/der-mittelpunkt-von-berlin/
[4] … https://opendata-esri-de.opendata.arcgis.com/datasets/esri-de-content::bezirke-berlin

QGIS-Tipp: MDM 2023 – Die Laufstrecken

Screenshot: Meine MDM 2023-Karte [4] unter dem MDM-Logo

Am 8. Oktober 2023 findet der 20. Mitteldeutsche Marathon, der MDM 2023 [1] in Halle inklusive der Marathonstrecke von Leipzig nach Halle statt. Natürlich sind wie immer auch diesmal die Laufstrecken [2] lange vorher festgelegt und veröffentlicht worden. Cool, die Streckendaten stehen neben den vorbereiteten interaktiven Karten auch als KML-Files zur Verfügung. Das Ganze ist wirklich gut gemacht, nur (leider) kann man nicht alle Streckenvarianten gleichzeitig ansehen und direkt in einer Ansicht vergleichen. Also habe ich mal so auf die Schnelle und als QGIS-Fingerübung eine Karte mit “qgis2web”-Plugin [3] erzeugt, diese steht Euch unter MDM2023 [4] zur Verfügung. Die Schritte sind recht einfach:

  • KMLs öffnen,
  • Kilometrierung der Strecken berechnen (Funktion “Punkte entlang einer Geometrie”) für 1000m und 100m,
  • alle Themen sortieren, symbolisieren, gruppieren und
  • mit dem “qgis2web”-Plugin [3] die Webkarte erstellen.

Ich laufe übrigens auch in diesem Jahr wieder den Halben, so wie auch im letzten Jahr. Mal sehen, wie sich die Daten diesmal visualisieren lassen? Vgl. 2022: “QGIS-Tipp: MDM-Halbmarathon im TimeManager visualisiert”. [5]

[1] … https://www.mitteldeutscher-marathon.de/
[2] … https://www.mitteldeutscher-marathon.de/veranstaltung/orientieren/strecken
[3] … https://github.com/tomchadwin/qgis2web
[4] … https://www.geoobserver.de/MDM2023/
[5] … https://geoobserver.de/2022/10/18/qgis-tipp-mdm-halbmarathon-im-timemanager-visualisiert/

QGIS-Tipp: Höhenlinien / Contourlines

Screenshots (Bildquelle [5], [6])

Über die Erzeugung von Höhenlinien mir QGIS habe ich hier schon des Öfteren berichtet, vgl. [1] … [4]. Wer von Euch eine gute Anleitung dazu sucht, dem empfehle ich die Youtube-Videos “Create and Visualise Contour Lines in QGIS” und “QGIS – Konturlinien (Höhenlinien, Relieflinien) aus DGM erzeugen und nach TK25 symbolisieren” [6], besser kann man es nicht erklären 😉

[1] … https://geoobserver.de/2021/02/01/qgis-der-winzer-das-3d-modell/
[2] … https://geoobserver.de/2021/11/30/qgis-und-die-freien-dgms/
[3] … https://geoobserver.de/2020/11/30/qgis-tipp-smooth-operator/
[4] … https://geoobserver.de/2016/11/02/3d-hufeisensee-loch-ness/
[5] … https://www.youtube.com/watch?v=gqEgH9b1hjg
[6] … https://www.youtube.com/watch?v=Ml8flExhVDc

QGIS-Tipp: Downloads für 3.28.11 “Firenze” (LTR) and 3.32.3 “Lima” verfügbar! Test@MacM1

Via Tweet kam vorgestern die Meldung von Jürgen E. Fischer, dass die Downloads für  3.28.11 “Firenze” (LTR) and 3.32.3 “Lima” für Windows, Mac und Linux [1] verfügbar sind.

Ich habe das neue QGIS-Paket installiert und es läuft erwartungsgemäß hervorragend in meiner GIS-Umgebung, also jetzt QGIS 3.32.3 zusammen mit PostgreSQL v15.4 auf einem MAC mit M1 unter dem inzwischen wieder aktualisiertem macOS 13.5.2 Ventura, siehe Screenshot. Danke allen Mitwirkenden!!!

Screenshot: QGIS 3.32.3 & PostgreSQL v15.4 auf einem MAC mit M1 unter macOS 13.5.2 Ventura

[1] … https://x.com/JuergenEFischer/status/1703794465410801978

QGIS-Tipp: Selection as Filter Plugin

Und wieder so ein kleines hilfreiches Tool, das QGIS-Plugin “Selection as Filter” [1]. Einfach mal mit der Maus und dem Selektionstool oder einer gezielten Abfrage einige Features Eures aktuellen Themas selektieren und diese dann als Filter nutzen. Klappt bestens, Danke! Detail zur Bedienung findet Ihr auch unter GitHub [2].

Animation: Mein Test mit Open Data, hier die Baublöcke der Kleinräumigen Gliederung in Halle (Saale) [3]

[1] … https://plugins.qgis.org/plugins/SelectionFilter/
[2] … https://github.com/knwin/SelectionFilter/blob/main/README.md
[3] … https://webapp.halle.de/komgis30.hal.opendata/f6cfcbfb-e586-e782-e9ae-50d5c7151aa9.html