2

我需要找到最快的方法来检查卫星(给定它的 TLE)是否从相机可见(给定它在地球上的位置 - 经度和纬度 - 以及它的视野)。摄像机的视场定义为宽度为 15 度、高度为 60 度且以某个已知高度和方位角为中心的矩形。

TLDR:我的第一次尝试是使用 PyEphem ( https://rhodesmill.org/pyephem/ ) 计算相对于观察者的卫星 ALT 和 AZ,并检查它是否没有黯然失色。为了检查这颗卫星是否在 FOV 中,我使用了 astropy Regions ( https://astropy-regions.readthedocs.io/en/stable/ ) 来构建矩形天空区域。它工作正常,但我在 TLE 中有 5400 颗卫星和 24 个不同位置的相机,这种方法变得太慢了。


更详细地说:我需要使用遍布全球的广角相机(宽 15 度,高 60 度)模拟卫星观测。我试图将每个摄像机定义为具有已知位置的“站”对象,并将 FOV 定义为来自天体区域的 RectangularSkyRegion:

region = RectangleSkyRegion(center = SkyCoord(az_mid, alt_mid, unit = "deg"), width = 15 *u.deg, height = 60 *u.deg)

然后使用 PyEphem 我随着时间的推移进行迭代:

time = ephem.Date("2021/09/09 19:30:00.00")
for j in range(12*60*60*24*30):
   date = ephem.Date(time + 5*j*ephem.second)

现在我真的不知道该怎么做,因为我需要检查几件事。首先,我需要检查相机是否在夜间,我在 PyEphem 的帮助下完成了这项工作。我只是简单地检查之前日落的时间是否大于之前日出的时间。我还需要检查一颗卫星是否高于观察者的地平线,以及它是否黯然失色。我可以很简单地做到这一点,但首先我需要计算每个慢速观察者的卫星位置(5400 个不同的卫星和 24 个不同的观察者)。PyEphem 中有一种方法可以仅知道观测时间来计算卫星位置,但这会给我子点的地心纬度和经度角以及海拔高度或赤经和赤纬,我必须将其转换为 ALT 和 AZ对我的问题有任何用处。

4

0 回答 0