Wie kann ich einen Track automatisch glätten. Mir schwebt sowas vor, dass die Geschwindigkeit (errechnet aus Strecke und Zeit) einen bestimmten Wert nicht überschreiten darf. Z.B. wenn ich nur zu Fuß unterwegs war und mich zwischendurch in einem Gebäude aufgehalten habe, habe ich dort sehr große Sprünge (teilweise über 400 kmh).
Mit TTQV bekomme ich das nicht hin - TrackProzessor|TrackAutomatischGlätten hilft mir jedenfalls nicht weiter.
-
-
Zitat
Original von Frühling
Wie kann ich einen Track automatisch glätten. Mir schwebt sowas vor, dass die Geschwindigkeit (errechnet aus Strecke und Zeit) einen bestimmten Wert nicht überschreiten darf. Z.B. wenn ich nur zu Fuß unterwegs war und mich zwischendurch in einem Gebäude aufgehalten habe, habe ich dort sehr große Sprünge (teilweise über 400 kmh).
Mit TTQV bekomme ich das nicht hin - TrackProzessor|TrackAutomatischGlätten hilft mir jedenfalls nicht weiter.Ich kenne kein Programm das sowas ordentlich macht !
Im Prinzip muß der gesamte Logbereich der im Gebäude + die "Einschwingzeit" gelöscht werden - Dazu würdm ich sagen fehlt den Programmen der Verstand!Das selbe gilt eigentlich auch für Bereiche mit sehr schlechten Empfang "Fixverlust...." - wobei das Werte die auf dem realen Weg liegen erhalten bleiben sollten!
Welches Programm kann sowas leisten?
Gut Werte mit Geschwindigkeit X nicht beachten geht!
Aber Positionen auf der Karte auf Plausibilität prüfen ( Ist der Punkt auf einem Weg und bin ich auch den gegangen.... ?Ich finde Logaufzeichnungen sind nur bedingt für irgendwelche Auswertungen geeignte - ich habe noch kein Log unter Realbedingungen (Klar kann ich mir die GPS-Maus auf den Hut kleben, nur auf dem freien Feld rumdappen und mich tunlichst von Bäumen und Gebäuden fernhalten...)das >30min das ohne irgendwelche Fehler aufgezeichnet ist.
Ohne Manuelle Nachbearbeitung meist garnicht zu gebrauchen.Meine Erfahrung ist:
1. Alle Werte mit unnatürlichen Werten (z.B. >20km/h als Fußgänger) rausschmeißen
2. Log auf die Rasterkarte legen und alle deutlich von Weg abweichenden Punkte löschen (Satzahl, HDOP + einschwingzeiten nach Fixverlust beachten).
3. Das Log in die Top50-Karte laden und die Höhen des Logs durch die des Höhenmodels der Top50 ersetzten lassen.Danach sollte man ein recht ordentliches Log besititzen das bis auf (Abschattung+Refelxion von Satelliten an Bergen/Gebäuden) OK ist.
Ein Programm das das alles Ordenlich und meist Fehlerfrei erledigen kann ist mir aber leider noch nicht in die Finger gekommen.
Gruß
Silver -
Zitat
Original von Silver341. Alle Werte mit unnatürlichen Werten (z.B. >20km/h als Fußgänger) rausschmeißen
Allein, dass finde ich schon umständlich per Hand zu entfernen (ich bediene allerdings das erste mal so ein Programm). Unter TTQV im X-plorer muß ich erstmal Track-Prozessor|Geschwindigkeit|AutomatischNachStreckeUndZeit die Geschwindigkeitswerte ausrechnen dann oberhalb einer gewünschten Geschwindigkeit löschen. Danach erneut die Geschwindigkeit ausrechnen lassen (da einige Wegpunkte weggelassen wurden ändern sich einige Werte), wieder löschen usw..
Der nächste Schritt wäre Wegpunkte weglassen, die eine bestimmte Entfernung vom letzten überschreiten (das sind eigentlich die letzten unschönen Ausschläge die noch übrig bleiben), wie mache ich das mit TTQV?Ich habe ja gar keine besonders hohen Ansprüche, aber das muss sich doch automatisieren lassen. Mir geht es vor allem um das Gezappele wenn ich mich in einem Gebäude aufgehalten habe.
-
Zitat
Original von FrühlingAllein, dass finde ich schon umständlich per Hand zu entfernen (ich bediene allerdings das erste mal so ein Programm). Unter TTQV im X-plorer muß ich erstmal Track-Prozessor|Geschwindigkeit|AutomatischNachStreckeUndZeit die Geschwindigkeitswerte ausrechnen dann oberhalb einer gewünschten Geschwindigkeit löschen. Danach erneut die Geschwindigkeit ausrechnen lassen (da einige Wegpunkte weggelassen wurden ändern sich einige Werte), wieder löschen usw..
Der nächste Schritt wäre Wegpunkte weglassen, die eine bestimmte Entfernung vom letzten überschreiten (das sind eigentlich die letzten unschönen Ausschläge die noch übrig bleiben), wie mache ich das mit TTQV?Ich habe ja gar keine besonders hohen Ansprüche, aber das muss sich doch automatisieren lassen. Mir geht es vor allem um das Gezappele wenn ich mich in einem Gebäude aufgehalten habe.
Ich verwende dafür meist (was nicht oft vorkommt) GPS-Track-Analyse.NET 4 da wird ein Geschwindigkeit und Höhendiagramm angezeigt und man kann die Punkte direkt anspringen und den Bereich löschen....
Vielleicht hilft dir das.
Gruß
Silver -
Zitat
Geiles Teil, danke!

-
Das Problem hat mich auch schon öfters beschäftigt. Nur bin ich zu faul, den Track manuell zu bearbeiten.
GPSBabel hat eine Option, unzuverlässige Punkte anhand zu hoher VDOP/HDOP-Werte zu eleminieren:
Remove unreliable points filter
-x discard,hdop=4Das habe ich zwar in meinen Scripts eingebaut, aber unnatürliche Sprünge kommen immer noch vor.
Ich könnte ein kleines Programm schreiben, dass ein Log bereinigt. Dazu müsste ich aber Kriterien haben, die fehlerhafte GPS-Fixes erkennt. Den Sprung an sich kann ich schon diagnostizieren. Das Problem ist nur, dass sie manchmal auch legal auftreten, wenn das Ding zwischendurch abgeschaltet wurde. Evtl. Kriterium einschränken : Sprung nur dann erlauben, wenn die Zeit dazwischen erheblich länger als die übliche Logeintrags-Zeit dauert. Bei kurzzeitigen Sprüngen wäre zu überlegen, ob der Fix vor oder hinter dem Sprung "gut" war. Isolierte Ausflüge von 1 Fix Berlin-Paris und zurück kann man getrost wegwerfen (kommt bei mir machmal vor, so ein hyperschneller West-Ausflug).
Kann das jemand formal formulieren, so dass ein sauberer Track herauskommt? Programmieren ist nich das Problem, sondern diese Kriterien computergerecht aufzustellen. Ich denke das müsste eigentlich möglich sein, auch ohne Hilfe von Kartendaten.
-
ZitatAlles anzeigen
Original von frank334
Das Problem hat mich auch schon öfters beschäftigt. Nur bin ich zu faul, den Track manuell zu bearbeiten.GPSBabel hat eine Option, unzuverlässige Punkte anhand zu hoher VDOP/HDOP-Werte zu eleminieren:
Remove unreliable points filter
-x discard,hdop=4Das habe ich zwar in meinen Scripts eingebaut, aber unnatürliche Sprünge kommen immer noch vor.
Ich könnte ein kleines Programm schreiben, dass ein Log bereinigt. Dazu müsste ich aber Kriterien haben, die fehlerhafte GPS-Fixes erkennt. Den Sprung an sich kann ich schon diagnostizieren. Das Problem ist nur, dass sie manchmal auch legal auftreten, wenn das Ding zwischendurch abgeschaltet wurde. Evtl. Kriterium einschränken : Sprung nur dann erlauben, wenn die Zeit dazwischen erheblich länger als die übliche Logeintrags-Zeit dauert. Bei kurzzeitigen Sprüngen wäre zu überlegen, ob der Fix vor oder hinter dem Sprung "gut" war. Isolierte Ausflüge von 1 Fix Berlin-Paris und zurück kann man getrost wegwerfen (kommt bei mir machmal vor, so ein hyperschneller West-Ausflug).
Kann das jemand formal formulieren, so dass ein sauberer Track herauskommt? Programmieren ist nich das Problem, sondern diese Kriterien computergerecht aufzustellen. Ich denke das müsste eigentlich möglich sein, auch ohne Hilfe von Kartendaten.
Über dem Problem der Trackbereinigung hab ich auch schongegrübelt leider bin ich zur Überzeugung gekommen das eine vollautomatische gute Trackbereinigung nicht zu realisieren ist.
Einige Punkte sind aber trotzdem übriggeblieben:
1: Löschen von Punkten mit (> X km/h )
2: Löschen von Punkten nach SatFix ( X sec ) evtl. noch mit wenn kein Fix ( > X min )
4: Einzelpunkte die deutlich von der Hauptrichtung der anderen Punkte abweichen löschen (Hauptrichtung 180° : Einzelpunkt 100° nächster Punkt 250° (zurück zur Hauptrichtung...))
4: Löschen von Punkten mit VDOP/HDOP ( > x ) allerdings gibts da auch genug Punkte die Stimmen was wiederum zu Informationsverlust führen kann wenn in dem Bereich größere Kursänderungen wahren ....Vor ähnlichen Problemen steh ich bei den Versuchen "Tracks zu kürzen" ob mit Glopus oder andern Möglichkeiten es gehen mir immer an wichtigen Stellen informationen verloren... (zB: Punkte auf einer (fast) graden Strecke bleiben erhalten aber Punkte an einer Kreuzung mit deutlicher Richtungsänderung werden gelöscht.
Gruß
Silver -
Gut, ein "verschönern" des Tracks ist nicht vollautomatisch und ohne Kartenbezug zu realisieren. Das kleinere Gezappele (100m-Radius) ist mir aber nicht so wichtig. In erster Linie möchte ich die groben Fehlpositionen eleminieren. Das stört z.B. wenn ein einzelner "Ausflug" nach Paris den Google-Kartenzoom auf ganz Europa ausdehnt, obwohl ich nur eine kleine lokale Radtour gemacht habe. Oder nach dem Ausschalten und Wiedereinschalten auf dem Rastplatz waren die ersten Fixes kilometerweit daneben. Ich denke das sollte schon automatisch gehen können. Nur fehlen mir Kriterien, solche Punkte sicher als "falsch" klassifizieren zu können.
Evtl. hätte man schon viel erreicht, kilometerweit entfernte isolierte Punkte zu eleminieren, die in realistischer Geschwindigkeit nicht erreichbar sind. Angenommen, man will nicht mal zwischendurch nur einen einzelnen Fix loggen. Oder gibt es auch ganze fehlerhafte "Linien"? So genau habe ich meine Logs bezüglich der GPS-Fehler noch nicht angeschaut.
-
Zitat
Original von frank334
Das stört z.B. wenn ein einzelner "Ausflug" nach Paris den Google-Kartenzoom auf ganz Europa ausdehnt, obwohl ich nur eine kleine lokale Radtour gemacht habe.Genau diese "Ausreisser" eliminiere ich dadurch, dass ich die Koordinaten mit denen eine Sekunde vorher auf größere Abweichung als x überprüfe (wofür 'x' steht, kann ich Dir gerade nicht sagen - ist aber ein recht kleiner Wert).
Ist das der Fall, fliegt der satz raus, und der nächste wird mit dem vor dem gelöschten geprüft.
Klappt einwandfrei

-
Ja, ich denke auch dass es vorwiegend singuläre Ausreisser sind und nicht zwei oder mehr Ausreisser nahe nebeneinander stehen (dann könnte man das nicht mehr so einfach automatisch beurteilen).
Mal sehen, werd das bei Gelegenheit mal ein meinen Konverter einbauen. Bei mir reicht ein Mausklick um ein NMEA-File in GoogleEarth darzustellen, ohne manuell Programme aufzurufen. Das zugehörige Batch-Skript basiert auf GPSBabel. Da müsste sich etwas derartiges relativ einfach einbauen lassen.
Oder hast du schon ein Programm das den NMEA-Track automatisch auf solche Ausreisser bereinigt?
p.s. besser wäre natürlich, wenn man die Aussreisser anhand der GPS-eigenen Genauigkeitsinformationen VDOP/HDOP/PDOP erkennen könnte. Aber anscheinend sind die in diesen Fällen genauso falsch.
-
Ich mache das mit REXX - insofern können auch ruhig mehrere "defekte" Sätze hintereinander kommen. Wenn einer gelöscht wird, wird der nächste wieder mit dem Satz, der vor dem gelöschten Satz steht, verglichen.
-
Zitat
Original von HSVMichi
Ich mache das mit REXX - insofern können auch ruhig mehrere "defekte" Sätze hintereinander kommen. Wenn einer gelöscht wird, wird der nächste wieder mit dem Satz, der vor dem gelöschten Satz steht, verglichen.Tja, bei REXX muss ich passen. Gib's darin einen NMEA-Parser? Durch die verschiedenartigen Parametersätze/Protokolle ist das Format relativ kompliziert. Ich würde eher auf ASCII-CSV operieren mit einer Zeile pro GPS-Fix. Ich habe gerade mal probiert, der irrtümlich kurze Frankreich-Trip von gestern wurde mit der GPS-Babel-Option eleminiert, die bei mir standardmässig im NMEA2KML Konverter sitzt:
-x discard,hdop=10,vdop=20Mit Aussreisser nebeneinander meinte ich übrigens, dass z.B. zwei aufeinanderfolgende defekte Positionen jeweils räumlich nahe beieinander sind. Das wäre schwer von korrekten Positionen zu unterscheiden. Aber so etwas sehe ich momentan nicht in meinen Logs.
-
Wie kann ich die folgende Strecke glätten damit eine realistische Streckenlänge dabei raus kommt (nmea-log im Anhang). [Blockierte Grafik: http://s02.imagehost.org/1244/itracku.jpg]
Da dies ein Log im Sekundentakt ist, stelle ich mir einen laufenden Mittelwert vor, also jeder Wert wird durch den Mittelwert der x vorherigen, dem aktuellen und den x nachfolgenden Werten berechnet. Gibt's da schon eine Lösung für oder sollte ich mir das selbst basteln, ich würde es dann unter Access machen. -
Zitat
Original von Frühling
Wie kann ich die folgende Strecke glätten damit eine realistische Streckenlänge dabei raus kommt (nmea-log im Anhang). [Blockierte Grafik: http://s02.imagehost.org/1244/itracku.jpg]
Da dies ein Log im Sekundentakt ist, stelle ich mir einen laufenden Mittelwert vor, also jeder Wert wird durch den Mittelwert der x vorherigen, dem aktuellen und den x nachfolgenden Werten berechnet. Gibt's da schon eine Lösung für oder sollte ich mir das selbst basteln, ich würde es dann unter Access machen.Mittelwerte bringen da keine Verbesserung - da werden die Werte einfach nur glattgeschmiert. Sinnvoller ist da vielleicht Punkte die x Meter vom letzten genommen Punkt entfernt ist zu nehmen (Beim Wandern vielleicht alle 20m) das dürfte noch genug Punkte für eine erkennbaren Weg aber größer der Ungenauigkeit des GPS wenn man mal 2 min wo steht...
Ich hab da zwar schon was ausprobiert in Excel auf die Füsse zu stellen (Berücksichtigt werden darin HDOP, Entfernung und Richtung), aber aus Zeitmangel hab ich das noch nicht soweit Fertig das ich mit dem Ergebniss zufrieden währe.
Gruß
Silver -
Zitat
Original von Silver34Sinnvoller ist da vielleicht Punkte die x Meter vom letzten genommen Punkt entfernt ist zu nehmen (Beim Wandern vielleicht alle 20m) das dürfte noch genug Punkte für eine erkennbaren Weg
Irgendwie kann ich mir nicht vorstellen, dass das die beste Lösung ist.