Expand description
§“SatKit” : Satellite Tool SatKit
§Crate Features:
- Timescale transformations (UTC, GPS, UT1, TBD, TT, …)
- High-precision coordinate transforms between:
- International Terrestrial Reference Frame (ITRF)
- Geocentric Celestial Reference Frame (GCRF) using IAU-2006 reduction
- True-Equinox Mean Equator (TEME) frame used in SGP4 propagation of TLEs
- Celestial Intermediate Reference Frame (CIRF)
- Terrestrial Intermediate Reference Frame (TIRF)
- Terrestrial Geodetic frame (latitude, longitude)
- Two-Line Element Set (TLE) processing, and propagation with SGP4
- Keplerian orbit propagation
- JPL planetary ephemerides
- High-order gravity models
- High-precision, high-speed numerical satellite orbit propagation with high-order (9/8) efficient Runga-Kutta solvers, ability to solve for state transition matrix for covariance propagation, and inclusion following forces:
- High-order Earth gravity with multiple models
- Solar gravity
- Lunar gravity
- Dra, with NRL MISE-00 density model and inclusion of space weather data
- Radiation pressure
§Language Bindings
- Standalone Rust library available on on https://crates.io
- Python bindings availble on PyPi
§Getting started
The library relies on the use of several external data sources for many of the calculations. These include:
- JPL Planetary Ephemerides
- Earth Gravity Models
- Space Weather Data and Earth orientation parameters
- Coefficients for Earth-fixed to Inertial coordinate transforms
These data sources must be downloaded and placed in a directory that is accessible to the library. The library provides a utility function to download these files from the internet.
The data files need only be downloaded once. However, the space weather data file (necessary for density calculations that impact satellite drag) and the Earth Orientation Parameters (necessary for accurate inertial-to-earth frame transformations) are updated daily and should be refreshed as necessary.
§Downloading the data files
// Print the directoyr where data will be stored
println!("Data directory: {:?}", satkit::utils::datadir());
// Update the data files (download those that are missing; refresh those that are out of date)
// This will always download the most-recent space weather data and Earth Orientation Parameters
// Other data files will be skipped if they are already present
satkit::utils::update_datafiles(None, false);
Re-exports§
Modules§
- Universal constants
- Earth orientation parameters (polar motion, delta-UT1, lenth of day)
- Zonal gravity model for Earth gravity
- Conversion between coordinate frames
- Internation Terrestrial Reference Frame coordinates & transformations to Geodetic, East-North-Up, North-East-Down
- Solar system body ephemerides, as published by the Jet Propulsion Laboratory (JPL)
- Keplerian orbital elements Keplerian orbital elements module
- Low-precision ephemeris for sun and moon
- NRL-MISE00 Density model
- High-Precision Orbit Propagation via Runga-Kutta 9(8) Integration
- SGP-4 Orbit Propagator
- Space Weather
- Two-line Element Set
- Utility functions
Structs§
- Structure representing a duration in time This can be used to add or subtract times from an
Instant
object. - A module for handling time and date conversions. Time is stored natively as the number of microseconds since the Unix epoch (1970-01-01 00:00:00 UTC) with leap seconds accounted for.
Enums§
- Solar system bodies
- Time Scales
- Day of week