从地面看卫星天顶和仰角的计算

2024-06-11 06:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有卫星和地面观察员的纬度、经度和高度。我试图计算卫星的天顶角和卫星方位角,对于卫星,从地面上看。在

我正在尝试使用astropy来解决这个问题。文档describes如何计算太阳的天顶和方位角。在

我试着把卫星放在观测者的正上方,这样天顶角应该是0°(或仰角90°)。在

In [41]: ground = astropy.coordinates.EarthLocation(lat=3*u.deg, lon=5*u.deg)

In [42]: sat = astropy.coordinates.EarthLocation.from_geodetic(3*u.deg, 5*u.deg, 700*u.km)

我想这不是什么意思:

^{pr2}$

我预计仰角接近90°,而不是63°。在

pyorbital中也有一些例程,但它似乎不包含我要查找的内容。在

我相信使用^{}也应该是可能的,除了这似乎期望我从目录中获得卫星信息。我已经知道纬度,纬度,高度了。在

我也看过^{},但我认为这只适用于大地水准面上的物体。在

如何计算从地面观测到的卫星的高度和方位角?在


Tags: in文档高度观察员coordinatesastropy纬度经度
1条回答
网友
1楼 · 发布于 2024-06-11 06:18:42

您可以从pyorbital获取此信息。相关函数是^{}。由于某些原因,它需要时间,而且它显然要求所有输入都是ndarray对象。当方位角定义错误时(例如天顶角为零时),它会发出警告。但它确实有效:

In [50]: import pyorbital.orbital

In [51]: print(pyorbital.orbital.get_observer_look(atleast_1d(1), atleast_1d(1), atleast_1d(700), datetime.datetime.now(), atleast_1d(1), atleast_1d(1), atleast_1d(1)))
(array([261.11934085]), array([89.99999915]))

In [53]: print(pyorbital.orbital.get_observer_look(atleast_1d(10), atleast_1d(0), atleast_1d(700), datetime.datetime.now(), atleast_1d(0), atleast_1d(0), atleast_1d(0.1)))
/home/zmaw/u237009/.conda/envs/FCDR37a/lib/python3.7/site-packages/pyorbital/orbital.py:112: RuntimeWarning: divide by zero encountered in true_divide
  az_ = np.arctan(-top_e / top_s)
(array([270.]), array([25.73173269]))

In [54]: print(pyorbital.orbital.get_observer_look(atleast_1d(10), atleast_1d(0), atleast_1d(700), datetime.datetime.now(), atleast_1d(0.1), atleast_1d(0.1), atleast_1d(0.1)))
(array([90.56944651]), array([26.03504444]))

相关问题 更多 >