<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Convert DD to DMS with Python in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408169#M32167</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here's my shot at it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
def dd2dms(dd1,dd2):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Convert decimal degree value to a tuple of degrees, minutes seconds.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Argument
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; dd1, dd2 - value in decimal degrees
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Example:
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; deg2dms(-74.49999)
&amp;nbsp;&amp;nbsp;&amp;nbsp; (-74, 29, 3539.9639999999918)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Author: Curtis Price, http://profile.usgs.gov/cprice
&amp;nbsp;&amp;nbsp;&amp;nbsp; Disclaimer: Not approved by USGS. (Provisional, subject to revision.)
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; def ToDMS(dd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deg = int(abs(dd))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; min = int((abs(dd) - deg) * 60)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec = (abs(dd) - (deg - (min / 60.0))) * 3600.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if dd &amp;lt; 0: deg = deg * -1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return deg,min,sec 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # return a six-tuple
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ToDMS(dd1) + ToDMS(dd2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise Exception, "Invalid input"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

def dms2dd(deg1,min1,sec1,deg2,min2,sec2):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Convert degrees, minutes seconds to decimal degrees values.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Argument
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deg1,min1,sec1,deg2,min2,sec2 - coordinate pair (2 x 3)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Example
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; dms2deg(-74,45,0,34,10,20)
&amp;nbsp;&amp;nbsp;&amp;nbsp; (-74.75, 34.172222222222217)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Author: Curtis Price, http://profile.usgs.gov/cprice
&amp;nbsp;&amp;nbsp;&amp;nbsp; Disclaimer: Not approved by USGS. (Provisional, subject to revision.)
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; def ToDD(deg,min=0,sec=0):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dd = abs(deg) + min / 60.0 + sec / 3600.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if deg &amp;lt; 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dd = dd * -1.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return dd
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ToDD(deg1,min1,sec1), ToDD(deg2,min2,sec2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise Exception, "Invalid input"
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 18:33:42 GMT</pubDate>
    <dc:creator>curtvprice</dc:creator>
    <dc:date>2021-12-11T18:33:42Z</dc:date>
    <item>
      <title>Convert DD to DMS with Python</title>
      <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408163#M32161</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm trying to automate the "Calculate Geometry" interactive process in ArcMap10 using Python. Interactively this allows me to calculate the X or Y attribute as a DMS string. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have used the arcpy.AddXY_management to create and populate Decimal Degree fields however I'm new to Python and I cant get my head around how I write an expression to convert this to DMS.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anyone help?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-Mick&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Apr 2011 00:22:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408163#M32161</guid>
      <dc:creator>MichaelClarke</dc:creator>
      <dc:date>2011-04-29T00:22:38Z</dc:date>
    </item>
    <item>
      <title>Re: Convert DD to DMS with Python</title>
      <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408164#M32162</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;gt;&amp;gt;&amp;gt; lat = 45.543210
&amp;gt;&amp;gt;&amp;gt; deg = int(lat)
&amp;gt;&amp;gt;&amp;gt; min = int((lat-deg)*60)
&amp;gt;&amp;gt;&amp;gt; sec = ((lat-deg)*60) - min
&amp;gt;&amp;gt;&amp;gt; print deg, min, sec
45 32 0.5926
&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;you need to create a text field to contain the DMS values or 3 separate numeric fields to store the values&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:33:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408164#M32162</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2021-12-11T18:33:34Z</dc:date>
    </item>
    <item>
      <title>Re: Convert DD to DMS with Python</title>
      <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408165#M32163</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Not the most elegant way, but I got the below code working.&amp;nbsp; Could be cleaned up a bit.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;rows = arcpy.UpdateCursor(input)
for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord = str(row.X)
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord2 = Xcoord.split(".")
&amp;nbsp;&amp;nbsp;&amp;nbsp; XDegrees = Xcoord2[0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord3 = float("." + Xcoord2[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord4 = Xcoord3 * 60
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord5 = str(Xcoord4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord6 = Xcoord5.split(".")
&amp;nbsp;&amp;nbsp;&amp;nbsp; XMinutes = Xcoord6[0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord7 = float("." + Xcoord6[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord8 = Xcoord7 * 60
&amp;nbsp;&amp;nbsp;&amp;nbsp; Xcoord9 = str(Xcoord8)
&amp;nbsp;&amp;nbsp;&amp;nbsp; XSeconds = Xcoord9
&amp;nbsp;&amp;nbsp;&amp;nbsp; DMS = XDegrees + " " + XMinutes + "' " + XSeconds + "''"
&amp;nbsp;&amp;nbsp;&amp;nbsp; row.Lat = DMS
&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)

del row, rows&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can duplicate the code and run it for the Longitude value.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:33:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408165#M32163</guid>
      <dc:creator>JakeSkinner</dc:creator>
      <dc:date>2021-12-11T18:33:37Z</dc:date>
    </item>
    <item>
      <title>Re: Convert DD to DMS with Python</title>
      <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408166#M32164</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;or keep everything as numbers until the very end&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
rows = arcpy.UpdateCursor(input)
for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; lat = int(row.X)
&amp;nbsp;&amp;nbsp;&amp;nbsp; deg = int(lat)
&amp;nbsp;&amp;nbsp;&amp;nbsp; minutes = int(lat-deg)*60
&amp;nbsp;&amp;nbsp;&amp;nbsp; sec = ((lat-deg)*60)&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; DMS = str(deg) + " " + str(minutes) + "' " + str(sec)+ "''"
&amp;nbsp;&amp;nbsp;&amp;nbsp; row.Lat = DMS
&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)
del row, rows
&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;(totally untested)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:33:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408166#M32164</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2021-12-11T18:33:39Z</dc:date>
    </item>
    <item>
      <title>Re: Convert DD to DMS with Python</title>
      <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408167#M32165</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Nice, I'll give it a go!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Many thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 May 2011 04:46:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408167#M32165</guid>
      <dc:creator>MichaelClarke</dc:creator>
      <dc:date>2011-05-02T04:46:37Z</dc:date>
    </item>
    <item>
      <title>Re: Convert DD to DMS with Python</title>
      <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408168#M32166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Did you get this to work?&amp;nbsp; I am trying to use it in calculate field tool in a model and I can't get it to run. I am most likely not defining the inputs correctly. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What is the input in UpdateCursor(input)?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What is row.X?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jun 2011 20:46:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408168#M32166</guid>
      <dc:creator>deleted-user-rmQdIupSdOqe</dc:creator>
      <dc:date>2011-06-27T20:46:25Z</dc:date>
    </item>
    <item>
      <title>Re: Convert DD to DMS with Python</title>
      <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408169#M32167</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here's my shot at it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
def dd2dms(dd1,dd2):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Convert decimal degree value to a tuple of degrees, minutes seconds.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Argument
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; dd1, dd2 - value in decimal degrees
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Example:
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; deg2dms(-74.49999)
&amp;nbsp;&amp;nbsp;&amp;nbsp; (-74, 29, 3539.9639999999918)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Author: Curtis Price, http://profile.usgs.gov/cprice
&amp;nbsp;&amp;nbsp;&amp;nbsp; Disclaimer: Not approved by USGS. (Provisional, subject to revision.)
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; def ToDMS(dd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deg = int(abs(dd))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; min = int((abs(dd) - deg) * 60)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec = (abs(dd) - (deg - (min / 60.0))) * 3600.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if dd &amp;lt; 0: deg = deg * -1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return deg,min,sec 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # return a six-tuple
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ToDMS(dd1) + ToDMS(dd2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise Exception, "Invalid input"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

def dms2dd(deg1,min1,sec1,deg2,min2,sec2):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Convert degrees, minutes seconds to decimal degrees values.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Argument
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deg1,min1,sec1,deg2,min2,sec2 - coordinate pair (2 x 3)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Example
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; dms2deg(-74,45,0,34,10,20)
&amp;nbsp;&amp;nbsp;&amp;nbsp; (-74.75, 34.172222222222217)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Author: Curtis Price, http://profile.usgs.gov/cprice
&amp;nbsp;&amp;nbsp;&amp;nbsp; Disclaimer: Not approved by USGS. (Provisional, subject to revision.)
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; def ToDD(deg,min=0,sec=0):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dd = abs(deg) + min / 60.0 + sec / 3600.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if deg &amp;lt; 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dd = dd * -1.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return dd
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ToDD(deg1,min1,sec1), ToDD(deg2,min2,sec2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise Exception, "Invalid input"
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:33:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408169#M32167</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2021-12-11T18:33:42Z</dc:date>
    </item>
    <item>
      <title>Re: Convert DD to DMS with Python</title>
      <link>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408170#M32168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I got these two functions working pretty well so I thought I'd share them. These are fairly general purpose, so for example, say you want a string field you could format the results like this (Calculate Field, python):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;"%4i %2i %5.3f %3i %2i %5.3f " % dd2dms(!LATDD!,!LONDD!)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
def dd2dms(dd1,dd2,ndec=6):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Convert a decimal degree coordinate pair to a six-tuple of degrees, minutes seconds.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; The returned values are not rounded.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Arguments
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; dd1, dd2 - coordinate pair, in decimal degrees
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Example
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; dd2dms(-74.25,32.1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (-74, 15, 6.9444444444444444e-05, 32, 6, 2.7777777777778172e-05)
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Author: Curtis Price, http://profile.usgs.gov/cprice
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Disclaimer: Not approved by USGS. (Provisional, subject to revision.)&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; def ToDMS(dd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dd1 = abs(float(dd))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cdeg = int(dd1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minsec = dd1 - cdeg
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmin = int(minsec * 60)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csec = (minsec % 60) / float(3600)&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if dd &amp;lt; 0: cdeg = cdeg * -1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return cdeg,cmin,csec 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # return a six-tuple
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ToDMS(dd1) + ToDMS(dd2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise Exception, "Invalid input"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

def dms2dd(deg1,min1,sec1,deg2,min2,sec2):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Convert a degrees-minutes seconds coordinate pair to decimal degrees.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; The returned values are not rounded.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Arguments
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deg1,min1,sec1,deg2,min2,sec2 - DMS coordinate pair (six values)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Example
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; dms2deg(-74,45,0,34,10,20)
&amp;nbsp;&amp;nbsp;&amp;nbsp; (-74.75, 34.172222222222217)
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Author: Curtis Price, http://profile.usgs.gov/cprice
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Disclaimer: Not approved by USGS. (Provisional, subject to revision.)&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; def ToDD(deg,min=0,sec=0):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dd = abs(deg) + min / 60.0 + sec / 3600.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if deg &amp;lt; 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dd = dd * -1.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return dd
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ToDD(deg1,min1,sec1), ToDD(deg2,min2,sec2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise Exception, "Invalid input"
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:33:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/convert-dd-to-dms-with-python/m-p/408170#M32168</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2021-12-11T18:33:45Z</dc:date>
    </item>
  </channel>
</rss>

