Crates.io | satellite |
lib.rs | satellite |
version | 0.1.2 |
source | src |
created_at | 2024-08-19 02:29:54.477352 |
updated_at | 2024-09-14 09:25:42.686182 |
description | Modular set of functions for SGP4 and SDP4 propagation of TLEs. |
homepage | |
repository | https://github.com/njueyupeng/satellite |
max_upload_size | |
id | 1343285 |
size | 3,784,597 |
A high-performance library for satellite propagation using TLEs and powered by Rust, inspired by satellite-js. Provides the functions necessary for SGP4/SDP4 calculations. Also provides functions for coordinate transforms.
This library's is a superset of satellite-js。Its API is almost identical to that of satellite.js, and due to the use of Rust and WASM, its performance is several times faster.
🚧 Work in Progress
Ideally, this library should be faster than satellite.js, but currently, not all APIs are meeting the expected speed, and improvements are needed.
Attention: The package name is satellite-pro
, which is different from the original package name.
npm install satellite-pro --save
[dependencies]
satellite = "0.1"
import * as satellite from "satellite-pro";
const tleLine1 = "1 44714C 19074B 24257.74770833 .00012054 00000+0 80755-3 0 2576",
const tleLine2 = "2 44714 53.0541 99.4927 0001373 86.0479 80.2511 15.06391223 18";
const satrec = satellite.twoline2satrec(tleLine1, tleLine2);
const _position_and_velocity = satellite.propagate(satrec, 2024, 9, 22, 12, 12, 12, 0);
⚠️:Your project should support webAssembly.
If you are using Vite as your build tool, you can follow the steps below.
npm install vite-plugin-wasm vite-plugin-top-level-await --save-dev
vite.config.js
import wasm from "vite-plugin-wasm";
import topLevelAwait from "vite-plugin-top-level-await";
// ...
plugins: [
wasm(),
topLevelAwait(),
//...
]
//
use satellite;
pub fn main(){
let tle_line1 = "1 44714C 19074B 24257.74770833 .00012054 00000+0 80755-3 0 2576";
let tle_line2 = "2 44714 53.0541 99.4927 0001373 86.0479 80.2511 15.06391223 18";
let mut satrec = satellite::twoline2satrec(tle_line1, tle_line2);
let _position_and_velocity = satellite::propagate(&mut satrec, 2024.0, 9.0, 22.0, 12.0, 12.0, 12.0, 0.0);
}