2

我试图使用 PyEphem 计算太阳纬度和经度,但我不明白的是当我计算太阳经度和星座时

>>> sun = ephem.Sun()
>>> sun.compute('2011/05/04')
>>> print ephem.Ecliptic(sun).lon
43:02:58.8

所以 43:02:58.8 是 13.02 Taurus 但是当我尝试获取星座时

>>> print ephem.constellation(sun)
('Ari', 'Aries')

它说白羊座出了什么问题我不明白请帮忙

4

2 回答 2

3

好问题!

有两个原因导致您得到的答案与您预期的不同。

首先,天文学家目前使用的星座边界是根据 1875 年黄道恰好所在的位置确定的。此后,黄道上的“零经度”点随着地轴的进动而不断移动,因此你得到的答案会偏离几度。要真正了解 1875 坐标中的经度,您必须这样问:

import ephem
sun = ephem.Sun()
sun.compute('2011/05/04')
print "Today's coordinates:", ephem.Ecliptic(sun).lon
sun.compute('2011/05/04', epoch='1875')
print "In 1875 coordinates:", ephem.Ecliptic(sun).lon

运行此脚本时,我得到输出:

Today's coordinates: 43:02:58.8
In 1875 coordinates: 41:18:14.1

这样可以从您的结果中消除一个错误来源。请注意,PyEphemconstellation()函数会在其星座边界表中查找天空位置之前自动将坐标转换为 1875,前提是您提供的物体作为其参数,其参数epoch与 1875 不同。

您遇到的另一个问题是,官方星座边界标记了天空中实际的恒星群,这些恒星群构成了公羊(金牛座)、天秤座(天秤座)等的形象。碰巧的是,这些数字甚至不接近每个横跨黄道的 30°(正如您可能已经预料到的,因为您从返回的角度减去 30°?)。如果你打印出沿着黄道的每个角度的星座,你会 (a) 发现星座的宽度变化很大,并且 (b) 你会发现有 13 个而不是 12 个星座穿过黄道,因为蛇夫座的一部分位于沿着 1875 年的黄道。

以下是一些可能有用的参考资料:

http://en.wikipedia.org/wiki/Constellation#IAU_constellations

http://en.wikipedia.org/wiki/Precession

于 2013-04-20T15:00:18.820 回答
0

它在白羊座。这是我使用Beta Ari作为参考的计算:

>>> sun = e.Sun()
>>> sun.compute('2011/05/04')
>>> e.Ecliptic(sun).lon
43:02:58.8
>>> beta_ari = e.readdb('Sheratan,f|S|A5,01:54:38.5|98.74,28:48:28.9|-110.41,2.65,2000,0')
>>> beta_ari.compute('2011/05/04')
>>> e.Ecliptic(beta_ari).lon
36:53:55.2
>>> e.Ecliptic(sun).lon - e.Ecliptic(beta_ari).lon
0.10735523133236013
>>> e.degrees(e.Ecliptic(sun).lon - e.Ecliptic(beta_ari).lon)
6:09:03.6

黄道线上的太阳距离 Beta Ari 为 6:09 度,所以它仍在白羊座。我还使用该日期与其他程序仔细检查了这个结果,结果是一样的。

于 2013-05-21T17:40:23.307 回答