下面的代码尝试手动计算2019年的第一个春分。
它返回

('d1 =',2019/3/20 21:43:48)
('d2 =',2019/3/20 21:43:49)
2019/3/20 21:58:31

也就是说,与实际春分的差异为15分钟。这正常吗?
我忘记了什么吗?该问题也与胶乳同时出现,如果我使用了集成牛顿法,也会出现问题。它可能与计算时代有关吗?

谢谢,

丹尼斯

import ephem
sun = ephem.Sun()

# computing Spring equinox:
d1 = ephem.Date('2019/03/15')
d2 = ephem.Date('2019/03/25')
a=ephem.degrees('180.0')

for i in range(20):
  #middle date
  d3=(d1+d2)/2
  sun.compute(d3)
  if sun.hlon>a:
      d2=d3
  else:
      d1=d3

print("d1=",ephem.Date(d1))
print("d2=",ephem.Date(d2))
d1 = ephem.next_equinox('2019')
print(d1)

最佳答案

看起来差异是因为PyEphem的基础天文学库始终测量相对于J2000坐标的日心经度,到您要查询的日期为止,它与用于定义春分点的日期坐标明显不同。

尝试将其作为计算步骤运行:

sun.compute(d3, epoch=d3)


然后查找sun.ra何时为零度;结果应该是春分点。我将看到有关更新PyEphem快速参考的内容,以注意到日心中心坐标似乎并不注意epoch=参数。

10-07 21:39