RouteConverter Forum

Full Version: Unrealistische Positionen in Track löschen?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
In meinen Tracks, insbesondere denen aus dem Google Standortverlauf (oder jetzt Zeitachse?), habe ich viele GPS- Positionen die offensichtlich fehlerhaft sind.

Das ist eigentlich nicht dramatisch, aber wenn ich z.B. am Chiemsee bin und eine schöne Tour nach Calw von vor ein paar Jahren noch mal fahren will stören diese Positionen doch enorm.

Im RC habe ich keine Möglichkeit gefunden solche Positionen, welche dann in einem Zeitraum von wenigen Sekunden kilometerweit von der vorigen entfernt und damit offensichtlich im Track unrealistisch sind, automatisch zu löschen.

Gibt es vielleicht doch eine Möglichkeit oder kennt jemand ein anderes Programm das das kann?
Moin...

Du denkst scheinbar an eine Umkehrung der Funktion Position -> Lösche doppelte Positionen...

Position -> Lösche doppelte Positionen... erlaubt es, automatisiert eine Häufung von Trackpunkten zu finden, die nahe beieinander liegen (zum Beispiel im Stillstand aufgezeichnete Punkte) oder die für die Darstellung der allgemeinen Kontur des Tracks nicht relevant sind (Douglas-Peucker-Algorithmus in der aktuellen Anwendung).

Eine Quasi-Umkehrung sollte dann, basierend auf den vorherigen und nachfolgenden Trackpunkten, nach gravierenden Ausreißern suchen. Der Wert für 'gravierend' sollte möglichst noch einstellbar sein. Im Prinzip könnte auch der Douglas-Peucker-Algorithmus eine andere Verwendung finden: Im Gegensatz zur bisherigen Anwendung sollte nach Einzelpunkten gesucht werden, die sich weit ausserhalb der Kontur des Tracks befinden und deren Harmonie stören.

[attachment=2214]
Korsika 2010 - offensichtliche Ausreisser rot markiert
Hallo,

ein möglicher Ansatz wäre evtl. etwas über die Geschwindigkeit zwischen den Punkten zu machen. Zumindest mache ich das immer so, wenn ich das manuell suche. Die Ausreißer haben meist irgendwelche utopischen Geschwindigkeiten bzw. Beschleunigungen, die danach wieder normal sind.

Ich weiss z.B., dass mein Auto keine 987km/h schafft oder innerhalb von 50m von 30 km/h auf 200km/h beschleunigt und dann wieder zurück bremst.

Evtl. könnte man solche Grenzen einstellbar machen und dann durch den RC die Überschreitungen finden lassen.

Gruss
Thomas
Ja, genau die meine ich.

Das Minilog auf dem TomTom hatte die Ausreißer fast nicht, aber das funktioniert seit dem Update nach dem Weeknumber Rollover nicht mehr und vom Google Standortverlauf kriege ich die Rohdaten nur in Paketen zu 2 Monaten, und die sehen dann übel aus:
Mit dem Thema "zuverlässige Ausreißererkennung" beschäftigen sich Scharen von Mathematikern, eine Einführung ist hier zu lesen.

(03.07.2020, 05:33)kumo Wrote: [ -> ]Im Prinzip könnte auch der Douglas-Peucker-Algorithmus eine andere Verwendung finden: Im Gegensatz zur bisherigen Anwendung sollte nach Einzelpunkten gesucht werden, die sich weit ausserhalb der Kontur des Tracks befinden und deren Harmonie stören.

Der Douglas-Peucker-Algorithmus gibt das nicht her. Einfachere Lösungen: GPS-Track-Analyse hatte eine manuelle Fehlererkennung über die Suche nach Extremwerten, Trackguru hat eine geschwindigkeitsbasierte Fehlererkennung. Bei letzterem werden die Einstellungen über Profile parametriert, out of the box gibt es Pferd/Wanderer/Trekkingrad, für motorisierte Fortbewegung muß man per Editor ein neues Profil anlegen. Für RC könnte ich mir unter "doppelte Positionen löschen" einen weiteren Menüpunkt "alle Punkte mit einer Geschwindigkeit über xxx km/h markieren" vorstellen.
(03.07.2020, 08:38)lundefugl Wrote: [ -> ]Hallo,

ein möglicher Ansatz wäre evtl. etwas über die Geschwindigkeit zwischen den Punkten zu machen...

Jep, danke, hab ich auch schon dran gedacht.
leider kann man die Spalten nicht nach Werten sortieren, sonst wäre es einfach.

Also erst nach Geschwindigkeit, alle hohen raus und dann wieder nach Datum / Zeit.

Wenn ich die gpx aber in ner Datenbank oder Tabellenkalkulation bearbeite kommt vermutlich wenig brauchbares raus?
Manuell ist es zu viel...
(03.07.2020, 10:07)nordlicht Wrote: [ -> ]Einfachere Lösungen: GPS-Track-Analyse hatte eine manuelle Fehlererkennung über die Suche nach Extremwerten, Trackguru hat eine geschwindigkeitsbasierte Fehlererkennung. Bei letzterem werden die Einstellungen über Profile parametriert, out of the box gibt es Pferd/Wanderer/Trekkingrad, für motorisierte Fortbewegung muß man per Editor ein neues Profil anlegen.

Besten Dank, Cool
muss ich mir mal anschauen.
(03.07.2020, 08:38)lundefugl Wrote: [ -> ]Ich weiss z.B., dass mein Auto keine 987km/h schafft oder innerhalb von 50m von 30 km/h auf 200km/h beschleunigt und dann wieder zurück bremst.

Evtl. könnte man solche Grenzen einstellbar machen und dann durch den RC die Überschreitungen finden lassen.

Hallo Thomas,

also etwas analog zu PositionsModel#getPositionsWithinDistanceToPredecessor, das dann aus dem "Lösche Positionen" Dialog aufgerufen wird?

Das ist dann analog zu

Code:
public int[] getPositionsWithinDistanceToPredecessor(double distance) {
        List<P> positions = getPositions();
        if (positions.size() <= 2)
            return new int[0];
        P previous = positions.get(0);
        List<Integer> result = new ArrayList<>();
        for (int i = 1; i < positions.size() - 1; i++) {
            P next = positions.get(i);
            if (!next.hasCoordinates() || toDouble(next.calculateDistance(previous)) <= distance)
                result.add(i);
            else
                previous = next;
        }
        return toArray(result);
    }

bloß, dass die Bedingung
Code:
next.calculateDistance(previous) <= distance
etwas komplizierter ist.

Klingt jetzt nicht so schwierig, wenn
  • man Dateien zum Testen hat
  • vernünftige Kriterien, die sich idealerweise auf die aktuelle und die vorherige Position beziehen

Was meint ihr?
Hier zum Testen ein stark bereinigter Track von 2010:
[attachment=2227]
Der Track hat deutliche Ausreisser oben rechts bei Cap Corse und in der Mitte etwas nordöstlich von Corte.
Und was schlägst Du als Kriterium vor?
Pages: 1 2