Преобразование "градус-минута-секунда" в "десятичные доли градуса"

Приведем простое уравнение преобразования координат вида "градус-минута-секунда" в "десятичные доли градуса".

DD = (Seconds/3600) + (Minutes/60) + Degrees

Если значение градусов отрицательное, конвертация должна быть выполнена по-другому. Вот один из вариантов:

DD = - (Seconds/3600) - (Minutes/60) + Degrees

В инструкции, приведенной ниже, показан способ конвертирования поля таблицы с данными долготы или широты, приведенными в угловых единицах "градус-минута-секунда" в "десятичные доли градуса" с помощью Калькулятора поля. Код написан на VBScript, но его легко конвертировать в другие языки программирования. Предполагается, что "градус-минута-секунда" сохранены как текстовая строка с пробелами между числами и не содержат других символов. Например, данные были сохранены в виде:

25 35 22.3

где 25 -градусы, 35 - минуты и 22.3 - секунды.

Результат должен сохранятся в числовом поле.

Шаги:
  1. Добавьте таблицу в ArcMap.
  2. Щёлкните правой кнопкой на таблице в таблице содержания и щёлкните Открыть (Open).
  3. Нажмите кнопку Опции (Options) и щелкните Добавить поле (Add Field).
  4. Введите Lat2 в поле Имя (Name).
  5. Щёлкните стрелку вниз Тип и выберите из списка Двойная точность (Double).

    Если у вас уже есть поле с именем Lat2, выберите другое имя, которое не используется.

  6. Щелкните OK.
  7. Щёлкните правой кнопкой поле Lat2 и выберите Калькулятор поля (Field Calculator).
  8. Если появится окно с сообщением, щелкните Да (Yes).
  9. Поставьте отметку возле опции Дополнительно (Advanced).
  10. Вставьте следующий код в окно выражения:
    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) именем поля (в вашей таблице), которое содержит градусы широты с минутами и секундами.

  11. Введите в окошко в нижней части диалогового окна Lat2 = следующий код:
    CDbl(DD)
    
  12. Щелкните OK.
  13. Повторите шаги с 3 до 12 для долготы.
5/10/2014