J'ai besoin de convertir lat / long exprimé en degrés, minutes et secondes dans les données en degrés décimaux. Par exemple, dans les données, ils sont répertoriés comme N335042.06 dans la colonne Latitude et W86031.04 dans la colonne Longitude. J'ai déjà fait ce problème avant de créer un script qui convertissait DMS en DD, et vice-versa, donc je suppose que je pourrais utiliser des bits de cela. Mais le problème que j'ai est de savoir comment ignorer (faute d'un meilleur mot) le «N» et le «W» dans les données? Puis-je les ignorer? Et les DMS sont répertoriés tous ensemble sans aucun symbole ni espace.
Puis - je utiliser len()
, range()
, split()
de préciser quelle partie à lire de la valeur? Par exemple, pouvez-vous faire ce qui suit?
N335042.06 où, 33 = degrés 50 = minutes 42.06 = secondes ...?
Je suis tombé sur cet article ESRI, mais il est en VB. L'utilisera probablement comme référence mais une partie de la terminologie / syntaxe est différente de Python.
Code final qui fonctionne!
# 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!)