计算仰角的pyephem库

5
我希望能够使用PyEphem库在Python中轻松计算卫星相对于特定观察者的仰角。 这个问题对我来说非常新颖,因此我使用下面的图片确保我们谈论的是同一个东西。

enter image description here

简单来说,我需要根据不同观察者的 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中是否有计算仰角的功能?(我已经阅读了文档(不是全部),但没有找到)

在二维投影上,可以通过正弦函数轻松计算仰角,因为我们有一个已知的对边(卫星高度)和一个已知的斜边(观测者和卫星之间的距离)。但我们处于三维空间中,所以更加复杂。

你有没有一种简单的方法来计算它?


即使在三维空间中,角度仍应保持不变...?除非我们的理解有偏差... - R Nar
1个回答

2
如果您使用 .alt 向卫星请求其高度角,则应获得在您的图表中称为“仰角”的值:
print 'angle above the horizon:', satellite.alt

海拔alt是一对坐标之一,另一个是方位角az。海拔和方位角告诉观察者在天空中往哪个方向看。一些望远镜使用这个系统,并被称为“高度方位”望远镜。
混淆的地方在于,地球卫星工程师社区选择了“仰角”一词来表示卫星相对于地平线的高度(以度为单位),可能不知道在科学领域,天文学家已经有了一个名字“海拔角”。
有关天文海拔角和方位角的更多详细信息,请参见: https://en.wikipedia.org/wiki/Horizontal_coordinate_system

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接