我尝试使用 PyEphem 计算太阳纬度和经度,但我不明白的是当我计算太阳经度和星座时
>>> sun = ephem.Sun()
>>> sun.compute('2011/05/04')
>>> print ephem.Ecliptic(sun).lon
43:02:58.8
所以 43:02:58.8 是 13.02 金牛座 但是当我尝试获取星座时
>>> print ephem.constellation(sun)
('Ari', 'Aries')
它说白羊座出了什么问题,我不明白,请有人帮忙
最佳答案
好问题!
您得到的答案与您预期的不同有两个原因。
首先,天文学家目前使用的星座边界是根据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
这样就消除了结果中的一个错误来源。请注意,PyEphem constellation()
如果您提供一个具有 epoch
的 body 作为其参数,函数会在其星座边界表中查找天空位置之前自动将坐标转换为 1875这与 1875 年不同。
您遇到的另一个问题是,官方星座边界标记了天空中实际的恒星群,这些恒星群形成了白羊座(金牛座)、天秤座(天秤座)等图形。而且碰巧这些数字甚至与黄道上的每个跨越 30° 的数字都相差甚远(正如您可能所预料的,因为您是从返回的角度中减去 30°?)。如果沿着黄道打印出每个度数的星座,您会 (a) 发现星座的宽度变化很大,并且 (b) 您会发现有 13 个星座而不是 12 个星座穿过黄道,因为蛇夫座的一部分位于沿着 1875 年黄道。
以下是一些可能有用的引用:
http://en.wikipedia.org/wiki/Constellation#IAU_constellations
关于python - 如何使用 PyEphem 计算正确的行星经度和星座,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16006244/