5

我想在 python 中使用 PyEphem 库在特定观察者的函数中轻松计算卫星的仰角。这件事对我来说真的很新鲜,所以我使用下面的图片来确保我们谈论的是同一件事。

在此处输入图像描述

简而言之,我必须基于 TLE 为不同的观察者计算卫星的通行证,因为他们必须与之通信。但为了确保他们能够与卫星通信,他们可以指定他们想要的最小仰角。

到现在为止,我能够计算卫星的下一次通过,卫星的仰角(以米为单位)以及卫星与观察者之间的距离是我的代码(我知道我不是在开始计算距离下一次传球,但只是从第二次到第二次):

#satellite
satellite = ephem.readtle(str1, str2, str3)

#observer
guy = ephem.Observer()
guy.lon, guy.lat = str(long), str(lat)
guy.date = datetime.datetime.now()

#next passes
next_pass = guy.next_pass(satellite)
print ("NEXT PASS: ", next_pass)
nb_passes = 250
previous_pass = next_pass

for i in range(0, nb_passes):
    #take satelite downset + 1 second and compute next pass
    guy.date = previous_pass[4].datetime() + datetime.timedelta(0, 1)
    np = guy.next_pass(satellite)
    print np
    #compute the satellite.range at the beginning of the pass
    guy.date = np[0].datetime()
    satellite.compute(guy)
    #elevation in meter
    print 'elevation satellite: ', satellite.elevation
    print 'distance staletlite to guy: ', satellite.range
    print 'elev guy: ', guy.elev
    print 'elevation guy: ', guy.elevation
    previous_pass = np

PyEphem 中有什么东西可以计算仰角吗?(我已阅读文档(不是全部)但我没有找到它)

在二维投影上,用正弦计算应该很容易,因为我们有一个直角三角形,它的对边已知(卫星的仰角)和已知的斜边(观察者和卫星在通道开始时的距离) . 但是我们是在 3d 上的,所以它是最复杂的。

你有一个简单的方法来计算它吗?

4

1 回答 1

2

如果您要satellite使用它询问它的高度角,.alt那么您应该得到在您的图表中称为“高度”的值:

print 'angle above the horizon:', satellite.alt

高度alt是一对坐标中的一个,另一个是az方位角。高度和方位角一起告诉观察者在他们上方的天空中看哪里。一些望远镜使用这个系统,被称为“altazimuth”望远镜。

这里令人困惑的是,地球卫星工程师社区选择了“海拔”这个词来表示卫星在地平线以上的高度,也许他们不知道在科学界,天文学家已经为这个角度起了一个名字“高度”。

有关天文高度和方位角的更多详细信息,请参见:

https://en.wikipedia.org/wiki/Horizo​​ntal_coordinate_system

于 2015-10-04T01:01:03.663 回答