You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ephem计算的月球方位角/高度与Stellarium等工具不符问题

问题:ephem计算月球方位角/高度与Stellarium、Heavens Above结果差异显著

我尝试用ephem的Observer获取2016年6月17日某观测点的月球天空位置,但计算出的Azimuth(方位角)和Altitude(高度)与Stellarium、Heavens Above工具的结果存在明显差异。

我的代码如下:

import ephem

observer = ephem.Observer()
observer.name = "Observation Point"
observer.lat = '41.39858935189999'
observer.lon = '2.1853450576007365'
observer.elevation = 18  # meters
observer.pressure = 0

d = ephem.Date('2016/06/17 00:00')
observer.date = d

for _ in range(24):
    moon = ephem.Moon(observer)
    print('%s, az: %s alt: %s' % (observer.date, moon.az, moon.alt))
    observer.date += ephem.hour

输出结果与其他工具的对比如下:

工具azalt
ephem225:14:04.3 (225º 14' 4.3")22:39:57.1 (22º 39' 57.1")
Stellarium195º 15' 25.0"34º 03' 31.0"
Heavens Above195.3º34.1º

我最初以为是时区问题,尝试设置Europe/Madrid时区后结果还是没变,而且已经确认观测点经纬度是字符串格式。请问我还漏掉了什么?


解决方法

问题核心是时间时区的解析差异:

你传入的'2016/06/17 00:00'被ephem默认解析为UTC时间,但Stellarium和Heavens Above默认使用观测点的本地时间(马德里2016年6月处于夏令时,本地时间比UTC快2小时)。本地时间2016/06/17 00:00对应UTC时间2016/06/16 22:00,2小时的时间差直接导致月球位置计算出现显著偏差。

ephem不支持直接设置时区名称,需要手动将本地时间转换为UTC时间传入,或者通过ephem.localtime()做格式转换。

修改后的代码示例

import ephem

observer = ephem.Observer()
observer.name = "Observation Point"
observer.lat = '41.39858935189999'
observer.lon = '2.1853450576007365'
observer.elevation = 18  # meters
observer.pressure = 0

# 马德里夏令时(UTC+2)的2016/06/17 00:00 对应UTC时间2016/06/16 22:00
d = ephem.Date('2016/06/16 22:00')
observer.date = d

for _ in range(24):
    moon = ephem.Moon(observer)
    # 将UTC时间转回本地时间,方便和其他工具对比
    local_time = ephem.localtime(observer.date)
    # 把弧度值转换为十进制角度,和其他工具的输出格式统一
    az_degrees = float(moon.az) * 180 / ephem.pi
    alt_degrees = float(moon.alt) * 180 / ephem.pi
    print(f'{local_time}, az: {az_degrees:.1f}° alt: {alt_degrees:.1f}°')
    observer.date += ephem.hour

额外注意事项

  • ephem返回的moon.az和moon.alt是弧度值,直接打印会显示为时分秒格式,转换为十进制角度更便于和其他工具对比;
  • 你设置了observer.pressure = 0关闭了大气折射修正,若要完全匹配其他工具结果,需检查Stellarium/Heavens Above的折射设置是否一致。

内容的提问来源于stack exchange,提问作者Adir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:52:48