我以前从来没有用过pyephem,我也不是卫星定位方面的专家。我想利用pyephem来使用TLE计算卫星的位置。我必须做一些非常简单的事情,像这样:
tle=["ISS (ZARYA)","1 25544U 98067A 03097.78853147 .00021906 00000-0 28403-3 0 8652","2 25544 51.6361 13.7980 0004256 35.6671 59.2566 15.58778559250029"]
iss = ephem.readtle(*tle)
observer = ephem.Observer()
observer.lon, observer.lat = ('-84.39733', '33.775867')
observer.date = ephem.Date('2002/4/23 10:10:00.000')
iss.compute(observer)
print iss.alt, iss.az, iss.range-40:06:46.3199:08:24.3 8834968.0
这三个变量提供了卫星在水平参考系中的位置。我不清楚pyephem是如何计算这个值的。我已经阅读了参考指南:http://rhodesmill.org/pyephem/radec
阅读文档,似乎pyephem应用了进动和章动,但在文档的最后两行中,它说:
请注意,最后两组坐标中的任何一组都没有应用进动,但仅适用于第一组坐标。这意味着只有“天文测量”位置将与星图中的线条相对应。其他位置是所谓的“最新”坐标,它们是从观测当天的天极和天赤道的方向测量出来的。
地球进动是否适用于az和alt?
此外,我想知道pyephem使用哪种模型来表示进动和章动(我真的需要一些参考)。上面有Xephem和libastro的链接,但我找不到任何关于算法的东西。你有什么意见建议?
非常感谢!
发布于 2013-04-21 00:27:49
通过查看libastro目录中的各种C语言文件,您可以找到PyEphem使用的各种算法:
https://github.com/brandon-rhodes/pyephem/tree/master/libastro-3.7.5
但要回答你的具体问题:进动、像差和章动是通常只对地球移动的参考系之外的物体计算的效果--太阳、行星和遥远的恒星等物体。然而,由于地球卫星在我们自己的参照系中运行,我认为libastro通常会直接比较卫星在地球上方的位置和观察者在地球上的位置,因为它们已经是同一局部参照系中的坐标。
https://stackoverflow.com/questions/13643850
复制相似问题