Converting Degrees Minutes Seconds values to Decimal Degree values

The following is the simple equation to convert Degrees, Minutes, and Seconds into Decimal Degrees.

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

The conversion must be handled differently if the degrees value is negative. Here's one way:

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

In the instructions below you will convert one field in a table of latitude or longitude values in Degrees, Minutes, and Seconds to Decimal Degrees using the Field Calculator. The code is in VBA, but is easily converted to other programming languages. It is assumed that the Degrees, Minutes, and Seconds are stored as a string (text), with spaces between the numbers and not containing any symbols. For example the data would be stored as:

25 35 22.3

where 25 is degrees, 35 is minutes, and 22.3 is seconds.

The output will be stored in a number field.

Steps:
  1. Add the table to ArcMap.
  2. Right-click the table in the table of contents and click open.
  3. Click the Options button and click Add Field.
  4. Type "Lat2" in the Name field.
  5. Click the Type drop-down arrow and click Double from the list.

    If "Lat2" is already used as a field name, select a name that is not used.

  6. Click OK.
  7. Right-click the Lat2 field and click Field Calculator.
  8. Click Yes if presented with a message box.
  9. Check the Advanced check box.
  10. Paste the following code into the expression box:
    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

    In the sixth line, beginning with 'DMS. . .' the text within the brackets [ ] should be the name of the field holding the latitude values. Replace the word Latitude in the code with the name of the field (in your table) that stores the DMS latitude values in the table.

  11. Paste the following code into the 'Lat2 =' box at the bottom of the dialog box.
    CDbl(DD)
  12. Click OK.
  13. Repeat steps 3 through 12 for the longitude values.

7/31/2013