Преобразуйте DD (десятичные градусы) в DMS (мелкие секунды градусов) в Python?

Как Вы преобразовываете Десятичные градусы в Мелкие Секунды Градусов В Python? Существует ли Формула, уже записанная?

15
задан smci 16 September 2018 в 00:45
поделиться

3 ответа

Всего пара * 60 умножений и пара int усечений, например:

>>> 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
>>> 
6
ответ дан 1 December 2019 в 00:33
поделиться

Это именно то, для чего был изобретен divmod :

>>> 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)
15
ответ дан 1 December 2019 в 00:33
поделиться

Используйте fmod и округление, чтобы разделить градусы и дроби. Умножьте дробь на 60 и повторите, чтобы получить минуты и остаток. Затем умножьте эту последнюю часть на 60 еще раз, чтобы получить количество секунд.

0
ответ дан 1 December 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: