gpt4 book ai didi

python - 太阳传输时间的差异

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:56 24 4
gpt4 key购买 nike

执行这段代码:

import ephem
oma=ephem.Observer()
oma.lat='50.7975189'
oma.lon='4.3579155'
oma.elevation=114.43
oma.epoch=ephem.now()
sun=ephem.Sun(oma)
print "object transit time: ",sun.transit_time
print "observer next transit time: ", oma.next_transit(sun)

这给出了以下输出:

object transit time:  2012/9/5 11:41:03
observer next transit time: 2012/9/5 11:41:06

因此,太阳对象的时间与为太阳的观察者计算的时间之间存在 3 秒的差异。两者哪个最靠谱?如果我们将这些值与本地计算值进行比较,观察者的下一个传输时间是最接近的。

如果我们对火星做同样的计算:

import ephem
oma=ephem.Observer()
oma.lat='50.7975189'
oma.lon='4.3579155'
oma.elevation=114.43
oma.epoch=ephem.now()
mars=ephem.Mars(oma)
print "object transit time: ",mars.transit_time
print "observer next transit time: ", oma.next_transit(mars)

这给出了以下输出:

object transit time:  2012/9/5 15:05:32
observer next transit time: 2012/9/5 15:05:32

所以没有区别。

最好的问候,

大理石

最佳答案

要确定哪个函数最准确,只需将它们给你的两个时间输入观察者的 compute() 函数,然后查看哪个着陆点最接近实际的过境时刻,方位角恰好是180°:

import ephem
oma = ephem.Observer()
oma.lat, oma.lon = '50.7975189', '4.3579155'
oma.elevation = 114.43
sun = ephem.Sun()
for t in ('2012/9/5 11:41:03',
'2012/9/5 11:41:06'):
oma.date = t
sun.compute(oma)
print 'azimuth at', t, 'was', sun.az

此脚本的输出显示来自较新的 next_transit() 函数的 11:41:06 时间给出了更准确的结果:

azimuth at 2012/9/5 11:41:03 was 179:58:45.4
azimuth at 2012/9/5 11:41:06 was 179:59:49.5

旧的 .transit_time 属性的准确性较低,这就是为什么当前的 PyEphem 文档建议始终使用 next_transit() 进行它适用的所有传输计算。 (这意味着除了地球卫星之外的所有东西,.transit_time 无论如何都会切换到不同的算法。)

事实上,当前的文档甚至没有提到要求非地球卫星的 .next_transit 甚至是可能的,并且该属性只是为了古老的向后兼容性。

这两个功能的工作方式相同:通过猜测时间,检查当时的方位角,然后一遍又一遍地完善他们的猜测,直到他们喜欢这个答案。最近的 next_transit() 函数在这方面做得更好,因此您应该使用它。

这两个函数为您提供相同火星答案的原因纯属巧合 — 如果您在 9 月 5 日以外的其他日期针对火星运行函数,您会看到不同的答案。这完全取决于函数进行一系列猜测的顺序,以及最后的猜测是恰好靠得很近还是相距很远。而且,我敢打赌,即使是 9 月 5 日,他们的答案也真的不匹配——他们只匹配到第二个,这就是显示的全部内容!如果您要通过打印每个答案的 repr(float(...)) 来显示这两个答案的完全精确的 Julian Date,那么您无疑会发现小数点以下的分歧超出了一秒钟的分辨率就能告诉你。

这是否涵盖了您所有的顾虑?

关于python - 太阳传输时间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12277186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com