Convertir valores de grados minutos segundos en valores de grados decimales

La siguiente es la ecuación simple para convertir grados, minutos y segundos en grados decimales.

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

La conversión se debe realizar de manera diferente si el valor de grados es negativo. Uno de los métodos es:

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

En las instrucciones siguientes convertirá un campo de una tabla de valores de latitud o longitud en grados, minutos y segundos a grados decimales utilizando Calculadora de campo. El código está en VBA, pero se puede convertir con facilidad en otros lenguajes de programación. Se asume que los grados, minutos y segundos se almacenan como una cadena de caracteres (texto), con espacios entre los números y que no contiene ningún símbolo. Por ejemplo, los datos se almacenarían como:

25 35 22.3

donde 25 son los grados, 35 son los minutos y 22,3 son los segundos.

El resultado se almacenará en un campo numérico.

Pasos:
  1. Agregue la tabla a ArcMap.
  2. Haga clic con el botón derecho en la tabla en la tabla de contenido y haga clic en Abrir.
  3. Haga clic en el botón Opciones y haga clic en Agregar campo.
  4. Escriba "Lat2" en el campo Nombre.
  5. Haga clic en la flecha de lista desplegable Tipo y en Doble en la lista.

    Si "Lat2" ya se está utilizando como un nombre de campo, seleccione un nombre que no se utilice.

  6. Haga clic en Aceptar.
  7. Haga clic con el botón derecho en el campo Lat2 y haga clic en Calculadora de campo.
  8. Haga clic en Sí si se le muestra un cuadro de mensaje.
  9. Marque la casilla de verificación Opciones avanzadas.
  10. Pegue el siguiente código en el cuadro de expresión:
    Dim Degrees as Double
    Dim Minutes as Double
    Dim Seconds as Double
    Dim DMS as Variant
    Dim DD as Double
    
    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

    En la sexta línea, que comienza por "DMS. . ." el texto entre corchetes [ ] debe ser el nombre del campo que contiene los valores de latitud. Reemplace la palabra Latitude en el código por el nombre del campo (de la tabla) que almacena los valores de latitud DMS en la tabla.

  11. Pegue el siguiente código en el cuadro "Lat2 = " en la parte inferior del cuadro de diálogo.
    CDbl(DD)
  12. Haga clic en Aceptar.
  13. Repita los pasos 3 a 12 para los valores de longitud.

7/11/2012