以弗所手工计算分点和至点时有15分钟的偏差

2024-04-20 14:09:21 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码试图手动计算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)

Tags: 代码importdate手动d2d1sund3
2条回答

看起来不同是因为PyEphem的基础天文学库总是测量相对于J2000坐标的日心经度,到了你要问的日期,它明显不同于用来定义春分的日期坐标。你知道吗

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

sun.compute(d3, epoch=d3)

然后寻找sun.ra是零度的时间;结果应该是分点。我将了解如何更新PyEphem快速参考,以注意日心坐标似乎没有注意到epoch=参数。你知道吗

非常感谢,布兰登,这是非常有用的,我终于得到正确的价值!事实上,似乎分点的定义是:赤经等于0h,6h,12h,18h,而不是日心经度为0,90,180,270。当您运行下面的代码时,ra和hlon之间有一点不同。但这引出了另一个问题。维基百科页面https://en.wikipedia.org/wiki/Equinox说分点是由经度0或180定义的。那么谁是正确的呢?你知道吗

import ephem
sun = ephem.Sun()

d1 = ephem.Date('2019/03/15')
d2 = ephem.Date('2019/03/25')
a=ephem.degrees('0.0') # or 90, or 180, or 270

def spring_equinox(date):
  sun.compute(date)
  return ephem.degrees(sun.ra - a).znorm

d = ephem.newton(spring_equinox, d1, d2)
print(ephem.Date(d))
print sun.ra
print sun.hlon

相关问题 更多 >