7

我以前从未使用过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 的链接,但我找不到任何关于算法的信息。你有什么建议吗?

非常感谢!

4

1 回答 1

2

通过查看 PyEphem 目录中的各种 C 语言文件,您可以找到 PyEphem 使用的各种算法libastro

https://github.com/brandon-rhodes/pyephem/tree/master/libastro-3.7.5

但是要回答您的具体问题:进动、像差和章动是通常仅针对地球移动参考系之外的物体(如太阳、行星和遥远的恒星)计算的效果。然而,由于地球卫星在我们自己的参考系中运行,我认为 libastro 通常会直接比较地球上方的卫星位置和地球上观察者的位置,因为它们已经是同一个地方的坐标参考范围。

于 2013-04-20T16:27:48.877 回答