【问题标题】:Calculating satellite apogee and perigee from TLEs using skyfield使用 Skyfield 从 TLE 计算卫星远地点和近地点
【发布时间】:2020-08-24 15:33:55
【问题描述】:

我正在尝试根据其 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 的距离代表什么吗?

【问题讨论】:

    标签: astronomy skyfield


    【解决方案1】:

    正确,您对所要求的距离有一点误解;然后还有其他一些我不太确定的差异。

    1. 天体下方的“子点”是地球表面上的位置,该表面被建模为 WGS-84 扁球体,赤道处的厚度比两极处多几公里。因此,不要使用subpoint.elevation.km 来衡量国际空间站从高纬度穿越到低纬度时的上升和下降表面,而是尝试geocentric.distance().km。如果您对距地球中心的完整轨道形状不那么感兴趣,而只是对地面上的那个部分感兴趣,那么您总是可以从中减去地球的平均半径。
    2. 我对数学不够精通,无法确定您的粗略计算为何不正确。但我们至少可以将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
    

    【讨论】:

    • 上面说得很有道理。国际空间站是我的起点,因为它有一个我更熟悉的轨道。最终,我将在整个太空轨道目录(当然减去离轨的东西)上运行它,以对各种卫星和碎片进行粗略普查。|考虑到这个用例, geocentric.distance().km 就可以了。一如既往地感谢您的快速和彻底的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多