【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

相关文章

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python