1

我正在尝试使用 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 - 天顶。所以我们的天顶值为:70.64764

我的问题是,为什么有区别?查找表给出了表观角度。这有什么关系吗?

4

1 回答 1

1

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

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

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

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

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

>>> o.lat = math.radians(39.2545)
>>> o.lon = math.radians(-76.7095)

您实际询问的具有这些大弧度值的观察者位于 89:07:01.8° N、284:52:09.8° E 的位置,该位置非常靠近北极。

于 2012-08-14T05:55:58.693 回答