Montag, 22. September 2014

GPS Track Informationen - Wie kriege ich realistische Statistiken ?

Wer kennt das Problem nicht, da macht man eine Wanderung (oder aber eine Geocache-Tour) und am Ende stimmen die GPS Track Informationen überhaupt nicht mit den Angaben überein, die man über die Wanderung (Geocache-Tour) gekriegt oder herausgelesen hat. Es wird eigentlich immer zuviel angezeigt, je nach dem sogar massiv zuviel.

Letzes Wochenende ist es mir wieder einmal nach einer Etappe auf dem Jura-Höhenweg aufgefallen (Track von einem Garmin Oregon 450t):

 Distanz Angaben  Höhenmeter Angaben
Wanderführer 18 km Aufstieg: 1250 m: Abstieg: 460 m
Garmin BaseCamp 26.1 km Aufstieg: 1398 m; Abstieg: 570 m
QLandkarte GT 26 km Aufstieg: 2677 m; Abstieg: 1852 m

Grund genug, das Problem und eventuell mögliche Lösungs-/Verbesserungsansätze anzuschauen und zu dokumentieren.

GPS - Global Positioning System

Um zu verstehen, warum wir zum Teil ziemlich unpräzise Angaben direkt aus den GPS Tracks erhalten, müssen wir verstehen, wie die Daten entstehen und wie sie gemessen werden. Also müssen wir, wenigstens einigermassen, verstehen wie das GPS (Global Positioning System) funktioniert. Nur so können wir begreifen, wie es zu den oben aufgeführten Endresultaten kommt.

GPS - Wie funktioniert das

Es gibt im Internet genug und genug gute Erklärungen über die Funktionsweise des GPS. Darum beschränke ich mich hier auf das präsentieren einiger Links zu guten Erklärungen.
Wichtig ist auch noch zu wissen, welche Genauigkeiten bei guten Bedingungen zu erwarten sind, darüber gibt auch noch die folgende Seiten vom OSM Projekt auskunft:

GPS Track Informationen - Was ist das

Das GPS bestimmt konstant die Koordinaten (Längengrad, Breitengrad, Höhe), jeder dieser einzelnen Werte ist mit bestimmten Fehlern behaftet. Ein GPS Track ist eine Ansammlung von Einzelmessungen versehen mit Aufnahmedatum und -Zeit und eventuell noch angereichert mit zusätzlichen Information.
Die Angaben über gemachte Gesamtdistanz und Höhendifferenzen (Aufstieg und Abstieg) schlussendlich sind eine Aufsummierung der Distanzen und Höhenunterschiede zwischen den einzelnen Punkten. Meistens verwenden die Programme schon irgendwelche Algorithmen um Messfehler und Ungenauigkeiten zu eliminieren.

Verwendeten Programme für die Analyse und die Lösungsansätze

Beim Herumstöbern bin ich auf das Java Programm GpsPrune gestossen, es braucht keine Installation und es läuft, weil es in Java ist, direkt auf den verschiedensten Betriebssystemen (Windows, OsX, Linux) und ist bezüglich Analyse und Bearbeitung von GPX Tracks eine grosse Hilfe.
Daneben verwende ich noch QLandkarte GT, von welchem auch die meisten Bildschirmfotos hier stammen.

GPS Track Information - Erklärungsversuch für die ungenauen Angaben

Schauen wir uns nun einmal einen GPS Track etwas genauer an. Der erste GPS Track stammt von einem Garmin Oregon 450t und wurde auf während einer 2 Tages Wanderung von Balsthal via Weissenstein nach Frinvillier aufgenommen. Es sind zwei Etappen auf dem Jura-Höhenweg.


Kilometer Angaben - Was ist Sache

Die Koordinaten und die daraus resultierende Track Länge sind meiner Ansicht nach nicht allzu fehleranfällig solange man in Bewegung ist. Macht man aber eine Pause oder sucht einen Cache, dann entstehen Punkte-Wolken, die nicht in die Gesamtauswertung des Track gehören, da es sich um Daten mit hohem Fehleranteil handelt.
Hier zur Illustration ein paar Bilder vom Track. Die roten Ringe zeigen jeweils den Bereich an, der das nächste Bild abdeckt und ein Klick auf die jeweiligen Bilder vergrössert sie.
Zuerst die Übersicht des kompletten Tracks, es sind keine Ausreisser oder Wolken zu sehen, es ist eine schöne geglättete Linie.
Auch bei dieser Vergrösserung sieht man noch nicht viel kritisches und auffälliges, der Zweig im roten Kreis ist korrekt, dort zweigten wir kurz ab um einen anderen Cache zu loggen.
Bei der weiteren Vergrösserung aber wird ein Punkte-Haufen sichtbar. Das war ein Marschhalt von ungefähr 19 Minuten mit kurzer Verpflegung und Kleiderwechsel.
Dieser Marschhalt ohne eigentliche Bewegung zählte aber auf dem GPS, wie man auf dem Bild unten sehen kann, 572 m an gutgemachter Distanz und zusätzlich 264 m Aufstieg und 255 m Abstieg. Ich hab noch nie so einfach über 250 Höhenmeter erledigt...


Höhenmeter Angaben - Was ist Sache

Ohne viele Erklärungen will ich zuerst wieder ein paar Bilder zur Veranschaulichung zeigen, ein Klick auf die einzelnen Bilder vergrössert sie:
Beim ersten Bild sieht man das Höhenprofil (Distanz zur Höhe) des kompletten GPS Tracks wie es nach dem Laden in QLandkarte GT dargestellt wird. Das Höhenprofil sieht nach einer schönen, geglätteten Linie ohne Ausreisser aus.
Wenn man nun aber das Profil vergrössert (die Distanzangaben zeigen, wo man sich auf dem Track befindet), dann sieht man, dass es sich nicht um eine glatte Linie, sondern eigentlich um eine eher verzitterte und ausgefranste Linie handelt.
Noch klarer wird es, wenn man das Profil noch mehr vergrössert, da entsteht ein regelrechtes auf und ab, sogar zum Teil mit klaren Ausreissern/Fehlmessungen.
Wenn nun die Auswertung eines GPS Tracks einfach jede einzelne Höhendifferenz zwischen Punkten entweder zum Aufstieg oder zum Abstieg dazu addiert, dann ist es schnell mal klar, dass das Resultat viel zu hoch ist. Und da verschiedene Programme scheinbar verschiedene Vereinfachungen / Glättungen anwenden, kommt man zu verschiedenen Ergebnissen.
Den Einfluss der Vereinfachungen auf die berechneten Höhenunterschiede kann man sehr schön anhand folgenden Tabelle zeigen. Sie wurde mit Hilfe des Programms GpsPrune erstellt. Bei diesem Programm kann man einen Schwellwert für das Summieren der Höhenunterschiede einstellen. Stellt man den Wert beispielsweise auf 50 m ein, dann wird erst etwas zu den Höhenunterschieden dazugerechnet, wenn wir entweder 50 m auf- oder abgestiegen wird. Bewegen wir uns innerhalb von +/- 50 m vom vorherigen Wert, dann wird nichts dazugerechnet. Es ist möglich, den Wert von 0 m (jede kleinste Höhenänderung wird aufsummiert, auch wenn es nur eine statistische Streuung ist) bis zu 100 m einzustellen. Und die Wahl dieses Wertes (er nennt sich in GpsPrune auf Deutsch Altitudtoleranz) hat einen riesigen Einfluss auf die Endsummen:
Altitudtoleranz Aufstieg Abstieg
0 m (leer)6874 m6060 m
5 m3249 m2425 m
10 m2089 m1265 m
15 m1732 m908 m
20 m1563 m739 m
25 m1384 m560 m
30 m1270 m446 m
40 m1237 m413 m
50 m1237 m413 m
60 m1237 m413 m
70 m1172 m348 m
80 m1172 m348 m
90 m1172 m348 m
100 m1081 m257 m

Wie verhalten sich verschiedene GPS mit verschiedenen Einstellungen in verschiedenen Programmen ?

Zusätzlich ins Spiel kommen noch die Einstellungen für das Aufnehmen des Tracks direkt auf dem GPS: werden die Punkte in fixen Zeitabständen aufgenommen ? Oder werden sie per zurückgelegte Distanz gesteuert ? Wieviele Punkte werden aufgenommen ? Das alles sind Faktoren, die auf die endgültigen Höhen- und Distanzauswertungen eines Tracks einen nicht geringen Einfluss haben. Und verschiedene GPS verhalten sich auch sonst unterschiedlich durch die unterschiedlichen GPS Chips, Antennen und so weiter.
Um dies zu verdeutlichen machen wir hier einen kurzen Vergleich von einem weiteren Track des Jura-Höhenwegs, der Etappe Weissenstein - Frinvillier, aufgenommen mit drei unterschiedlichen GPS, einem Garmin Oregon 450t, einem Garmin eTrex 30 und einem Garmin Monterra.
Die Track Einstellungen sind wie folgt:

  • Garmin Oregon 450tAufzeichnungsart: Auto
    Intervall: am häufigsten
  • Garmin eTrex 30Aufzeichnungsart: Auto
    Intervall: Normal
  • Garmin Monterra
    Aufzeichnungsart: Auto
    Intervall: Am häufigsten
    Auto-Start: An
    Auto-Pause: Aus
Und hier nun ein Vergleich der Verschiedenen Tracks in den Verschiedenen Programmen (ohne Vereinfachungen oder Optimierungen):

 GPS  Distanz Angaben  Höhenmeter Angaben
Wanderführer - 24 km Aufstieg: 800 m: Abstieg: 1550 m
Garmin BaseCamp Oregon 450t 29.1 km Aufstieg: 884 m; Abstieg: 1551 m

eTrex 30 27.3 km Aufstieg: 844 m; Abstieg: 1530 m

Monterra 27.7 km Aufstieg: 898 m; Abstieg: 1587 m
QLandkarte GT Oregon 450t 29 km Aufstieg: 1821 m; Abstieg: 2487 m

eTrex 30 27 km Aufstieg: 759 m; Abstieg: 1443 m

Monterra 28 km Aufstieg: 829 m; Abstieg: 1519 m
QLandkarte GT (Profilglättung 5 Pte) Oregon 450t 29 km Aufstieg: 819 m; Abstieg: 1485 m

eTrex 30 27 km Aufstieg: 711 m; Abstieg: 1394 m

Monterra 28 km Aufstieg: 736 m; Abstieg: 1426 m
GpsPrune (Altitudtoleranz=0) Oregon 450t 29.1 km Aufstieg: 3274 m; Abstieg: 3941 m

eTrex 30 27.3 km Aufstieg: 1006 m; Abstieg: 1693 m

Monterra 27.7 km Aufstieg: 1518 m; Abstieg: 2209 m
GpsPrune (Altitudtoleranz=20) Oregon 450t 29.1 km Aufstieg: 847 m; Abstieg: 1514 m

eTrex 30 27.3 km Aufstieg: 683 m; Abstieg: 1370 m

Monterra 27.7 km Aufstieg: 692 m; Abstieg: 1384 m
Auch dies macht deutlich, dass es DIE Wahrheit nicht gibt.

Und jetzt ? Was kann man machen ?

Nach einigem Probieren und Testen bin ich zwar noch überhaupt nicht glücklich aber folgendes Vorgehen hat sich einigermassen bewährt, um mehr oder weniger vernünftige Werte zu kriegen:
  1. Manuelles entfernen der Punkte-Wolken während Pausen (oder Geocache Suche)
  2. Vereinfachen / Glätten der Höhenwerte des Tracks
Für das Entfernen der Punkte-Wolken hätte ich gerne noch einen automatischen Algorithmus gefunden, doch leider scheint es da nichts zu geben, was die üblichen Teile des Tracks nicht auch noch unnötig vereinfacht.

1. Manuelles entfernen der Punkte-Wolken während Pausen (oder Geocache Suche)

Meiner Ansicht nach sind die Punkte-Wolken, die während Pausen ohne wirkliche Bewegung entstehen, die grösste und am schlechtesten vorhersehbare (also auch am schlechtesten korrigierbare) Fehlerquelle. Und da ich bis jetzt keinen vernünftigen Filter gefunden habe, der diese Wolken zuverlässig und komplett entsorgt ohne den restlichen Track negativ zu beeinflussen, mache ich das in nächster Zukunft von Hand. Ist zwar etwas an Arbeit, doch dafür ist das Endresultat dann wesentlich vernünftiger. Das Entfernen dieser Wolken geht mit den folgenden beiden Programmen (andere funktionieren sicher ähnlich gut) ziemlich einfach von der Hand:
  • QLandkarte GT
  • GpsPrune

2. Vereinfachen / Glätten der Höhenwerte des Tracks

Im Moment habe ich für die Optimierung der gelieferten Höhendifferenzen mehrere Ansätze:
  • GpsPrune: Einstellen der Altitudtoleranz auf 20-25 m und Ablesen der aufsummierten Höhendifferenzen, je nach Track (GPS, Einstellungen, ...)
  • Garmin BaseCamp liefert nach dem korrigieren der Punkte-Wolken direkt einigermassen vernünftige Werte
  • QLandkarte GT hat die Möglichkeit die Höhenwerte der einzelnen Punke eines Tracks mittels Medianfilter zu glätten. Mögliche Werte für die Feineinstellung sind Medianmittel über 5 - 9 Punkte. Für mich als praktikabel erwiesen haben sich 5 Punkte, je nach Track (GPS, Einstellungen, ...)

Ist das nun alles ?

Wirklich zufrieden mit den Lösungsansätzen bin ich nicht. Ich werde weiter versuchen meinen Ablauf für die Interpretation von den GPS Tracks zu optimieren. Und falls ich bahnbrechende Erfolge habe, werde ich es hier sicher wieder dokumentieren.
Vor allem bin ich der Ansicht, es sollte möglich sein, die Punkte-Wolken mit irgendeiner mathematischen Beschreibung zuverlässig erfassen und dementsprechend eliminieren zu können. Das würde einiges bringen.
Das einzige schlüssige Fazit bis jetzt ist eigentlich: es gibt kein allgemeingültiges Vorgehen, welches man ohne Analyse und ohne Nachdenken durchexerzieren kann, jedes GPS, jeder Track braucht eine leicht andere Behandlung, wenn man am Schluss einigermassen vernünftige Werte haben will.

Keine Kommentare:

Kommentar veröffentlichen