Um nach Teil 1 und Teil 2 - jetzt erst Recht jetzt eine Trilogie aus der Blogreihe zu machen, heute nun ein weiterer Teil.
Nach dem immer wiederkehrenden Schmerz R, das dazu passende Rstudio und alle Libraries auf aktuellen Stand zu kriegen, reichte es mir dieses Jahr. Ich hatte bereits mehrere Versuche gemacht und es immer wieder verworfen.
Die dritte Iteration - Ziele
Ich will ein einfaches kleines Python Script welches alljährlich wiederverwenden kann um meine Tracks dieses Jahr zu analysieren.
Als ich gestern von der ersten Tour nach Hause kam, hab ich mich 2 Stunden hingesetzt und versucht das einfach ganz MVP mäßig hinzukriegen. 1 GPX File mittels Stack-Overflow-Engineering auf eine Karte zeichnen.
Ich wurde mit Folium auch fündig.
Daten vorbereiten
Ansonsten das übliche Prozedere, bei Strava einen Datenexport anfordern und entpacken. Witzigerweise ist dieser Export mittlerweile bei “Ja ich möchte meinen Account wirklich löschen” versteckt und nicht mehr in der Data Sektion.
Auch der Inhalt des Dumps hat sich stark verändert. Wo vorher ein Unix
Timestamp der Name der Datei mit .gpx
angehängt war, findet sich
mittlerweile im activities
Ordner eine Vielzahl an unterschiedlich
Formatierten Dateien.
- gpx (Was wir wollen)
- gpx.gz (Ebenfalls okay)
- tcx (Datenformat für Heimtrainer, also nicht relevant)
- fit (Binärformat das ich noch nicht kannte)
- fit.gz (selbes, in gezippt)
Wir wollen möglichst alles davon als minifiziertes GPX haben.
cd activities/
unzip *.gz
for x in *.fit
gpsbabel -i garmin_fit -f $x -o gpx -F $x.gpx
end
Obacht, fish
Syntax, kein bash
.
Das Tool
Ich hab mein kleines Projekt stramap getauft und auf Github gestellt.
Im Skript kurz die Config anpassen und ./stramap
ausführen.
# gpxfiles = [ 'test.gpx', 'test2.gpx' ]
gpxfiles = glob.glob('./activities/*.gpx')
# What years to filter (None == All years)
years = list(range(2012, 2020))
years.append(None)
Mit dem Ergebnis bin ich sehr zufrieden, es ist zum ersten mal eine Interaktive Map mit ALLEN Tracks die man wirklich noch bedienen kann, selbst wenn man die Daten nicht minified.
> ./stramap
[+] Wrote 2014 to ./index.2014.html
[+] Plotting 2015
[+] Wrote 2015 to ./index.2015.html
[+] Plotting 2016
[+] Wrote 2016 to ./index.2016.html
[+] Plotting 2017
[+] Wrote 2017 to ./index.2017.html
[+] Plotting 2018
[+] Wrote 2018 to ./index.2018.html
[+] Plotting None
[+] Wrote None to ./index.None.html
Kommentare gerne dazu :)