Durchschnittsbildung von GPS-Tracks

Ich bewundere in JOSM und frühers in Potlach die Menge der GPS-Spuren und deren Streuung um einen Weg herum. Die Streuung ist ja teiweise ziemlich breit.

Mir ist vor kurzen die Frage durch den Kopf geschossen, ob man aus diesen GPS-Aufzeichnungen eine Art Mittelwert bilden könnte und damit sehr genau den Verlauf eines Weges feststellen könnte.

Ich wundere mich immer wieder, dass bei verschiedenen Wegen meine GPS-Position auf dem Bildschirm immer wieder den gleichen Versatz zum Weg hat. Das habe ich eigentlich nur in Wäldern. Das Luftbild gibt nichts her, die GPS-Aufzeichnungen streuen um den Weg herum.

So etwas kenne ich dann, wenn es geografische Gegebenheiten gibt, die die GPS Signale an Objekten reflektieren lassen, zum Beispiel in Schluchten, an den Wänden. In diesem Fall empfängt das GPS die reflektierten Signale und errechnet aufgrund der etwas längeren Signallaufzeit eine etwas falsche Position. Ich habe dies schon sowohl in Häuserschluchten in der Großstadt, als auch in Bergschluchten erlebt. In Wäldern abseits von Schluchten habe ich dies aber niemals permanent (allenfalls temporär bei sehr ungünstigen Satellitenkonstellationen).

Was für ein GPS verwendest du? Ich habe mehrere Geräte und kann deutliche Unterschiede in der Genauigkeit feststellen. Ich habe ein Garmin eTrex 20, ein Garmin Oregon 550 und ein Garmin Foretrex 401. Das eTrex ist am genausten, dicht gefolgt vom Oregon 550. Das Foretrex ist am ungenauesten. Dessen Tracks verwende ich für OSM so gut wie gar nicht mehr (liegt öfter mal um 15 Meter daneben).

Gruß
Unixasket

Mir geht es jetzt weniger, darum ob mein GPS genau genug ist. Die Frage, die mich eigentlich interessiert, lautet, gibt es ein Verfahren, das trotz all dieser Abweichungen der einzelnen GPS-Geräte aus allen Aufzeichnungen den eigentlichen Wegverlauf berechnen kann?

Ist wohl nicht trivial. Siehe auch hier:
http://forum.openstreetmap.org/viewtopic.php?id=6846
und hier
http://www.naviuser.at/forum/archive/index.php/t-4095.html

Gerüchteweise kann MapTK so etwas (siehe 2.Link). Da du aber die systematischen Fehler der einzelnen Tracks nicht kennst und damit auch nicht bewerten kannst, muß das zwangsweise ungenau werden. Insbesondere, wenn die Tracks nur von wenigen Personen stammen.

Gruß,
Zecke

Erschwerend kommt hinzu, dass die Stützpunkte der einzelnen Tracks selten auf einer zum Trackbündel rechtwinkligen Linie liegen. Da wird die Mittellung noch schwieriger…

sieh auch:
http://wiki.openstreetmap.org/wiki/DE:Zuverl%C3%A4ssigkeit_von_OSM_Koordinaten

Hallo,

in JOSM habe ich eingestellt, dass die unterschiedlichen Bewegungsrichtungen der Spuren in verschiedenen Farben dargestellt werden - so sehe ich die Spuren von zwei entgegengesetzten Fahrspuren in Komplementärfarben dargestellt (Ost/West in grün/rot und Nord/Süd in blau/gelb), um die Fahrbahnmitte besser erkennen zu können. Man kann auch umschalten, verschiedene Geschwindigkeiten farblich unterschiedlich dargestellt zu bekommen.

Wenn Spuren gemittelt werden, sollten nur Spuren der gleichen Richtung gemittelt werden - ebenso sollte die Spur eines langsam befahrenen Radwegs neben einer Straße nicht mit der schneller befahrenen Fahrbahn gemittelt werden.

Vorschlagende Grüße,
Franz

Hallo Franz

Kommt natürlich immer auf die Situation an.
Bei beidseitigen Radwegen gleicht es sich weitgehend aus, bei einem einseitigen Radweg würde es das Ergebniss beinflussen. Aber dennoch ein interessanter Hinweis.

Die Geschwindigkeit ist ein schwieriges Kriterium. Manchmal fährt man auch mit einem Auto langsam und manche Radfahrer sind mit mehr als 30 km/h unterwegs. Solange man an den Tracks nicht die Bewegungsart erfassen kann, ist man da immer auf Vermutungen angewiesen.

Edbert (EvanE)

Es müssen nur genügend Tracks für ein Bündel vorliegen (ab 5 bis 10), dann wird das Ergebnis ganz passabel. Da ich nichts gefunden habe, das eine Mittelung mehrerer Tracks ermöglicht (auch nicht GPSPrune und GPS-Track-Analyse.NET), habe ich mir selbst was geschrieben. Ein simples Mittel wird zu stark durch Ausreißer beeinflusst, Median wäre schon besser, ich habe aber ein gewichtetes Mittel genommen, bei der der Abstand eines Punktes zu allen anderen Tracks eingeht. Dadurch werden Ausreisser zuverlässig eliminiert. Ich verwende das zur Mittelung von Tracks, die gleichzeitig von bis zu 6 Loggern aufgenommen wurden. Die Zuordnung der zu mittelnden Punkte kann in diesem Fall über die Zeitstempel erfolgen.
Ich bin mit dem Ergebnis in der Regel ganz zufrieden, der gewichtete Track verläuft ruhiger als die einzelnen Tracks. In kritischen Situationen (dichter Wald o.ä.) wackelt die Mittelung natürlich stärker, aber nie so stark wie einzelne Tracks.
Effekte, die allen Loggern auf Grund der überall vorhandenen Kalman-Glättungsfilter gemeinsam sind, wie das Abrunden von Ecken, können aber durch kein Programm beseitigt werden.

Das geht schon, wenn man zwischen den Stützpunkten auf etwa denselben Abstand interpoliert. Dann kann man zu dem Punkt auf einem Track die nächstliegenden der anderen Tracks zur Mittelung hernehmen. Bei stark besetzten Bündeln geht das sogar genauer als mit dem Auge, da man auch bei Abschwächung des Layers mit den Tracks eine lokale Häufung von Tracks nur schlecht sieht.
Durch geeignete Wahl der Toleranz ist es auch möglich, Tracks von Radweg und Straße zu trennen. Selbst die Fahrbahnen von Landstraßen können getrennt werden, insbesondere wenn man ausnutzt, dass selbst bei OSM-Tracksegmenten ohne Zeiten wenigstens die Reihenfolge und damit die Richtung erhalten bleibt.

@ OP: ich kenne zwei Ansätze als Scripte in der Programmiersprache R und habe die mal getestet und (in englisch) beschrieben:
osm-makeroads
average tracks plus Nachlese anlässlich dieses posts. :slight_smile:

@ seichter: Link zum Script/Programm?

Das Programm ist in Java für den Hausgebrauch und nicht zur Veröffentlichung gedacht (Start aus Java-Editor, Kontrollausgaben in Konsole, Parameter im Quellcode, …). Die zeitliche Mittelung verwende ich täglich, ist aber wohl ein Spezialfall. Die örtliche Mittelung ist noch experimentell.
Ziel war eigentlich, gemittelte Linien zur Kalibrierung von Bildern wie Bing zu erhalten, ähnlich wie es GPSBlam für einzelne Punkte macht. Zum automatischen Zeichnen von Tracks war das nicht gedacht, nach Reduktion a la Douglas-Peucker könnte das aber schon eine erhebliche Erleichterung für die Nachbearbeitung von Hand sein.

Im folgenden ein Beispiele für die Trenta-Tracks http://malenki.ch/OSM/average-tracks_all.gpx.gz:
http://www.openstreetmap.org/user/seichter/traces/1445716

und hier ein Beispiel für die Kehre im Osten, gemittelt aus allen OSM-Tracks in der bounding box aus diesem Gebiet, also etliche Tracks auch kreuz und quer:
http://www.openstreetmap.org/user/seichter/traces/1445715
Das Programm sucht sich Tracks mit genug Nachbarn selber aus, man kann sich die Vorarbeit also weitgehend sparen.

Das nur zur Demo, was möglich ist.

edit: Vermutlich sind die Tracks nicht sichtbar (ich bekomme import failure). Ich versuche es morgen wieder.
edit2: Funktioniert jetzt: Musste Zeiten künstlich generieren, damit tracks akzeptiert wurden.

Die Software Topofusion http://www.topofusion.com/ hat so eine Funktion, wo man eine Menge an GPS Tracks laden kann und daraus dann ein Wege Neztwerk berechnet wird (Make Network).
Mit zwei Reglern (Reduktion Strength, Contraction Stength) kann man den Algorithmus beeinflussen. Siehe http://www.topofusion.com/manual.php#network

Ansonsten hat die Software auch noch weitere praktische Funktionen um GPS Tracks zu analysieren & verwalten.

Ich denke schon, dass man mit einem intelligenten Plugin dort gewaltig was reissen könnte, insbesondere zum Ausrichten von Luftbildern.
Es müssten dafür Tracks in änlicher Richtung (+/-3 Grad), ähnlicher Geschwindigkeitsklasse ( 4-6 Klassen, gern auch mit Überschneidung!) zusammengefasst werden.
Tracks ohne Timestamp/Geschwindigkeit würden also draußen bleiben müssen.

Kreuz A66-A3 bei Frankfurt: http://osm.org/go/0DevKlo~t-



( http://imgur.com/a/Gey8C )