How Do you Convert Decimal Degrees to Degrees Minutes Secands In Python? Is there a Formula already written?
A:
Use fmod
and rounding to get the degrees and fraction separated. Multiply the fraction by 60 and repeat to get minutes and a remainder. Then multiply that last part by 60 again to get the number of seconds.
Donal Fellows
2010-04-05 16:51:27
A:
Just a couple of * 60
multiplications and a couple of int
truncations, i.e.:
>>> decdegrees = 31.125
>>> degrees = int(decdegrees)
>>> temp = 60 * (decdegrees - degrees)
>>> minutes = int(temp)
>>> seconds = 60 * (temp - minutes)
>>> print degrees, minutes, seconds
31 7 30.0
>>>
Alex Martelli
2010-04-05 17:56:02
A:
This is exactly what divmod
was invented for:
>>> def decdeg2dms(dd):
... mnt,sec = divmod(dd*3600,60)
... deg,mnt = divmod(mnt,60)
... return deg,mnt,sec
>>> dd = 45 + 30.0/60 + 1.0/3600
>>> print dd
45.5002777778
>>> decdeg2dms(dd)
(45.0, 30.0, 1.0)
Paul McGuire
2010-04-05 18:32:02