Мне нужно преобразовать широту / долготу, выраженную в градусах, минутах и секундах в данных, в десятичные градусы. Например, в данных они указаны как N335042.06 в столбце Широта и W86031.04 в столбце Долгота. Я делал эту проблему раньше, когда создавал скрипт, который конвертировал DMS в DD, и наоборот, так что, думаю, я мог бы использовать биты из этого. Но проблема у меня заключается в том, как игнорировать (из-за отсутствия лучшего слова) буквы «N» и «W» в данных? Могу ли я их пропустить? И DMS перечислены все вместе без каких-либо символов или пробелов.
Могу ли я использовать len()
, range()
, split()
чтобы указать , какую часть считывать значения? Например, можете сделать следующее?
N335042,06 где 33 = градусы 50 = минуты 42,06 = секунды ...?
Я наткнулся на эту статью ESRI, но она в VB. Вероятно, будет использовать его в качестве ссылки, но некоторые термины / синтаксис отличается от Python.
Окончательный код, который работает!
# 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!)