Damit meine Matplotlib - Höhenprofile eine vernünftige X-Achsenbeschriftung bekommen, habe ich eine Funktion geschrieben, die mir aus Koordinaten im kartesischen System die Gesamtstrecke der Koordinaten berechnet. Dabei sind die Koordinaten als Stützpunkte einer Linie zu verstehen.
Code: Alles auswählen
#!/usr/bin/env python
from math import sqrt
def abs_distance(minuend, subtrahend):
return abs(float(minuend) - float(subtrahend))
def distance_2d(geo_points):
"""
Expects a list of dicts containing east and north keys
"""
distance = 0
for index, point in enumerate(geo_points):
try:
next_point = geo_points[index + 1]
east_distance = abs_distance(point['east'], next_point['east'])
north_distance = abs_distance(point['north'], next_point['north'])
distance += sqrt(east_distance**2 + north_distance**2)
except IndexError:
pass
return distance
Schöner wäre eine Lösung, die genau so lange läuft, wie Paare vorhanden sind und natürlich etwas, was den Index+1, ... ähm ..., anders formuliert.
Mir schwebt da etwas vor, was Koordinaten paarweise sammelt und erst, wenn ein Paar sich gefunden hat, die Substrecke berechnet. Mal sehen, ob sich so etwas realisieren lässt ...
Gruss
Frank