Necesito convertir lat / long que se expresa como grados, minutos y segundos en los datos en grados decimales. Por ejemplo, en los datos, se enumeran como N335042.06 en la columna Latitud y W86031.04 en la columna Longitud. He solucionado este problema antes de crear un script que convertía DMS a DD, y viceversa, así que supongo que podría usar bits de eso. Pero el problema que tengo es cómo ignorar (por falta de una palabra mejor) la 'N' y 'W' en los datos. ¿Puedo saltearlos? Y DMS se enumeran todos juntos sin ningún símbolo o espacio.
¿Puedo utilizar len()
, range()
, split()
para especificar qué parte a leer a partir del valor? Por ejemplo, ¿puede hacer lo siguiente?
N335042.06 donde, 33 = grados 50 = minutos 42.06 = segundos ...?
Me encontré con este artículo de ESRI, pero está en VB. Probablemente lo usará como referencia, pero parte de la terminología / sintaxis es diferente de Python.
Código final que funciona!
# 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!)