English

# How To: Convert Decimal Degree values to Degree Minute Seconds values using the Field Calculator

## Summary

```Note:
Python scripts are specific to the version of Python that was shipped with the version of ArcMap in use. Therefore, this script may not work with your version of ArcMap. However, this script may serve as a template for modification, if desired.
See: FAQ: What version of Python is used in ArcGIS?

To perform coordinate conversion, Esri recommends using the Convert Coordinate Notation tool in ArcTolbox > Projections and Transformations toolset.```

Instructions provided describe how to use the Field Calculator to convert Decimal Degrees stored in a Numeric field to Degrees Minutes Seconds stored in a Text field. The output by default is in the following format:

`DD°MM'SS.SS"N`

## Procedure

1. Add the table to ArcMap.
3. Verify that Edit mode is not enabled. Click the Options button and select Add Field.
4. Type DMSLat in the Name field and select Text from the Type drop-down list. If DMSLat is already used as a field name, select a name that is not being used.
5. Change the length to 20.
6. Right-click on the DMSLat field and select Calculate Values.
7. Click Yes if presented with a message box.
8. Change the Parser from VB Script to Python.
9. Check the box to Show Codeblock.
10. Paste the following code into the Pre-Logic Script Code box:
```def decimalDegrees2DMS(value,type):
"""
Converts a Decimal Degree Value into
Degrees Minute Seconds Notation.

Pass value as double
type = {Latitude or Longitude} as string

returns a string as D:M:S:Direction
created by: anothergisblog.blogspot.com
"""
degrees = int(value)
submin = abs( (value - int(value) ) * 60)
minutes = int(submin)
subseconds = abs((submin-int(submin)) * 60)
direction = ""
if type == "Longitude":
if degrees < 0:
direction = "W"
elif degrees > 0:
direction = "E"
else:
direction = ""
elif type == "Latitude":
if degrees < 0:
direction = "S"
elif degrees > 0:
direction = "N"
else:
direction = ""
notation = str(degrees) + u"\u00b0" + str(minutes) + "\'" +\
str(subseconds)[0:5] + "\"" + direction
return notation```
1. Paste the following code into the DMSLat = expression box at the bottom of the dialog box.
`decimalDegrees2DMS( !DMSLat! ,"Latitude")`
1. Click OK to run the Field Calculator.
2. Repeat steps 3 through 12 for the longitude values, but change the first parameter in the DMSLong expression box to the field in the table that contains the longitude decimal degree values and replace the word Latitude in the second parameter with the word Longitude.