【问题标题】:PyEphem: AlwaysUpError for the Sun occurs in a location where this shouldn't happenPyEphem:太阳的 AlwaysUpError 发生在不应该发生的位置
【发布时间】:2017-07-03 18:39:50
【问题描述】:
import ephem
rwth = ephem.Observer()
rwth.lat = '50.8'
rwth.long = '6.1'
rwth.horizon = '-18'
rwth.next_setting(ephem.Sun())

这将导致错误

Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ephem/init.py", 第 498 行,在 next_setting 中 返回 self._riset_helper(body, start, use_center, False, False) 文件 "/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)) ephem.AlwaysUpError: 'Sun' is still above the horizo​​n at 2017/7/3 23:39:58

但是,在这个位置,太阳绝对应该达到天文暮光(-18 度对应)。你知道问题出在哪里吗?

【问题讨论】:

    标签: python pyephem


    【解决方案1】:

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

    • 在北极的观察者会整天看到太阳在地平线以上 23.5° 的位置绕着天空转。
    • 在 90° – 23.5° = 66.5° 的观察者会看到太阳在地平线上度过一整天,沿其圆周形成一个圆圈。
    • 观察者必须位于纬度 90° – 23.5° – 18° = 48.5° 甚至更南的位置,这样太阳才能下降到足以让他们观察到定义为天文暮光的黑暗水平。李>

    尽管当前日期是春分后几天,但太阳尚未从其最北纬撤退到足够远的距离,开始将天文微光带到您询问的位置。 PyEphem 的答案在这里看起来是正确的。

    【讨论】:

    • 在这个位置,晚上好像变得很黑了,看天文暮光的图片我还以为真的变成了天文暮光呢。这很有趣
    • 其实不是这个原因。你可以看到这里有天文暮光timeanddate.com/sun/germany/aachen。有两个错误:天文暮光结束是-18度,不是开始,我应该使用use_center = True
    • 相反,该链接上的图表证明了我的观点:在您所在的位置没有真正的夜晚,它说整个晚上都在天文暮光之城的水平上。查看右下角:“晚上:今天不适用/总计:00:00” 当您设置use_center=True 时,您给自己额外的半度余地,因此 PyEphem 正在返回答案。但是,如果您查看刚刚链接到的图表,直到 7 月 17 日,您的位置才会在今年夏天首次超越天文暮光,进入真正的黑暗。这对图表有意义吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    相关资源
    最近更新 更多