(ddd mm.m) 的手动输入转换为弧度或十进制度数?在 python
manual input for (ddd mm.m) convert to radians or decimal degrees? In python
我正在编写一个 Python 程序,用于使用六分仪观测作为手动输入的天文导航。我使用 angular 形式 (ddd mm.m) 或度、分和小数分。我正在使用数学库在我的代码中进行进一步计算。当 Lat/Lon 在程序中实现时,您建议我做什么转换,将它们转换为弧度或十进制度数可以吗?
我的测试位置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)
这取决于你以后想用纬度和经度的值做什么。通常三角函数(sin
、cos
、tan
等)需要参数,它们需要以弧度表示。这很容易用 math.radians()
完成,计算后的结果可以用 math.degrees()
.
转换回来显示
忠告:当你阅读零件中的六十进制值时,你会希望先将度分秒(或十进制度分)合并为十进制度数,然后 为您的符号约定应用否定或 -1
乘数(在您的情况下为 North & East +ve;其他选择可用于经度...)(如果适用)。例如,如果你有 27deg 45.0' S,你想要 -1 * (27.0 + (45.0/60.0)) = -27.75
而不是 -27.0 + (45.0/60.0) = -26.25
我正在编写一个 Python 程序,用于使用六分仪观测作为手动输入的天文导航。我使用 angular 形式 (ddd mm.m) 或度、分和小数分。我正在使用数学库在我的代码中进行进一步计算。当 Lat/Lon 在程序中实现时,您建议我做什么转换,将它们转换为弧度或十进制度数可以吗?
我的测试位置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)
这取决于你以后想用纬度和经度的值做什么。通常三角函数(sin
、cos
、tan
等)需要参数,它们需要以弧度表示。这很容易用 math.radians()
完成,计算后的结果可以用 math.degrees()
.
忠告:当你阅读零件中的六十进制值时,你会希望先将度分秒(或十进制度分)合并为十进制度数,然后 为您的符号约定应用否定或 -1
乘数(在您的情况下为 North & East +ve;其他选择可用于经度...)(如果适用)。例如,如果你有 27deg 45.0' S,你想要 -1 * (27.0 + (45.0/60.0)) = -27.75
而不是 -27.0 + (45.0/60.0) = -26.25