2016-11-19 3 views
0

Ich habe GPS in FormKonvertieren dd ° mm.mmm‘dd.ddddd ° (Breitengrad und Längengrad) in Python 3

Lat = 3648,5518 Lon-Koordinaten = 17.443,258

Ich möchte dann konvertieren zu den eher traditionellen Format

Lat = -36,8091667 Lon = 174,7209667

ich tun dies durch String-Manipulation kann wie unten dargestellt. Dieser Ansatz scheint jedoch sehr "wörtlich" zu sein. Gibt es einen besseren Weg (irgendeine eingebaute Funktionalität), um diese Umwandlung in Python 3.4 zu erreichen? Meine Suchen sind leer. Jeder Rat würde sehr geschätzt werden.

Steve (neu in Python/Programmierung)

Lat = 3648.5518 
Lat = str(Lat) 
Latdd = float(Lat[:2]) 
Latmmmmm = float(Lat[2:]) 
Latddmmmm = Latdd+(Latmmmmm/60.0) 
print(Latddmmmm) 


Lon = 17443.258 
Lon = str(Lon) 
Londd = float(Lon[:3]) 
Lonmmmmm = float(Lon[3:]) 
Londdmmmm = Londd+(Lonmmmmm/60.0) 
print(Londdmmmm) 
+0

ist das negative Vorzeichen im Beispiel korrekt? Es stimmt nicht mit dem Code überein. –

Antwort

2

Es ist wie der Eingang aussieht, ist ein Missbrauch der Dezimalschreibweise ° min als 100 * ° + min schreiben zu platzieren.

Sie können den Grad, Minute und zweite Teile mit Modulo Division extrahieren. Zur besseren Übersichtlichkeit in zwei Funktionen aufgeteilt.

def dm(x): 
    degrees = int(x) // 100 
    minutes = x - 100*degrees 

    return degrees, minutes 

def decimal_degrees(degrees, minutes): 
    return degrees + minutes/60 

print (decimal_degrees(*dm(3648.5518))) 
Verwandte Themen