Preciso converter lat / long que é expresso em graus, minutos e segundos nos dados em graus decimais. Por exemplo, nos dados, eles são listados como N335042.06 na coluna Latitude e W86031.04 na coluna Longitude. Eu já fiz esse problema antes, onde criei um script que convertia o DMS em DD e vice-versa, então acho que poderia usar bits disso. Mas o problema que estou tendo é como ignorar (por falta de uma palavra melhor) o 'N' e 'W' nos dados? Posso pular eles? E o DMS é listado todos juntos, sem símbolos ou espaços.
Posso usar len()
, range()
, split()
para especificar que parte para ler a partir do valor? Por exemplo, você pode fazer o seguinte?
N335042.06 em que, 33 = graus 50 = minutos 42,06 = segundos ...?
Me deparei com este artigo da ESRI, mas está no VB. Provavelmente o usará como referência, mas parte da terminologia / sintaxe é diferente do 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!)