Ich möchte eine GPX-Datei durchgehen und den gesamten Auf- und Abstieg berechnen. Ich habe eine Funktion, die den Höhenunterschied zwischen zwei Lat-Long-Punkten berechnen kann und ich habe Simplexml eingerichtet, um & amp; Schleife durch die GPK-Datei trkseg Punkte.
Das Problem ist, dass dies nicht genau ist (wirklich nicht genau wie es in Wirklichkeit ist).
Diese zwei Linien führen zu einem unterschiedlichen Auf- und Abstieg, wie im wirklichen Leben:
%Vor%Weiß jemand, wie man den gesamten Auf- und Abstieg eines Tracks genauer berechnen kann?
Dies ist mein aktueller Codeausschnitt, um ihn zu berechnen ( $track_elevations
ist ein Array mit Erhebungen der ganzen Spur):
Beispiel für $track_elevations
array:
In Wirklichkeit fuhr ich Fahrrad auf der flachen Straße. Aber mein Codeschnipsel wird berechnen, ich bin paar Meter aufgestiegen und abgestiegen. Vielleicht sollte ich da noch eine Einschränkung der Genauigkeit zwischen zwei Erhebungen hintereinander hinzufügen ...
Was ich erreichen möchte:
Ich werde versuchen, es besser zu erklären - wenn ich z. 20 km auf flacher Straße (fast ohne Auf- und Abstieg), der Gesamtanstieg und -abstieg sollte nahe bei 0 liegen. Aber wenn ich $track_elevations
summiere (wie in meinem Codeschnipsel), werde ich in $total_ascent
und $total_descent
fe 500 Meter ... Sein wegen zwischen jedem Array-Element in $track_elevations
ist Unterschied paar Zentimeter, aber ich reite immer noch auf der flachen Straße ... Und in der Gesamtsumme wird es zu einer großen Anzahl von Metern sammeln ... Hoffe jetzt ist es klarer.
Selbst wenn Sie eine vollkommen ebene Straße befahren, werden die Höhendaten, die Sie vom GPS erhalten, immer ein wenig nach oben und unten gehen. GPS ist mit der Höhe nicht sehr genau, selbst unter perfekten Bedingungen.
Wenn Sie den rohen GPS-Eingang verwenden, um die Gesamtmenge des Kletterns / Abstiegs zu berechnen, werden diese kleinen Fehler schnell mit jedem einzelnen Punkt zusammengefasst und ergeben völlig unrealistische Ergebnisse.
Es gibt eine Reihe von Optionen, um bessere Ergebnisse zu erzielen, aber sie sind alle mehr oder weniger komplex:
Sie könnten die Höhenkurve mit geeigneten Algorithmen "glätten".
Sie können die GPS-Höhendaten verwerfen und durch zuvor aufgezeichnete Höhendaten für alle Koordinaten auf der Erde ersetzen (sogenannte SRTM-Daten).
Sie können die SRTM-Daten verwenden und sie intelligent mit Ihren eigenen GPS-Daten mischen.
In jedem Fall ist es schwierig, geeignete Höhenwerte zu erhalten. Man könnte versuchen, Differenzen unter 10 m oder so zu zählen, aber das wird wahrscheinlich nicht zu guten Ergebnissen führen.