Python 计算恒星在天空中的位置,PyEphem

Python 计算恒星在天空中的位置,PyEphem,python,astronomy,pyephem,Python,Astronomy,Pyephem,我很难找到天空中恒星的当前坐标(RA,DEC)。 在net中,我只找到了这一个教程,即如何使用ephem库: 据我所知,我需要: 创建观察者 创建一个主体对象星 麻烦的是,我只有恒星的(RA,DEC)坐标 计算位置。计算(现在()) 通过新坐标找到高度 还有一个关于这个图书馆准确性的问题,它有多准确?我比较了这个程序和kstars之间的juliandate和sidestreal时间,看起来很相似 还有这个 PS!或者可能有人可以为此目的找到更好的库。我想你是在找FixedBody吧 telesc

我很难找到天空中恒星的当前坐标(RA,DEC)。 在net中,我只找到了这一个教程,即如何使用ephem库:

据我所知,我需要:

  • 创建观察者
  • 创建一个主体对象星 麻烦的是,我只有恒星的(RA,DEC)坐标

  • 计算位置。计算(现在())

  • 通过新坐标找到高度

  • 还有一个关于这个图书馆准确性的问题,它有多准确?我比较了这个程序和kstars之间的juliandate和sidestreal时间,看起来很相似

    还有这个


    PS!或者可能有人可以为此目的找到更好的库。

    我想你是在找FixedBody吧

    telescope = ephem.Observer()
    telescope.long =  ephem.degrees('10')
    telescope.lat = ephem.degrees('60')
    telescope.elevation = 200
    star = ephem.FixedBody()
    star._ra = 123.123
    star._dec = 45.45
    star.compute(telescope)
    print star.alt, star.az
    
    我不知道准确度;Pypehem使用与xephem相同的代码,例如行星的位置由向下取整的VSOP87解给出(精度优于1弧秒);kstars似乎使用完整的VSOP解决方案
    但这将真正取决于你的需要;不要依赖它盲目地引导你的望远镜,有更好的解决办法

    star = ephem.FixedBody(ra=123.123, dec=45.45)
    
    在我的情况下,fixedbody创建不起作用,应该是

    star = ephem.FixedBody()
    star._ra = ephem.hours('10:10:10')
    star._dec = ephem.degrees('10:10:10')
    

    当涉及到创建自己的身体时,pyEphem的文档是无用的。我以前做过,所以如果我能找到代码,我会发布一个答案。这将是很好的,因为目前我不明白它的工作原理。我已经找到了如何获取当前的朱利安日和恒星时间,我创建了新的观测者,但我无法获得重新计算的恒星坐标。为了验证我使用stars程序,只需比较julian day和恒星时间谢谢,我认为这是我需要的。为什么我不应该依赖它?有时候会错吗?或者你的意思是恒星有时是看不见的?不,在指导望远镜的具体例子中,你需要亚秒精度。好的导航软件实际上使用了本地(相机上的x,y)计算的星心,并且可以处理这些小的修正。这对于长时间曝光是必要的。对于组合的一系列短曝光,精度可能还可以,对于一般的指向望远镜也是如此。如前所述,这取决于您的需要。如果您需要连续跟踪此观察者的对象位置,则应更新观察者时间。例如,在单独的线程中或在每次读取之前。望远镜.date=ephem.now()考虑到这是为数不多的几个可以找到FixedBody用法示例的地方之一,我建议做一个更改,我觉得它很重要。更改是,_ra和_dec必须在FixedBody()外部声明。你放在括号里的东西没有效果。谢谢。没有意识到(没有注意到Ekitru的回答)。如果PyEphem允许在构造函数中初始化,那就太好了;现在我正在设置私有变量,这是个坏主意。
    star = ephem.FixedBody()
    star._ra = ephem.hours('10:10:10')
    star._dec = ephem.degrees('10:10:10')