Devo convertire lat / long che è espresso in gradi, minuti e secondi nei dati in gradi decimali. Ad esempio, nei dati, sono elencati come N335042.06 nella colonna Latitude e W86031.04 nella colonna Longitudine. Ho già fatto questo problema in cui ho creato uno script che ha convertito DMS in DD e viceversa, quindi immagino di poter usare bit da quello. Ma il problema che sto riscontrando è come ignorare (per mancanza di una parola migliore) la "N" e la "W" nei dati? Posso saltarli? E DMS sono elencati tutti insieme senza simboli o spazi.
Posso usare len()
, range()
, split()
per specificare quale parte di leggere il valore? Ad esempio, è possibile effettuare le seguenti operazioni?
N335042.06 dove, 33 = gradi 50 = minuti 42.06 = secondi ...?
Mi sono imbattuto in questo articolo ESRI, ma è in VB. Probabilmente lo userà come riferimento, ma parte della terminologia / sintassi è diversa da Python.
Codice finale che funziona!
# 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!)