PyEphem:太阳的AlwaysUpError发生在不应该发生这种情况的位置


import ephem
rwth = ephem.Observer()
rwth.lat = '50.8'
rwth.long = '6.1'
rwth.horizon = '-18'
rwth.next_setting(ephem.Sun())

这将导致错误

回溯(最近一次调用(:文件 ",第 1 行,在 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ephem/init.py", 498路,next_setting 返回self._riset_helper(正文、开始、use_center、假、假(文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ephem/init.py", 470路,_riset_helper d1 = visit_antitransit(( 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ephem/init.py", 418号线,visit_antitransit % (body.name, d(( 星历表。AlwaysUpError:"太阳"在2017/7/3 23:39:58仍然在地平线之上

然而,在这个位置,太阳绝对应该达到天文曙暮光(对应于-18度(。你知道问题是什么吗?

在这个日期(7月初(的纬度上,太阳实际上从未达到-18°的高度,因为北纬50.8°离北极圈太近了。在冬至本身——每年6月21日左右——太阳位于北纬23.5°,如果我们仔细考虑后果,这意味着:

  • 北极的观测者会看到太阳整天在地平线以上23.5°的天空中旋转。
  • 90° – 23.5° = 66.5°的观测者会看到太阳在地平线上度过一整天,沿着其圆周画一个圆圈。
  • 观测者必须在纬度90°-23.5°-18°=48.5°甚至更南的地方,才能使太阳下降到足够低,以便他们观察到定义为天文曙暮光的黑暗水平。

尽管目前的日期是在春分后几天,但太阳还没有从其最北纬撤退到足够远的地方,开始将天文曙暮光带到你所问的位置。PyEphem的答案在这里看起来是正确的。

最新更新