Skip to main content

Berechnung von bergauf / bergab / Steigung

OsmAnd verwendet verschiedene Algorithmen zur Berechnung der Steigung und des bergauf basierend auf SRTM-Satellitendaten, die in Offline-Karten eingebettet sind, und basierend auf aufgezeichneten GPX-Tracks.

Das Hauptziel der Berechnung von bergauf ist es, relevante Informationen darĂŒber zu liefern, wie viel zusĂ€tzliche Energie fĂŒr den Aufstieg aufgewendet wird. Dies hĂ€ngt offensichtlich von mehreren Faktoren ab, wie Fahrzeug oder Transportmittel, Untergrund, Gewicht der Person und anderen. Am Ende sollte bergauf ein Parameter sein, der bei der höhenbasierten Routenplanung berĂŒcksichtigt wird, um eine energieeffiziente Routenplanung zu ermöglichen.

Das Hauptziel der Berechnung der Steigung ist es, eine visuelle Anzeige zu haben, welche steilen Straßen vermieden werden mĂŒssen.

Bergauf / Bergab​

Es gibt viele Probleme bei der Berechnung von bergauf, da es keinen Standard gibt und es von der Art des Transports und vielen anderen Parametern abhĂ€ngt. Es ist schwierig, dem Benutzer eine vernĂŒnftige Kontrolle zu geben, damit es nicht zu kompliziert wird. Normalerweise wird bergauf mit anderen Programmen verglichen, aber es gibt kein Programm, das einen goldenen Standard hat.

OsmAnd verwendet einen 3-Schritte-Algorithmus:

  • Filtern von Rauschdaten.
  • Finden lokaler Extremwerte (Minima und Maxima).
  • Berechnen der Summe der Differenzen zwischen Min und Max.

Einige Tracks enthalten viele Rauschdaten, die zuerst gefiltert werden mĂŒssen. Derzeit wenden wir die Filterung auf alle Tracks an, aber vorbereitete Tracks, wie sie vom Tool "Route planen", dem Navigationstool oder nach der SRTM-Korrektur erstellt wurden, sollten durch die Filterung nicht beeintrĂ€chtigt werden.

Filter 70% Steigung​

Die Filterung basiert auf dem Finden von Extrempunkten, die signifikant höher oder niedriger sind als 1 Nachbarpunkt links und 1 Nachbarpunkt rechts auf dem Graphen. Diese Extrempunkte werden von der weiteren Berechnung ausgeschlossen. Der Schwellenwert ist 70% Steigung - Code.

Beispiel 1. (alle Punkte im Abstand von 10 m), Höhe - [5, 3, 10, 3, 5]. 10 ist ein Extrempunkt: da 10 > 3 (70% Steigung).

Beispiel 2. (alle Punkte im Abstand von 10 m), Höhe - [5, 3, 10, 13, 15]. 10 ist kein Extrempunkt: da 10 > 3, aber 10 < 13, es ist also ein lokaler Gipfel.

Springende Punkte filtern​

Punkte, die lokale HĂŒgel /\ darstellen, werden gefiltert. Dies fĂŒhrt dazu, dass der höchste und niedrigste Punkt immer herausgefiltert werden, aber es ermöglicht, mit verrauschten Tracks umzugehen, bei denen die Aufzeichnung nicht hĂ€ufig war, sodass die erste ÜberprĂŒfung mit extremer Steigung nicht funktioniert. Verweis auf den Code.

Beispiel 1. Höhe - [5, 3, 10, 3, 5] -> [5, 5].

Beispiel 2. Höhe - [5, 6, 10, 7, 5] -> [5, 6, 7, 5].

Beispiel 3. Höhe - [5, 2, 3, 4, 5] -> [5, 3, 4, 5].

Extremwerte finden​

Um Extremwerte zu finden, wird der Rames-Dougals-Peucker Algorithmus verwendet. Er ist nicht unbedingt gut geeignet, um Extremwerte auf einem zufÀlligen Graphen exakt zu finden, aber bei der Höhenberechnung vermeidet er viele zufÀllige kleine Spitzen, die wÀhrend eines langen Anstiegs und einiger unauffÀllig kurzer Abfahrten dazwischen auftreten könnten.

Der Hauptzweck des Algorithmus besteht darin, die minimale Anzahl gerader Linien zu finden, die den Höhengraph darstellen könnten. Der Schwellenwert betrÀgt 7 Meter. So werden alle Spitzen, die mehr als 7 Meter Unterschied aufweisen, auf ebenen FlÀchen erkannt und nicht erkannt, wenn sie weniger sind.

Extremwerte werden auf dem Graphen als blaue Punkte angezeigt, wenn das OsmAnd-Entwicklungs-Plugin aktiviert ist.

Beispiel 1. Höhe - [0, 0, 10, 0, 0]. Extremwert ist 10.

Beispiel 2. Höhe - [0, 1, 5, 4, -3, -2, -1, 0]. Keine Extremwerte - alle weniger als 7 Meter Unterschied.

Bergauf / Bergab zwischen Extremwerten berechnen​

Wenn Sie beispielsweise einen einfachen Track haben, der auf und ab geht, haben Sie nur 1 Maximum auf Ihrem Weg, so dass die

Start Höhenunterschied = <Start Höhe> - <Extremwert Höhe>    :
End Höhenunterschied = <Extremwert Höhe> - <End Höhe> : wenn positiv - **bergauf**, wenn negativ - **bergab**
  1. Wenn Start Höhenunterschied > 0
  • bergauf = Start Höhenunterschied
  • bergab = End Höhenunterschied
  1. Wenn End Höhenunterschied > 0
  • bergauf = End Höhenunterschied
  • bergab = Start Höhenunterschied

Weitere Beispiele werden hinzugefĂŒgt.

Höhen-SRTM-Korrektur​

In OsmAnd gibt es 2 Alternativen zur Höhenkorrektur.

  1. Öffnen Sie den Track in OsmAnd Android und finden Sie Track bearbeiten → Optionen → Höhenkorrektur 1.1 Online verarbeitet den Track ĂŒber den OsmAnd-Server und die Daten. 1.2 Offline verarbeitet den Track auf dem GerĂ€t, wenn 3D-Geotiff-Dateien heruntergeladen wurden.
  2. Öffnen Sie die Website https://osmand.net/map und laden Sie den Track hoch, um die SRTM-Höhe anzuzeigen.

Steigung​

Der grĂŒne Graph wird anders berechnet als bergauf / bergab und kann leichte Abweichungen aufweisen. Theoretisch sollten an allen Extremwerten die grĂŒne Graphen die 0-Linie kreuzen, obwohl alle Punkte mit Steigung 0 Extremwerte sind.

Zur Berechnung der Steigung werden die gesamten Daten in gleiche 20-Meter-Schritte aufgeteilt. FĂŒr jeden Punkt dieses Rasters wird die durchschnittliche Höhe um den Punkt (10 Meter Radius) berechnet. Dann wird die diskrete Ableitung mit der Finite-Zentraldifferenz berechnet.