使用天空场从 TLE 计算卫星远地点和近地点
Calculating satellite apogee and perigee from TLEs using skyfield
我正在尝试根据给定卫星的 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
。如果您对距地球中心的轨道的完整形状不太感兴趣,而只对地面以上的部分感兴趣,则可以随时从中减去地球的平均半径。
- 我不太精通数学,无法确定为什么您的 back-of-the-envelope 计算失败了。但是我们至少可以将
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
我正在尝试根据给定卫星的 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
。如果您对距地球中心的轨道的完整形状不太感兴趣,而只对地面以上的部分感兴趣,则可以随时从中减去地球的平均半径。 - 我不太精通数学,无法确定为什么您的 back-of-the-envelope 计算失败了。但是我们至少可以将
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