pyephem 计算仰角

pyephem compute elevation angle

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

简而言之,我必须为不同的观察者计算基于 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的,所以最复杂。

你有简单的计算方法吗?

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

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

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

这里的困惑是,Earth-satellite 工程师社区选择了“海拔”这个词来表示卫星在 horizon 之上的度数,也许在科学上,天文学家并不知道这一点已经为该角度命名为“高度”。

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

https://en.wikipedia.org/wiki/Horizontal_coordinate_system