基于TLE星历的卫星轨道坐标计算

卫星星历,又称为两行轨道数据(TLE,Two-Line Orbital Element),由美国celestrak发明创立,是用于描述太空飞行体位置和速度的表达式———两行式轨道数据系统。卫星星历格式,又称为两行式轨道数据格式(TLE,Two-Line Orbital Element Set Format)。

格式含义

卫星星历的结构为上下两行,每行69个字符,包括0~9、A~Z(大写)、空格、点和正负号,其他字符是无意义的。

第0行,将第1行视为0行,是卫星通用名称,最长为24个字符。

第1行和第2行是标准的卫星星历格式(TLE格式),每行69个字符,包括0~9,A~Z(大写)、空格、点和正/负号,除此之外的其他字符都是无意义也无效的。

卫星星历编号含义

(1)第1行,字符号1是轨道数据。

(2)第1行的1~3和第2行2~3是卫星编号;

(3)1~4是秘密分级,U、C 或S。

U表示此数据是不保密的,可供公众使用的;C 表示此数据是保密的,仅限NORAD使用;S表示此数据是保密的,仅限NORAD使用。

(4)1~6是卫星的发射年份;

(5)1~10是轨道数据的建立时间,按世界标准时间;

(6)1~21是两个轨道比较参数;

(7)每行的最后一位都是以10为模的校验位,可以检查出90%的数据存储或传送错误。

轨道计算

目前比较好的python计算卫星轨道的模型由sgp4 · PyPIsgp4 · PyPI)提供:

具体使用方法为:

from sgp4.api import jday
from sgp4.api import Satrec

jd, fr = jday(2019, 12, 9, 20, 42, 0) 
s = '1 25544U 98067A   19343.69339541  .00001764  00000-0  38792-4 0  9991'
t = '2 25544  51.6439 211.2001 0007417  17.6667  85.6398 15.50103472202482'
satellite = Satrec.twoline2rv(s, t)
e, r, v = satellite.sgp4(jd, fr)

不足的地方为,计算结果给出的卫星坐标r是在ECI坐标系下的,并不是我们常用的经纬高信息,因此需要将ECI坐标转换为地理经纬高信息,以starlink卫星的TLE星历为例进行测试,具体星历为:

STARLINK-1007           
1 44713U 19074A   24148.66392376  .00001824  00000+0  14133-3 0  9990
2 44713  53.0531 229.1823 0001294 101.8174 258.2960 15.06399252250790

实现代码为:

if __name__ == '__main__':
    year = 2024
    mon = 5
    day = 16
    hr = 15
    minute = 30
    sec = 30.125

    jd, fr = jday(year, mon, day, hr, minute, sec)
    # jd1, fr1 = julianday(year, mon, day, hr, minute, sec)
    s = '1 44713U 19074A   24148.66392376  .00001824  00000+0  14133-3 0  9990'
    t = '2 44713  53.0531 229.1823 0001294 101.8174 258.2960 15.06399252250790'
    satellite = Satrec.twoline2rv(s, t)
    e, r, v = satellite.sgp4(jd, fr)
    sat_ECI = [x * 1.0e3 for x in r]

    xsat_ecf = ECI2ECEF(year, mon, day, hr, minute, sec, sat_ECI)
    alat, alng, alt = xyz2llh(xsat_ecf[0], xsat_ecf[1], xsat_ecf[2])

    print("xsat_ecf:", xsat_ecf)
    print("alat:", alat)
    print("alng:", alng)
    print("alt:", alt)

计算结果如下:

xsat_ecf: [-6119718.528428664, 2514294.8929885253, -2056444.6988101376]
alat: -17.367165265415018
alng: 157.66462206459067
alt: 552073.3401240921

后面可以一期详细的教程,介绍ECI转换为地理经纬高的方法。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值