Mapa cieplna 2016
Niedziela, 1 stycznia 2017
· Komentarze(0)
Duża mapa
Poor man's heat map. Tak na podsumowanie sezonu, spóźnione (bo pisane 15.01). Składa się z 72 śladów z 2016 - tych, które miałem na Endomondo oznaczone jako "sportowe". I taki też jest stan faktyczny 2016. Od 18 do 151 km. Mediana to 55 km.
Teraz będzie technobełkot. Aby skromna konfiguracja komputera przetrwała import danych w przeglądarce do uMap, uprościłem je najpierw za pomocą GPSBabel.
$ for x in ../*.gpx; do gpsbabel -i gpx -f $x -x simplify,error=2m -o gpx -F $(basename $x); done
W ten sposób objętość śladów z pierwotnych 109 MB zmalała do 7 MB. uMap nie dał rady zaimportować, nie wyświetlając przy tym żadnego wyjaśnienia. Po chwili zgadywania zauważyłem, że moja wersja GPSBabel - 1.4.3 - niepoprawnie kopiuje do wyjściowego pliku dane w blokach
<gpxtpx:TrackPointExtension>
(w których w moich plikach była kadencja, której tak naprawdę nie było, tj. była zerowa z powodu braku czujnika). Pomogło prymitywne odfiltrowanie.$ sed -i '/<gpxtpx:trackpointextension>/,/<\/gpxtpx:TrackPointExtension>/d' *.gpx
Ślady wyeksportowane z Endomondo miały już sensowne nazwy tras, bo wycieczki i tam nazywam. A zaleta jest taka, że na mapie uMap, po kliknięciu śladu, pojawia się etykieta. By wspominając po czasie, łatwiej było z mapy cieplnej kliknięciem odnaleźć wycieczkę w historii, brakowało jeszcze w tych etykietach dat. Hurtem eksportując curlem pliki z Endomondo miałem je już nazwane w formacie
YYYY-MM-DDTHH:MM:SS.gpx
, więc można było łatwo uzupełnić tytuły.$ for x in *.gpx; do d=${x%%T*}; sed -i "s/<name>/\0$d: /" $x; done
Eksperymentowałem z jeszcze jednym sposobem uproszczenia tras, który mógłby zapewnić, że ślady biegnące po tej samej drodze, biegłyby dokładnie w tych samych punktach - dopasowanie śladu do mapy narzędziem na bazie GraphHoppera. Na warsztat wziąłem tegoroczny już objazd miasta. Miasto to ciężki orzech do zgryzienia, zważywszy na obecność na mapie biegnących tuż obok siebie jezdni i dróg rowerowych. Do wyboru jest jeden parametr dopasowania, wskazujący zakładaną dokładność danych GPS w metrach. Na poniższych mapach granatowy kolor to ślad wejściowy, a fioletowy to efekt pracy programu.
Dokładność 40 m (domyślna)
Dokładność 20 m
Dokładność 10 m
Dokładność 40 m (domyślna)
Dokładność 20 m
Dokładność 10 m
Złotego środka nie ma. Czekam aż ktoś napisze edytor graficzny ze stosowaniem takich algorytmów do zaznaczonego obszaru i z możliwością łatwej ręcznej korekty. Zresztą co do mapy cieplnej surowe ślady nadają się nieźle. Brakuje mi jedynie darmowego narzędzia, które by do nakładających się punktów stosowało ładną cieplną paletę, podobnie do tego jak to wygląda na Stravie. A tak pozostaje mi sztuczka z przezroczystością rysowanych linii. Stąd właśnie "poor man's heat map".
PS. Jak uwielbiam bikestats, tak to jak zepsute jest filtrowanie wpisanego HTML, doprowadza mnie do szewskiej pasji, ilekroć próbuję wpisać coś więcej niż kilka literek. Nawet nie da się mapy z uMap wkleić dokładnie tak, jak uMap oferuje, bo po zapisaniu wpisu wszystkie atrybuty się rozsypują. A wpisanie tu powyżej nazwy znacznika HTML wymagało 20 prób by sprawdzić, jakiej kombinacji silnik nie zje.