Приведем простое уравнение преобразования координат вида "градус-минута-секунда" в "десятичные доли градуса".
DD (десятичные градусы) = (секунды/3600) + (минуты/60) + градусы
Если значение градусов отрицательное, конвертация должна быть выполнена по-другому. Вот один из вариантов:
DD (десятичные градусы) = - (секунды/3600) - (минуты/60) + градусы
В инструкции, приведенной ниже, показан способ конвертирования поля таблицы с данными долготы или широты, приведенными в угловых единицах "градус-минута-секунда" в "десятичные доли градуса" с помощью Калькулятора поля. Код написан на VBScript, но его легко конвертировать в другие языки программирования. Предполагается, что "градус-минута-секунда" сохранены как текстовая строка с пробелами между числами и не содержат других символов. Например, данные были сохранены в виде:
25 35 22.3
где 25 -градусы, 35 - минуты и 22.3 - секунды.
Результат должен сохранятся в числовом поле.
- Добавьте таблицу в ArcMap.
- Щёлкните правой кнопкой на таблице в таблице содержания и щёлкните Открыть.
- Нажмите кнопку Опции и щелкните Добавить поле.
- Введите Lat2 в поле Имя.
- Щёлкните стрелку вниз Тип и выберите из списка Double.
Если у вас уже есть поле с именем Lat2, выберите другое имя, которое не используется.
- Нажмите OK.
- Щёлкните правой кнопкой поле Lat2 и выберите Калькулятор поля.
- Если появится окно с сообщением, щелкните Да.
- Поставьте отметку Показать блок кода.
- Вставьте следующий код в окно Редактируемого кода скрипта:
Dim Degrees Dim Minutes Dim Seconds Dim DMS Dim DD DMS = Split([Latitude]) Degrees = CDbl(DMS(0)) Minutes = CDbl(DMS(1)) Seconds = CDbl(DMS(2)) If Degrees < 0 Then DD = -(Seconds/3600) - (Minutes/60) + Degrees Else DD = (Seconds/3600) + (Minutes/60) + Degrees End If
В шестой строке, начинающейся с DMS =, текст в квадратных скобках [ ] должен содержать имя поля, отведенное под данные о широте. Замените в коде слово Широта (Latitude) именем поля (в вашей таблице), которое содержит градусы широты с минутами и секундами.
- Введите в окошко в нижней части диалогового окна Lat2 = следующий код:
CDbl(DD)
- Нажмите OK.
- Повторите шаги с 3 до 12 для долготы.