#astrophysics #sgp4 #orbital-mechanics #api-bindings #high-level #two-line-element

sys sgp4-rs

Rust对Vallado SGP-4轨道传播器的封装

13个版本

0.4.1 2024年7月30日
0.4.0 2023年7月19日
0.3.8 2023年3月13日
0.3.6 2022年7月5日
0.2.1 2020年11月12日

#33 in 模拟

Download history 2/week @ 2024-04-29 7/week @ 2024-05-06 3/week @ 2024-05-13 15/week @ 2024-05-20 13/week @ 2024-05-27 44/week @ 2024-06-03 26/week @ 2024-06-10 40/week @ 2024-06-17 166/week @ 2024-06-24 86/week @ 2024-07-01 37/week @ 2024-07-08 50/week @ 2024-07-15 106/week @ 2024-07-22 261/week @ 2024-07-29 60/week @ 2024-08-05 155/week @ 2024-08-12

582 每月下载量

MIT 许可证

160KB
3K SLoC

C++ 1.5K SLoC // 0.4% comments Rust 1.5K SLoC // 0.0% comments

sgp4-rs

CI Status Docs Crate

本crate实现了对“Revisiting Spacetrack Report #3”论文中提供的SGP-4轨道传播器的C++实现的封装(链接:链接)。它提供了对传播器库的高级绑定,具有更现代的接口。

我们的方法将低级unsafe绑定分离到sgp4_sys模块中,而安全函数则通过库的根模块导出。因为底层的SGP4实现是线程安全的,所以这个crate可以在多线程环境和async/await代码中使用。

我们没有为库中的每个函数创建绑定,特别是对于那些重复Rust标准库函数的情况。核心传播器功能已公开,允许从两条元素数据预测给定时间的轨道体状态向量。

构建

sgp4在稳定的Rust通道上构建干净,但需要本地C++编译器来构建封装的SGP4库。

实验功能

tlegen功能添加了从一组轨道元素创建自定义TLE的基本支持。这个功能有一些重要的注意事项,因此默认不启用。有关详细信息,请参阅ClassicalOrbitalElements文档。

相关的sgp4 crate是这个crate封装的Vallado库的纯Rust重实现。

依赖项

~2.2–3.5MB
~65K SLoC