效果如图: 

01.获取卫星TLE数据

TLE数据介绍

BEIDOU 3 G3
1 45807U 20040A   23087.80257715 -.00000362  00000-0  00000+0 0  9996
2 45807   0.8428 319.4828 0006765 332.9703 292.8644  1.00278351 10287

第一行:

BEIDOU 3 G3 卫星名称

第二行:

1 行号
45807 卫星编号
U 卫星类别(U表示不保密,可供公众使用的;C 表示保密,仅限NORAD使用;S表示保密的,仅限NORAD使用)
20 卫星发射年份后两位
040 当年发射顺序(第40次发射)
A 发射卫星个数(A表示是第一个,如果一次发射多颗卫星,使用26个英文字母排序;如果超过了26个编号,则使用两位字母,如AA、AB、AC编号)    A
23 TLE历时(年份后两位)
087.80257715 TLE历时 (用十进制小数表示一年中的第几日和日中的小数部分)  
-.00000362 平均运动的一阶时间导数,用来计算每一天平均运动的变化带来的轨道漂移,提供给轨道计算软件预测卫星的位置。两行式轨道数据使用这个数据校准卫星的位置
00000-0 平均运动的二阶时间导数,用来计算每一天平均运动的变化带来的轨道漂移,提供给轨道计算软件预测卫星的位置 
00000-0 BSTAR拖调制系数
0 美国空军空间指挥中心内部使用的为1;美国空军空间指挥中心以外公开使用标识为0。
999 星历编号,TLE数据按新发现卫星的先后顺序的编号
6 校验和,指这一行的所有非数字字符,按照“字母、空格、句点、正号= 0;负号=1”的规则换算成0和1后,将这一行中原来的全部数字加起来,以10为模计算后所得的和。

第三行:

2 行号
45807 卫星编号
0.8428 轨道的交角是指天体的轨道面和地球赤道面之间的夹度,用0~90°来表示顺行轨道(从地球北极上空看是逆时针运行);用90~180°表示逆行轨道(从地球北极上空看是顺时针运行
319.4828 升交点赤经,升交点赤经是指卫星由南到北穿过地球赤道平面时,与地球赤道平面的交点
0006765 轨道偏心率,轨道离心率是指卫星椭圆轨道的中心点到地球的球心点的距离(c)除以卫星轨道半长轴(a)得到的一个0(圆型)到1(抛物线)之间的小数值
332.9703 近地点幅角
292.8644 平近点角
1.00278351 每天环绕地球的圈数
1028 发射以来飞行的圈数
7 校验和

TLE数据在Space-Track.Org网站获取,右侧可直接查看TLE数据

02.转为CZML(tle2czml)

 最开始我也去找了一些方法,但是都用不太好,特别是那种在线转为czml的网址,我打开后就变为18r网站。。。。离谱

最后是通过使用python库转换成功,首先安装tle2czml库

pip install tle2czml

然后通过如下代码就可以生成czml文件:

import tle2czml
tles = '''BEIDOU 3 G3
1 45807U 20040A   23087.80257715 -.00000362  00000-0  00000+0 0  9996
2 45807   0.8428 319.4828 0006765 332.9703 292.8644  1.00278351 10287
BEIDOU 3 G2
1 45344U 20017A   23087.92549644 -.00000147  00000-0  00000+0 0  9995
2 45344   1.9932   7.5317 0001608  39.8409 191.8663  1.00270978 11478'''
czml = tle2czml.tles_to_czml(tles)
print(czml)
fo = open("test.czml", "w")
fo.write(czml)
fo.close()

我在使用tle2czml的时候有报错:

cannot import name 'as_shape' from 'pygeoif.geometry'

 解决方法,将tle2czml库中的czml.py框住部分改为如下:

运行代码之后就可以得到test.czml文件

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐