Simplified perturbations models are a set of models used for satellites and objects relative to an Earth-centered inertial coordinate system. These are often referred to collectively as SGP4 because of how popular that particular code is and how it's used with nearly all low Earth orbit satellites.
The SGP4 and SDP4 models were published as FORTRAN IV in 1988. It has also been ported to C. This is a port to Rust.
This port of SGP4 is still in progress.
A minimal example:
extern crate sgp4;
fn main() {
let tle = sgp4::tle::load_from_str(
"ISS (ZARYA)",
"1 25544U 98067A 16210.59822142 .00000812 00000-0 11901-4 0 9990",
"2 25544 51.6406 211.4156 0001780 85.8307 274.3426 15.54888439 11433",
);
println!("Satellite {}:", tle.int_designator);
let time = 0.0;
println!("TEME position at time t={}:", time);
let location = sgp4::propagate(tle, time);
println!(" X: {}", location.X);
println!(" Y: {}", location.Y);
println!(" Z: {}", location.Z);
}
See Rust's directions for getting Rust installed on your computer. If you're using OSX or any flavor of linux this should probably work:
$ curl -sSf https://static.rust-lang.org/rustup.sh | sh
If you have the Rust toolchain installed, compile the program with cargo:
$ cargo build
Be sure to test after making changes
$ cargo test
Build the module documentation locally:
$ make doc
Copyright (c) 2016 Nathan Bergey
This project is licensed under the terms of the MIT license