我需要将此公式转换为Python:
δs = arcsin {0.42565 sin Ls)} + 0.25° sin Ls
考虑到Ls值为122.985º(以度为单位)
我使用的代码是:
Ls = 122.985
Ds = math.asin(math.radians(0.42565 * math.sin(math.radians(Ls)))) + 0.25 * math.sin(math.radians(Ls))
Ds的结果大约为0.2159º......当它应该在21,128º左右时。
我做错了什么?
答案 0 :(得分:1)
请注意,公式在第二项上有度数标记。它是说“取正弦(Ls)的反射率为0.42565倍。这是一个角度,可以用度数表示。对它来说,加上0.25度正弦(Ls)”。
angle1 = math.degrees(math.asin(0.42565 * math.sin(math.radians(Ls))))
correction = 0.25 * math.sin(math.radians(Ls)) # this is a value in degrees
Ds = angle1 + correction
或者合并为一个公式,为了清晰起见,我将其分解为
Ds = math.degrees(math.asin(0.42565 * math.sin(math.radians(Ls)))) + 0.25 * math.sin(math.radians(Ls))
运用你的榜样:
>>> Ls = 122.985
>>> angle1 = math.degrees(math.asin(0.42565 * math.sin(math.radians(Ls))))
>>> angle1
20.918572663722518
>>> correction = 0.25 * math.sin(math.radians(Ls))
>>> correction
0.20970328134223665
>>> angle1 + correction
21.128275945064754
不要在我的标签上过分重视第二学期的修正,我从http://www.oregonl5.org/mist/docs/Mars24J/help/notes.html的讨论中得到了这一点,特别是:
准确说明太阳照度相对于 局部平坦表面的平面,太阳赤纬可以 纠正了适合所谓的小差异 扁平球体上的纬度的行星测量,就像它一样 Mars24太阳光了。
但我可能误解了那句话。我确信的主要是价值测试,单位明智地进行。