我之前从未使用过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.3 199:08:24.3 8834968.0
这三个变量提供了卫星在地平参考系中的位置。我不清楚pyephem如何计算这些值。我已经阅读了参考指南:http://rhodesmill.org/pyephem/radec
阅读文档,似乎pyephem应用了岁差和章动,但在文件的最后两行中,它说:
"请注意,最后两组坐标都没有应用岁差,只有第一组应用了。这意味着只有“天文测量”位置才对应于您的星图线条。其他位置是所谓的“日期时代”的坐标,并且是根据观察当天的天球极和天球赤道的方向进行测量的。
地球的岁差是否应用于az和alt?
此外,我想知道pyephem使用什么样的模型来处理岁差和章动(我真的需要一些参考)。有一个链接到Xephem和libastro,但我找不到任何关于算法的信息。你有什么建议吗?
非常感谢!