为什么月亮的ephem位置和查找表位置之间存在差异

时间:2012-08-13 21:11:28

标签: coordinates azimuth pyephem

我正在尝试使用python的ephem模块定位月球位置(海拔高度和方位角),并将其与查找表进行比较,以查找我所在位置的明显月球位置。我注意到我获得的角度值的显着差异。这是我的测试代码。

>>> o = ephem.Observer()
>>> o.lat = 39.2545
>>> o.lon = -76.7095
>>> o.elevation = 80
>>> o.date = datetime.datetime.utcnow()
>>> print o.date
2012/8/13 21:00:55
>>> m = ephem.Moon(o)
>>> import math
>>> azimuth = math.degrees(m.az)
>>> azimuth
286.2894281178355
>>> alt = math.degrees(m.alt)
>>> alt
19.35235063580148

现在,将这些角度与查找表值进行比较:

       Date/Time             Zenith         Azimuth
2012 Aug 13 21:00:00.0      88.45125       294.56966
2012 Aug 13 21:20:00.0      91.82583       297.59090

注意:Alt = 90 - Zenith。所以我们的天顶值将是:70.64764

我的问题是,为什么会有区别?查找表提供明显角度。这与它有关吗?

1 个答案:

答案 0 :(得分:1)

你的问题是你不小心提供弧度的latlon值,因为当给PyEphem一个浮点数时,它总是假设你在做“原始数学”并提交以弧度表示的值:

>>> o.lat = 39.2545
>>> o.lon = -76.7095

如果您想要提供学位并让PyEphem翻译,您可以提供字符串:

>>> o.lat = '39.2545'
>>> o.lon = '-76.7095'

或者您可以提供使用math函数计算的数字,如果这可以帮助您保持一切正确,因为PyEphem将字符串转换为数字的做法不是标准的Python习语,而每个人都会理解{{ 1}}在阅读你的代码时:

math.radians()

你实际上询问的那些大弧度值的观察者位于北纬89:07:01.8°,284:52:09.8°E,非常靠近北极。