ручной ввод для (ddd mm.m) преобразования в радианы или десятичные градусы? В питоне - PullRequest
0 голосов
/ 12 октября 2019

Я пишу программу на Python для астрономической навигации, используя секстантные наблюдения в качестве ручного ввода. Я использую угловую форму (ddd mm.m) или градусы, минуты и десятичные минуты. Я использую математическую библиотеку для дальнейших вычислений в моем коде. Что бы вы посоветовали мне сделать, когда широта / долгота будут реализованы в программе конвертирования, их в радианы или в десятичных градусах будет хорошо?.

Моя тестовая позиция DR: 27 ° 40.0'N;102 ° 22,5'W

    # DR: Dead Reckoning
latDR1 = input(float('div latidude degrees as (dd)')) #27
latDR2 = input(float('div latitude minutes as (mm.m)'))#40.0
latDR3 = input('div latitude hemisphere N/S')#N
latDR = float(latDR1+(latDR2/60))
if latDR3 == S: -(latDR);
    else: # here the error shows: 
else:
    ^
IndentationError: unexpected indent       

latDR

lonDR1 = input(float('div longditude degrees as (ddd)'))#102
lonDR2 = input(float('div longditude minutes as (mm.m)'))#22.5
lonDR3 = input('div longditude hemisphere E/W')#W
lonDR = float(latDR1+(latDR2/60))
if latDR3 == W: -(latDR);
    else: 
        latDR

DR = (latDR, lonDR)

1 Ответ

0 голосов
/ 16 октября 2019

Это зависит от того, что вы хотите сделать со значениями широты и долготы позже. Обычно они необходимы для тригонометрических функций (sin, cos, tan и т. Д.), Которым аргументы нужно указывать в радианах. Это легко сделать с помощью math.radians(), и результат после вычисления можно преобразовать обратно для отображения с помощью math.degrees().

Совет: при чтении половозначных значений по частям, как вы, вы захотитесначала объедините градусы, минуты и секунды (или десятичные минуты) с десятичными градусами, , а затем примените отрицание или множитель -1 для вашего соглашения о знаках (в вашем случае север и восток + ve; возможны другие варианты)на долготу ...) если применимо. Например, если у вас было 27 градусов 45,0 'S, вы хотите -1 * (27.0 + (45.0/60.0)) = -27.75 не -27.0 + (45.0/60.0) = -26.25

...