astronomy - 使用 Skyfield 从 TLE 计算卫星远地点和近地点
问题描述
我正在尝试根据其 TLE 计算给定卫星的近地点和远地点
from skyfield.api import Topos, EarthSatellite
ts = load.timescale()
# latest TLE as of this morning, epoch is epoch=2020-08-24T12:30:01Z
line=['0 ISS (ZARYA)',
'1 25544U 98067A 20237.52084486 .00016717 00000-0 10270-3 0 9031',
'2 25544 51.6430 10.2947 0001353 63.6269 296.5020 15.49179055 2606']
satellite = EarthSatellite(line[1], line[2], line[0], ts)
t = ts.utc(2020, 8, 24, 12, range(30,123)) #epoch + a full orbit
geocentric = satellite.at(t)
subpoint = geocentric.subpoint()
print(f"max {max(subpoint.elevation.km)}")
print(f"min {min(subpoint.elevation.km)}")
这产生了 437.7 的远地点和 418.5 的近地点。近地点看起来正确,但远地点看起来太高了约 17 公里。
以为我读错了文档,我还尝试计算沿途的地心距离并得到相同的结果(到 7 个位置)
difference = satellite - bluffton
topocentric = difference.at(t)
alt, az, distance = topocentric.altaz()
print(f"max {max(distance.km)}")
print(f"min {min(distance.km)}")
这会在小数点后 7 位内产生相同的结果。
在 TLE 的时代,更多地手动执行此操作:
revs_per_day = 15.49179055
eccentricity = 0.0001353
earth_equatorial_radius = 6378.14
period_hrs = 24.0 / revs_per_day
range = (6028.9 * (period_hrs * 60))** (2 / 3)
perigee = range * (1 + eccentricity) - earth_equatorial_radius
产生了420.02公里的远地点和418.18公里的近地点,这更符合我的预期。
我究竟做错了什么?我不明白 Skyfield 的距离代表什么吗?
解决方案
正确,您对所要求的距离有一点误解;然后还有其他一些我不太确定的差异。
- 物体下方的“子点”是地球表面上的位置,该表面被建模为 WGS-84 扁球体,赤道比两极厚数公里。因此,
subpoint.elevation.km
当国际空间站从高纬度穿越到低纬度时,不要使用针对上升和下降表面的措施,而是尝试一下geocentric.distance().km
。如果您对距地球中心的完整轨道形状不那么感兴趣,那么您总是可以从中减去地球的平均半径,而不是只对地面上的那个部分感兴趣。 - 我对数学不够精通,无法确定您粗略计算的原因。但我们至少可以将最大值和最小值
geocentric.distance().km
与 NASA HORIZONS 输出进行比较。我在下面附上它的一些输出:它显示国际空间站在一个轨道上从 6788 公里上升和下降到 6803 公里,几乎与从 Skyfield 返回的 6789-6802 公里范围的距离相同——这表明高度范围确实超过当前轨道为 2 公里。
*******************************************************************************
Ephemeris / WWW_USER Mon Aug 24 17:36:17 2020 Pasadena, USA / Horizons
*******************************************************************************
Target body name: International Space Station (spacecraft) (-125544) {source: iss}
Center body name: Earth (399) {source: DE431mx}
Center-site name: GEOCENTRIC
*******************************************************************************
Start time : A.D. 2020-Aug-25 00:00:00.0000 UT
Stop time : A.D. 2020-Aug-25 03:00:00.0000 UT
Step-size : 1 minutes
*******************************************************************************
...
Center pole/equ : High-precision EOP model {East-longitude positive}
Center radii : 6378.1 x 6378.1 x 6356.8 km {Equator, meridian, pole}
Target primary : Earth
Vis. interferer : MOON (R_eq= 1737.400) km {source: DE431mx}
Rel. light bend : Sun, EARTH {source: DE431mx}
Rel. lght bnd GM: 1.3271E+11, 3.9860E+05 km^3/s^2
Atmos refraction: NO (AIRLESS)
RA format : HMS
Time format : CAL
EOP file : eop.200824.p201115
EOP coverage : DATA-BASED 1962-JAN-20 TO 2020-AUG-24. PREDICTS-> 2020-NOV-14
Units conversion: 1 au= 149597870.700 km, c= 299792.458 km/s, 1 day= 86400.0 s
Table cut-offs 1: Elevation (-90.0deg=NO ),Airmass (>38.000=NO), Daylight (NO )
Table cut-offs 2: Solar elongation ( 0.0,180.0=NO ),Local Hour Angle( 0.0=NO )
Table cut-offs 3: RA/DEC angular rate ( 0.0=NO )
****************************************************************************************************************
Date__(UT)__HR:MN R.A._____(ICRF)_____DEC APmag S-brt delta deldot S-O-T /r S-T-O
****************************************************************************************************************
$$SOE
2020-Aug-25 00:00 11 24 02.95 +19 59 34.2 n.a. n.a. 0.00004542337255 0.0095997 18.8151 /T 161.1844
...
2020-Aug-25 00:25 16 34 19.41 -47 50 11.1 n.a. n.a. 0.00004547799868 0.0003566 101.0263 /T 78.9709
2020-Aug-25 00:26 16 56 12.33 -49 10 57.0 n.a. n.a. 0.00004547808220 0.0000571 104.6886 /T 75.3086
2020-Aug-25 00:27 17 19 10.96 -50 15 22.9 n.a. n.a. 0.00004547804847 -0.0002273 108.3437 /T 71.6534
2020-Aug-25 00:28 17 43 04.17 -51 02 05.5 n.a. n.a. 0.00004547790303 -0.0004991 111.9896 /T 68.0075
...
2020-Aug-25 01:13 05 07 59.71 +49 48 30.6 n.a. n.a. 0.00004538023740 -0.0018603 73.4466 /L 106.5505
2020-Aug-25 01:14 05 31 35.95 +50 43 36.4 n.a. n.a. 0.00004537965836 -0.0010181 69.7785 /L 110.2186
2020-Aug-25 01:15 05 55 59.08 +51 20 10.6 n.a. n.a. 0.00004537942066 -0.0001615 66.1208 /L 113.8763
2020-Aug-25 01:16 06 20 51.01 +51 37 19.0 n.a. n.a. 0.00004537952843 0.0007013 62.4763 /L 117.5208
2020-Aug-25 01:17 06 45 50.83 +51 34 35.0 n.a. n.a. 0.00004537998258 0.0015622 58.8484 /L 121.1487
2020-Aug-25 01:18 07 10 36.81 +51 12 03.0 n.a. n.a. 0.00004538078075 0.0024132 55.2411 /L 124.7560
推荐阅读
- matlab - 为什么char在Matlab S-Function中存储为2个字节
- c# - 如何在 C# 中的 HttpClient.* 方法中使用实际工作超时
- git - Yii2 应用程序未完全上传到 Gitlab
- ngx-charts - 在图例上隐藏/显示图表中的相应数据单击 ngx-charts
- vb.net - 删除组合框VB中的部分项目
- reactjs - Styled Components - 扩展元素样式和覆盖属性
- maven - Github 操作使用 maven 构建 jar 并用于构建 docker 映像
- mysql - 在 Django 休息框架中:GDAL_ERROR 1: b'PROJ: proj_as_wkt: 找不到 proj.db'
- haskell - Haskell 嵌套循环
- image-processing - 如何通过终端调整图像大小?