Satellite
Modular set of functions for SGP4 and SDP4 propagation of TLEs.
Install / Use
/learn @njueyupeng/SatelliteREADME
Satellite-pro ⚡️
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.
Speed
🚧 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.
Installation
npm
Attention: The package name is satellite-pro, which is different from the original package name.
npm install satellite-pro --save
Rust
[dependencies]
satellite = "0.1"
Usage
JS
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(),
//...
]
//
Rust
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);
}
todo
- [ ] Performance optimization after compiling to wasm
- [ ] Add testCase
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
