Мені потрібно перетворити lat / long, який виражається у градусах, хвилинах і секундах у дані, у десяткові градуси. Наприклад, у даних вони вказані як N335042.06 у стовпці Latitude та W86031.04 у стовпці Longitude. Я робив цю проблему раніше, ніж створив сценарій, який перетворив 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!)