Ich muss Lat / Long, das in den Daten als Grad, Minuten und Sekunden ausgedrückt wird, in Dezimalgrade konvertieren . In den Daten sind sie beispielsweise in der Spalte Breitengrad als N335042.06 und in der Spalte Längengrad als W86031.04 aufgeführt. Ich habe dieses Problem bereits zuvor gelöst, als ich ein Skript erstellt habe, das DMS in DD konvertiert hat, und umgekehrt. Ich schätze, ich könnte Bits daraus verwenden. Aber das Problem, das ich habe, ist, wie man (mangels eines besseren Wortes) das 'N' und 'W' in den Daten ignoriert? Kann ich sie überspringen? Und DMS werden alle zusammen ohne Symbole oder Leerzeichen aufgelistet.
Kann ich len()
, range()
, split()
zu spezifizieren , welcher Teil von dem Wert zu lesen? Kann zum Beispiel Folgendes tun?
N335042.06 wobei 33 = Grad 50 = Minuten 42.06 = Sekunden ...?
Ich bin auf diesen ESRI-Artikel gestoßen, aber er ist in VB. Wird wahrscheinlich als Referenz verwendet, aber einige der Begriffe / Syntax unterscheiden sich von Python.
Finaler Code, der funktioniert!
# Pre-logic
def latDD(x):
D = int(x[1:3])
M = int(x[3:5])
S = float(x[5:])
DD = D + float(M)/60 + float(S)/3600
return DD
# Expression
latDD(!Latitude!)