2024-06-28 19:43:35 发布
网友
我试图用PyEphem计算太阳纬度和经度,但我不明白的是,当我计算太阳的经度和星座时
>>> sun = ephem.Sun() >>> sun.compute('2011/05/04') >>> print ephem.Ecliptic(sun).lon 43:02:58.8
所以43:02:58.8是13.02金牛座 但当我试图得到星座时
上面说白羊座出什么事了我不明白请你帮忙
在白羊座。以下是我使用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
黄道上的太阳距离贝塔阿里星6:09度,所以它仍然在白羊座。 我还用其他程序用那个日期复查了这个结果,结果是一样的。在
好问题!在
有两个原因让你得到了一个不同于你预期的答案。在
首先,天文学家目前使用的星座边界是根据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
运行此脚本时,我得到以下输出:
这样就可以从结果中删除一个错误源。注意,PyEphem constellation()函数在查找星座边界表中的天空位置之前,会自动将坐标转换为1875,前提是你提供了一个与1875不同的epoch作为参数。在
constellation()
epoch
你遇到的另一个问题是,官方的星座边界标记了天空中的实际恒星群,它们形成了公羊(金牛座)、天平(天秤座)等。碰巧这些数字甚至都不接近横跨黄道30°的每一个(正如你所预期的那样,因为你从返回的角度减去了30°)。如果你打印出沿黄道每度的星座图,你会(a)发现星座的宽度变化很大,(b)你会发现13个而不是12个星座穿过黄道,因为蛇夫座的一部分位于1875年的黄道上。在
以下是一些可能有帮助的参考资料:
{a1}
http://en.wikipedia.org/wiki/Precession
在白羊座。以下是我使用Beta Ari作为参考的计算结果:
黄道上的太阳距离贝塔阿里星6:09度,所以它仍然在白羊座。 我还用其他程序用那个日期复查了这个结果,结果是一样的。在
好问题!在
有两个原因让你得到了一个不同于你预期的答案。在
首先,天文学家目前使用的星座边界是根据1875年黄道恰好位于的位置来确定的。从那时起,黄道上的“零经度”点随着地轴的进动而继续移动,因此你得到的答案将偏离几度。要真正了解1875坐标下的经度,你必须这样问:
运行此脚本时,我得到以下输出:
^{pr2}$这样就可以从结果中删除一个错误源。注意,PyEphem
constellation()
函数在查找星座边界表中的天空位置之前,会自动将坐标转换为1875,前提是你提供了一个与1875不同的epoch
作为参数。在你遇到的另一个问题是,官方的星座边界标记了天空中的实际恒星群,它们形成了公羊(金牛座)、天平(天秤座)等。碰巧这些数字甚至都不接近横跨黄道30°的每一个(正如你所预期的那样,因为你从返回的角度减去了30°)。如果你打印出沿黄道每度的星座图,你会(a)发现星座的宽度变化很大,(b)你会发现13个而不是12个星座穿过黄道,因为蛇夫座的一部分位于1875年的黄道上。在
以下是一些可能有帮助的参考资料:
{a1}
http://en.wikipedia.org/wiki/Precession
相关问题 更多 >
编程相关推荐