【Python】三方库:使用tle2czml库将tle数据转为czml数据

2023-10-17 15:50

本文主要是介绍【Python】三方库:使用tle2czml库将tle数据转为czml数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。


文章目录

  • 一、安装tle2czml
  • 二、tle2czmlc创建czml
  • 三、tle转成czml
    • 1.字符串
    • 2.文件(网络文件)
  • 四、czml参数修改


一、安装tle2czml

使用清华源安装tle2czml

pip install tle2czml -i https://pypi.tuna.tsinghua.edu.cn/simple

现在时间2023年5月是10日,现在安装的tle2czml版本为0.3,依赖包括pygeoif和sgp4。上述安装会报错ImportError: cannot import name ‘as_shape’ from ‘pygeoif.geometry’,原因是pygeoif最新版是1.0,需要降低pygeoif版本为0.7。

pip install pygeoif==0.7 -i https://pypi.tuna.tsinghua.edu.cn/simple

基于tle2czml做了部分修改,请参考https://github.com/lpfandr/tle2czml

二、tle2czmlc创建czml

创建没什么问题,直接使用官方案例
tle.txt内容如下

ISS (ZARYA)             
1 25544U 98067A   20293.22611972  .00000497  00000-0  17003-4 0  9991
2 25544  51.6436  94.7185 0001350  46.8729 126.5595 15.49312821251249
KESTREL EYE IIM (KE2M)  
1 42982U 98067NE  20293.11355452  .00022129  00000-0  15728-3 0  9999
2 42982  51.6336   8.5058 0001619 215.9884 144.1006 15.73808685170523
DELLINGR (RBLE)         
1 43021U 98067NJ  20292.66572402  .00020201  00000-0  13900-3 0  9998
2 43021  51.6343   8.5926 0000331  53.4398 306.6632 15.74631224166254
UBAKUSAT
1 43467U 98067NQ  20293.19063114  .00070844  00000-0  29473-3 0  9996
2 43467  51.6335   1.3662 0002867   6.9343 353.1700 15.85064344139669
CUBERRT
1 43546U 98067NU  20292.65915576  .00130902  00000-0  58528-3 0  9997
2 43546  51.6326   6.1225 0002465  18.8688 341.2406 15.83306046129681

代码

import tle2czml
from datetime import datetime# You can specify the time range you would like to visualise
start_time = datetime(2020, 10, 1, 17, 30)
end_time = datetime(2020, 10, 2, 19, 30)
tle2czml.create_czml("tle.txt", start_time=start_time, end_time=end_time)

三、tle转成czml

这里涉及到一个问题,就是tles的内容,tles的来源可能是字符串或文件(网络文件)。

1.字符串

tles为字符串是需要注意tles 的内容,示例代码如下;

import tle2czmltles = '''BEIDOU 2     
1 31115U 07011A   21323.16884980 -.00000043  00000-0  00000-0 0  9993
2 31115  51.9034 274.7604 0003928 314.2233  45.7206  1.77349177 46511
BEIDOU 3
1 36287U 10001A   21323.54986160 -.00000268  00000-0  00000-0 0  9995
2 36287   1.7347  43.1625 0001966  74.6398 279.3247  1.00266671 43404'''
czml = tle2czml.tles_to_czml(tles)
print(czml)
fo = open("test.czml", "w")
fo.write(czml)
fo.close()

如果封装为函数,示例代码如下:

import tle2czmldef test():tles = '''BEIDOU 2
1 31115U 07011A   21323.16884980 -.00000043  00000-0  00000-0 0  9993
2 31115  51.9034 274.7604 0003928 314.2233  45.7206  1.77349177 46511
BEIDOU 3
1 36287U 10001A   21323.54986160 -.00000268  00000-0  00000-0 0  9995
2 36287   1.7347  43.1625 0001966  74.6398 279.3247  1.00266671 43404'''czml = tle2czml.tles_to_czml(tles)print(czml)fo = open("test.czml", "w")fo.write(czml)fo.close()

2.文件(网络文件)

import json
import 	tle2czmlstations_url = 'https://x.xxx.com/tle/tle.txt'
tles = requests.get(stations_url).text
czml = tle2czml.tles_to_czml(tles, silent=True)
print(json.loads(czml))

四、czml参数修改

tle2czml中封装了czml生成涉及到的相关参数,但是没有提供参数的修改方法。
在这里插入图片描述
根据实际项目,有些参数需要修改,比如MULTIPLIER代表乘数,影响Cesium中轨道的速度;SATELITE_IMAGE_URI代表模型,类型为图片bsae64,影响Cesium中轨道上展示的卫星图形。如果想要使用上述参数,可以按照如下示例:

import jsonimport requests
from tle2czml import *stations_url = 'https://x.xxx.com/tle/tle.txt'
tles = requests.get(stations_url).text
tle2czml.MULTIPLIER = 1
czml = tle2czml.tles_to_czml(tles, silent=True)
# print('data', type(data))
print(json.loads(czml)[0]['clock']['multiplier'])

MULTIPLIER 参数前后对比如下:
在这里插入图片描述
在这里插入图片描述

这篇关于【Python】三方库:使用tle2czml库将tle数据转为czml数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/226412

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J