PostgreSQL: Monitoring mit „\watch“

Wer in der Datenbank bestimmte Zustände und Änderungen beobachten will, muss immer wieder den gleichen SQL-Befehl ausführen. Via History-Funktion kann man auf der Kommandozeile die letzten Befehle ohne Neueintippen wiederholen, aber es bleibt trotzdem lästige Handarbeit. Abhilfe schafft in einer PostgreSQL-Datenbank die Verwendung des „\watch“ Kommandos [1]. Einfach den gewünschten SQL-Befehl um „\watch [sekunden]“ ergänzen und das SQL-Statement wird aller paar [sekunden] wiederholt. Einfacher geht es nicht. Wieder was dazu gelernt, Danke Crunchy Data!

Screenshot: Mein Test mit einem SQL-Kommando inkl. „\watch 2“ für Wiederholungen alle 2 Sekunden

Die vollständige Usage des „\watch“ Kommandos nach [1]:

\watch [ i[nterval]=seconds ] [ c[ount]=times ] [ m[in_rows]=rows ] [ seconds ]

Hier der Original-Tweet [2]:

[1] … https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-WATCH
[2] … https://x.com/crunchydata/status/1879247755287155018

Zeichnen auf Webkarten: Terra Draw

Screenshot: Mein erster Test in Halle (Saale) (Bildquelle [1])

Wer sich mit Webclienten im Geoumfeld beschäftigt, sollte auch einmal einen Blick auf Terra Draw [1] von James Milner (@JamesLMilner) werfen. Auf den Terra Draw-Github-Seiten [2] heißt es:

“Reibungsloses Kartenzeichnen über Kartenbibliotheken hinweg.
Terra Draw zentralisiert die Kartenzeichnungslogik und bietet eine Vielzahl sofort einsatzbereiter Zeichenmodi, die mit verschiedenen JavaScript-Mapping-Bibliotheken funktionieren.”

Im Editor werden derzeit Punkte, Linien, Polygone via Stützstellen oder Freihandzeichnung sowie Rechtecke und Kreise unterstützt. Mittels “Adaptern” stehen Schnittstellen zu folgenden Geo-Client-Bibliotheken bereit: Leaflet, OpenLayers, MapLibre GL JS, Google Maps JS API, Mapbox GL JS und ArcGIS JavaScript SDK. Eine Anleitung zum Einstieg findet Ihr bei [3], die API-Docs unter [4].

Hier der Original-Tweet [5]:

[1] … https://terradraw.io/
[2] … https://github.com/JamesLMilner/terra-draw
[3] … https://github.com/JamesLMilner/terra-draw/blob/main/guides/1.GETTING_STARTED.md
[4] … https://terradraw.io/#/api
[5] … https://x.com/JamesLMilner/status/1878889071881383969

Mapscaping: Global Elevation Data Download Tool

Über den Download von Höhendaten habe ich hier schon mehrmals berichtet, z. B. über SRTM-Daten [1]. Nun hat Mapscaping einen neuen Downloader, das “Global Elevation Data Download Tool” [2] für freie Höhendaten veröffentlicht, der m. E. den Download so einfach wie nur möglich macht. Einfach das gewünschte Gebiet grafisch auswählen, Quelle der Daten und Zielformat festlegen und den Download starten. Ich habe es mal ganz auf die Schnelle im Gebiet von Halle (Saale) getestet (Screenshot 1) und den nach wenigen Sekunden als GeoTIFF bereit stehenden Download im QGIS geladen und visualisiert (Screenshot 2). Klappt problemlos, Danke! 🙂

Screenshot 1: Mein Testgebiet in Halle (Saale) während des Generierens (Bildquelle [2])

Angeboten werden derzeit folgende Datenquellen:

  • SRTM GL3 (90m)
  • SRTM GL1 (30m)
  • SRTM GL1 Ellipsoidal (30m)
  • ALOS World 3D (30m)
  • ALOS World 3D Ellipsoidal (30m)
  • SRTM15Plus (500m)
  • NASADEM
  • COP30 (Copernicus Global DSM 30m)
  • COP90 (Copernicus Global DSM 90m)
  • EU_DTM (30m)
  • GEDI_L3 (1000m)
  • GEBCOIceTopo (500m)
  • GEBCOSubIceTopo (500m)

Als Zielformat könnt Ihr wählen zwischen:

  • GeoTiff (GTiff)
  • Arc ASCII Grid (AAIGrid)
  • Erdas Imagine (.IMG)
Screenshot 2: Das erhaltene GeoTIFF im QGIS geladen und visualisiert

[1] … https://geoobserver.de/?s=srtm%2C&submit=Suchen
[2] … https://mapscaping.com/global-elevation-data-download-tool/

GDAL Released: v3.10.1

Gestern, den 13.01.2025 gab Even Rouault per Mail [1] bekannt, dass eine neue Version (Bugfix Release) der universellen GDAL-Bibliothek [2] zur Verfügung steht, aktuell ist nun GDAL v3.10.1. GDAL steht für Geospatial Data Abstraction Library und ist vor allem als Kommandozeilen-Tool, aber auch als wesentlicher Bestandteil von QGIS bekannt. Die Neuerungen findet Ihr auf GitHub [3].

[1] … https://lists.osgeo.org/pipermail/gdal-dev/2025-January/060066.html
[2] … https://gdal.org/
[3] … https://github.com/OSGeo/gdal/blob/v3.10.1/NEWS.md

OpenStreetMap: Category Viewer

Es gibt viele Wege, sich den Daten des freien OpenStreetMap-Projektes [1] zu nähern und in diesen zu recherchieren. Mitunter erscheinen viele dieser aber doch recht kompliziert. Ein wunderbares kleines Tool, um hier Einiges zu vereinfachen, habe ich kürzlich im OpenStreetMap Category Viewer [2] gefunden. Einfach die gewünschte Kategorie wählen, Suche starten und die Ergebnisse konsumieren und ggf. dort weiter suchen inkl. raumbezogener Darstellung und Identifikation. Ich habe es mal getestet: Gebiet von Halle (Saale), gesucht in der Kategorie “Historic”. Gefunden wurden z. B. 249 Denkmale (“memorial”) und dann auf die Halle-Saale-Schleife zur Identifikation geklickt. Einfacher geht’s nun wirklich nicht. Bei Bedarf können die Daten dann gleich als GeoJSON herunter geladen werden und als Extra bekommt man natürlich quasi nebenbei einen Eindruck, wo ggf. noch Tags fehlen und kann sie ergänzen 🙂

Screenshot: Meine oben beschriebene Test (Bildquelle [2])

Hier der Original-Tweet [3]:

[1] … https://www.openstreetmap.org/#map=12/51.4781/11.9524
[2] … https://mapscaping.com/openstreetmap-category-viewer/
[3] … https://x.com/MapScaping/status/1877168990029488638
[4] … https://www.reddit.com/r/QGIS/comments/1hxmwy0/meet_the_ openstreetmap_category_viewer_i_made/?rdt=34852

QGIS-Tipp: Vorschau auf Geometry Checker/Fixer

Screenshot: Neue Funktionen zum Geometrie Check und zur Geometrie Reparatur (Bildquelle [2])

In den letzten Tagen hat Totò Fiandaca (alias @totofiandaca) gleich 2x die im Februar 2025 in QGIS v3.42 zu erwartenden neuen Funktionen zum Geometrie Check und zur Geometrie Reparatur thematisiert. Danke Totò, man darf wirklich gespannt sein! Die neuen Funktionen werden in der Toolbox verfügbar sein, folgende sind geplant:

  • Check geometry
    • Check geometry (Angle)
    • Check geometry (Area)
    • Check geometry (Hole)
    • Check geometry (Missing Vertex)
  • Fix geometry
    • Fix geometry (Angle)
    • Fix geometry (Area)
    • Fix geometry (Hole)
    • Fix geometry (Missing Vertex)

Im folgenden Video (italienisch) [2] zeigt Totò die neuen Funktionen:

Hier die Original-Tweets [1], [3], in [3] mit einem ersten Graphic Model, um die neuen Funktionen zu automatisieren.

[1] … https://x.com/totofiandaca/status/1876567158786081205
[2] … https://www.youtube.com/watch?v=V7SOOtmxkRY
[3] … https://x.com/totofiandaca/status/1877005343231717601

Stau & Co: Interaktive Verkehrssimulation

Wie eigentlich kommt ein Stau zustande, welchen Einfluß haben die Verkehrszuflüsse, die Hindernisse wie z. B. Geschwindigkeitsbeschränkungen oder Bausstellen, wie wirken sich LKW-Anteil sowie Fahrzeugfolge- und Spurwechselverhalten aus? All diese Fragen können mit den JavaScript-basiserten Simulationstools vom Dr. Martin Treiber, TU Dresden [1] simuliert und visualisiert werden.

Erstaunlich und faszinierend, wie schnell so ein Stau entstehen kann, schaut es Euch mal an, für mich hat es einen gewissen Suchtfaktor 😉 Ich habe es mal mit dem ersten Tool “Interactive Traffic Simulation new version (V13) with intersections and tests” [2| getestet und einfach nur mal so eine Geschwindigkeitsbegrenzung auf 30 km/h eingebracht. Das Ergebnis seht Ihr in der folgenden Animation:

Animation: Geschwindigkeitsbegrenzung auf 30 km/h mit dem Tool “Interactive Traffic Simulation new version (V13) with intersections and tests” [2]

Der Tipp kam von Jakob Kranz, Danke!

[1] … https://mtreiber.de/
[2] … https://traffic-simulation.de/

Wann eigentlich ist es in Halle genau 0:00 Uhr?

Screenshot 1: Halle bei 12° und Görlitz bei 15° im QGIS

Zum Jahreswechsel passierte es schon wieder und fast wir hätten das Neue Jahr um 0:00 Uhr verpasst. Da der #geoObserver anwesend und wir räumlich in Halle waren, gab es sofort die Relativierung: “Naja, geographisch ist es ja in Halle noch nicht 0:00 Uhr, unsere offizielle Zeit kommt ja quasi aus Görlitz, also haben wir noch nichts wirklich verpasst”. Erstaunen in der Runde und … etliche Zeit nach Sekt, Umarmungen und guten Wünschen der Versuch einer Erklärung. Eigentlich sollten das doch alle kennen, wir hatten das in der Schule, in Geographie, ich schätze, es muss so in der 7. oder 8. Klasse gewesen sein.

Zur Erinnerung:
Einmal um die die Erde sind es 360° und der Tag hat 24 h. Damit entspricht eine Stunde 15 ° (nämlich 360° / 24 h = 15 °/h). Die Zählung beginnt bekanntermaßen in Greenwich in London bei 0° und das ist auch die Mitte der ersten Zeitzone Greenwich Mean Time (GMT) [1] . Und genau 15° weiter östlich auf dem 15° Meridian [2], also die Mitte der zweiten Zeitzone GMT+1 liegt Görlitz. Es gibt dort sogar einen Meridianstein [2], hier in OpenStreetMap [3], um auf diese Besonderheit aufmerksam zu machen.

Zurück in Halle auf dem 12°, also 3° westlich von Görlitz: Wenn nun 60 min = 15° entsprechen, dann entsprechen 4 min = 1 °, also ist die zeitliche Differenz Görlitz-Halle 12 Minuten (4 min * 3°). Das heißt, bei 0:00 Uhr MEZ (Görlitz) ist es in Halle geografisch erst 23:48 Uhr und wir hätten quasi pünktlich 0:12 Uhr MEZ das neue Jahr begrüßen können, aber wir haben es ja auch so geschafft 😉

Screenshot 2: Die Zeitzonen (Bildquelle: Wikipedia [4])

Und ganz verständlich erklärt findet Ihr es im Beitrag “Zeitrechnung und Zeitzonen” beim Lernhelfer [5].

Update: 07.01.2025:
Und wer es ganz genau wissen will beachte bitte auch noch den Sonnentaq, vgl. Kommentar 3.

[1] … https://de.wikipedia.org/wiki/Greenwich_Mean_Time
[2] … https://www.goerlitz.de/15.-Meridian.html
[3] … https://www.openstreetmap.org/node/389958867#map=19/51.150299/14.998395&layers=D
[4] … https://commons.wikimedia.org/wiki/File:Zeitzonen.jpg
[5] … https://www.lernhelfer.de/schuelerlexikon/geografie/artikel/zeitrechnung-und-zeitzonen

2 x GeoBasis_Loader: 10000. Download & Beitrag in BDVI-Fachzeitschrift “Forum”

Gleich zwei schöne Dinge passierten kurz vor dem Jahreswechsel im Zusammenhang mit dem QGIS-PlugIn “GeoBasis_Loader” [1]. Zum Einen konnten wir den 10000. Download registrieren und zum Andern erschien mein Artikel “GeoBasis_Loader” [2] in der BDVI-Fachzeitschrift “Forum 4/2024” [3].

Screenshot 1: Unterwegs habe ich den 10000. Download dank Smartphone “erwischt”
Screenshot 2: Wieder @Home konnte ich im gestarteten QGIS dann den 10008. Download entdecken

[1] … https://geoobserver.de/qgis-plugin-geobasis-loader/
[2] … https://www.bdvi.de/application/files/9717/3452/9907/FORUM_4-2024_GeoBasis_Loader.pdf
[3] … https://www.bdvi.de/application/files/7517/3452/9909/FORUM_4-2024.pdf

Wie ein Feuerwerk: Map of GitHub

Screenshot 1: Mitten in den MapLands der QGIS-Kosmos (Bildquelle [4])

Zuerst einmal Euch allen ein Gesundes Neues Jahr, möge 2025 ein gutes (Geo-) Jahr werden!
Und weil natürlich ein Feuerwerk zum Neuen Jahr gehört, möchte ich Euch heute eins präsentieren: Kennt Ihr schon die Map of GitHub [1] von Andrei Kashcha alias @anvaka [2]? Ein wunderbares Projekt, um die vielfältigen Zusammenhänge des GitHub-Kosmos perfekt visualisiert zu entdecken und nachzuvollziehen. In [1] heißt es dazu:

“Jeder Punkt ist ein GitHub-Projekt. Zwei Punkte innerhalb desselben Clusters liegen in der Regel nahe beieinander, wenn mehrere Nutzer beiden Projekten häufig Sterne gegeben haben. Die Größe des Punktes gibt die Anzahl der Sterne an, die das Projekt erhalten hat.
Die Karte enthält mehr als 400.000 Projekte, die in 1.100 Länder unterteilt sind. Ich bin auf der Suche nach Hilfe aus der Community, um die Karte zu verbessern. Wenn Sie gute Namen für Länder haben, klicken Sie mit der rechten Maustaste auf eine Karte und geben Sie ihnen einen Namen, schicken Sie mir eine Anfrage.”
[1]

Meine Favoriten finde ich natürlich in den MapLands und GISstan [3] und bei QGIS [4].

Screenshot 2: Die MapLands (Bildquelle [1])
Screenshot 3: Die MapLands und GISstan (Bildquelle [3])

Der Tipp kam von Tobias Wehler, DANKE!

[1] … https://anvaka.github.io/map-of-github/#2.66/8.57/0.7
[2] … https://x.com/anvaka
[3] … https://anvaka.github.io/map-of-github/#8.12/24.963/19.028
[4] … https://anvaka.github.io/map-of-github/#10.87/24.6771/18.8421