Schlagwort-Archive: Heatmap

Noch eine GPS Heatmap

Map Tiles © OpenStreetMap

Im vorigen Post habe ich darüber berichtet, dass ich es mir unter immensen Anstrengungen (😉) gelungen war, die GPX Files meines GPS Trackers, den ich zum Geotaggen meiner Fotos verwende, in nette, bunte Heatmaps zu verwandeln. Aber dort hörte meine Reise noch nicht auf. Nun da ich den Heatmap Stil von QGIS einigermaßen im Griff hatte, sah ich schon mein nächstes Ziel am Horizont: Die Wege, die ich bei meinen Fototouren gegangen war, hatte ich schon heatmapifiziert. Was noch fehlte waren die Orte, an denen tatsächlich Fotos gemacht wurden.
Nun, diese Aufgabe gestaltete sich schon ein wenig komplexer als die vorige. Ich musste nämlich erst mal die GPS Daten meiner Fotos sammeln. Und das sind jetzt gar nicht mal so wenig, wenn man mal die einzelnen Dateien zählt:
Nun, zugegeben: Das beinhaltet alle Raw Files, alle daraus generierten JPGs, alte JPGs aus meiner prä-RAW Ära und alle Hilfsformate wie zum Beispiel xmp Files. Also sind es nicht ganz so viele “echte” Fotos. Trotzdem noch eine recht anständige Menge, die es da zu durchsuchen galt. Und wie üblich bei solchen Problemen wollte ich zuerst ein Shell Script schreiben. Allerdings entschied ich mich dann doch noch kurzfristig für Python, weil da einfach jede erdenkliche Funktionalität, die ich benötigen könnte, schon integriert war. Und da mein Python noch nicht allzu flüssig ist, war bei der Programmierung sehr viel Google involviert. Aber nach ein bisschen Herumprobiererei hatte ich ein Script fertig, das mir rekursiv ein Verzeichnis nach Files mit einer Bestimmten Endung suchte, mit Exiftool die GPS Koordinaten extrahierte, diese von DMS (degrees, minutes, seconds) in DD (decimal degrees) umwandelte und dann in ein Textfile schrieb.
Und dieses Script hab ich dann in der Nacht von gestern auf heute auf meine Sammlung von Landschaftsfotos losgelassen. Nur um es heute morgen gecrasht vorzufinden. Dummerweise hatten zwei meiner Fotos anscheinend korrupte EXIF Informationen, was Exiftool dazu brachte, anstatt der GPS Koordinaten eine Fehlermeldung auszugeben. Und an dieser hatte sich mein Koordinaten Umrechner verschluckt.
War aber kein größeres Problem und schnell korrigiert, als ich Abends von der Arbeit kam. Und bei Runde zwei lief das Script glücklicherweise durch. Mit dem Ergebnis, das ihr oben in diesem Eintrag seht. Fesch, oder? Und man sieht, dass ich gerne im Larchtal und in der Egge am Weg bin 😀.
Ach ja, und Falls ihr euch wundert, warum man auf der Karte nur so wenig Punkte sieht: Das liegt an der automatischen Skalierung der Heatmap. Eigentlich sind es viel mehr Flecken, aber die sind nicht wirklich sichtbar, weil die Hot Spots so viel stärker sind. Hier als Beispiel noch einen vergrösserten Ausschnitt von Gnadenwald und Hall:

Map Tiles © OpenStreetMap

PS: Falls es jemanden interessiert, das Script liegt auf GitHub: Wopfi’s GPS Extractor
PPS: Seid nicht zu streng mir mir, ich programmiere noch nicht allzulang in Python

 

GPS Heatmap

Map Tiles © OpenStreetMap

Strava hat ja vor einiger Zeit die GPS Daten seiner User in der Global Heatmap veröffentlicht. Und mal abgesehen davon, dass diese Heatmap nützlich ist, um geheime Militärbasen offenzulegen, sieht das ganze auch noch ziemlich fetzig aus. Und weil das ganze nicht nur gut aussieht, sondern auch noch interessante Informationen anschaulich darstellt, hab ich mir gedacht, dieses Konzept wäre wohl auch für meine eigenen GPS Daten ganz geil. Also hab ich mal gegoogelt, wie man eine GPS Heatmap erstellt, ohne seine privaten Bewegungsprofile gleich mitsamt exakten Timestamps irgendwelchen Datensammlern in den Rachen zu werfen. Und siehe da, das ganze ist gar nicht so kompliziert. Im Grunde ist es sogar ziemlich einfach. Erstmal braucht man ein GIS Programm um die Daten verarbeiten zu können. Meine Wahl fiel hierbei auf QGIS, weils Open Source ist und ich es einfach über den Paketmanager installieren konnte. Und weil ich absolut keinen Plan von GIS Software habe, brauchte ich zumindest eine wage Anleidung. Auf meiner Suche wurde ich auf einen 5 Jahre alten Thread in einem GIS Forum aufmerksam. Einer der Poster beschrieb dort, dass er in Punkte umgewandelte GPX Daten in einem Vektor Layer mit Heatmap Stil visualisiert hat. Und das hab ich dann auch gleich mal probiert. Ich hab das von ihm erwähnte Qchainage Plugin installiert, bin aber draufgekommen, dass ich es gar nicht brauchte. Und um meiner Heatmap den Richtigen Hintergrund zu verschaffen, hab ich zusätzlich noch das QOSM Plugin installiert, um einen OpenStreetMap Tile Layer einblenden zu können.
Dann gings los. Ich hab einen OSM Layer erstellt und mal Kolsass und Umgebung gesucht. Dann brauchte ich irgendeine Möglichkeit, um alle meine GPX Dateien in einen Layer zu bringen. Auch hier half mir wieder das GIS Forum weiter. Und zwar mit dem folgenden Thread. Die darin empfohlene Befehlszeile

for i in $( ls path_to_gpx_files/*ride*.gpx ); do ogr2ogr path_for_output/gpx.shp -append $i track_points -fieldTypeToString DateTime; done

kombinierte die unzähligen GPX Tracks meiner diversen Fototouren in ein SHP File, dass ich dann einfach in einen Vektorlayer von QGIS importieren konnte. Dann folgte ein wenig Herumspielerei mit den Einstellungen für den Heatmap Stil und schon hatte ich eine sehr anschauliche Darstellung davon, welche Wege ich im Rahmen meiner Fotografiererei schon begangen hatte, und welche Orte ich öfter besuchte. Fetzig 😀