Skip to main content

Satellite Orbital Dynamics Toolkit

Project description

Satellite Toolkit with Rust

An accurate, high-performance satellite orbital kinematics toolkit, written in Rust with a sensible interface.
Also includes python bindings for all functions via via pyo3

Github

Build Passing? Wheel Passing? GitHub License

Crates.io

Crates.io Version Crates.io Downloads (recent)

PyPi

PyPI - Version PyPI - Python Version PyPI - Implementation PyPI - Status

Read the Docs

Language Bindings

  • Native Rust bindings
  • Python bindings for compiled rust code ... speed of Rust with convenience of Python
    Install with pip install satkit
    PyPi includes binary packages for windows, macos (Intel & ARM), and linux. Python documentation is at: https://satellite-toolkit.readthedocs.io/latest/

Features

  • High-precision coordinate transforms between:
    • International Terrestrial Reference Frame (ITRF)
    • Geocentric Celestial Reference Frame (GCRF) using IAU-2000 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)
  • Geodesic distances
  • SGP4, and Keplerian orbit propagation
  • JPL high-precision planetary ephemerides
  • High-order gravity models
  • High-precision, high-speed numerical satellite orbit propagation with high-order efficient Runga-Kutta solvers, ability to solve for state transition matrix, and inclusion following forces:
    • High-order Earth gravity with multiple models
    • Solar gravity
    • Lunar gravity
    • Drag (NRL MISE-00 density model)
    • Radiation pressure

ODE Solvers

The high-precision numerical satellite orbit propagation makes use of standard Runga-Kutta methods for integration of ordinary differential equations. The ODE solver is included as part of the library.

The methods use Runga-Kutta pairs for ODE integration and error estimation generated by Jim Verner: https://www.sfu.ca/~jverner/

References, Models, and External Software.

The equations and many of the unit tests underlying this work are drawn from the following sources:

This code makes reference to and relies on models generated by the following:

Verification

The code includes rust test modules and python test modules for verification of nearly calculations, including but not limited to:

  • JPL Ephemeris - Via JPL-provided test vectors for Chebychev polynomial calculation
  • SGP4 - Via SGP4 test vectors provided with original C++ distribution

Author

Steven Michael (ssmichael@gmail.com)

Please reach out of you find errors in code or calculations, are interested in contributing to this repository, or have suggestions for improvements to the API.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

satkit-0.2.8.tar.gz (170.9 kB view hashes)

Uploaded Source

Built Distributions

satkit-0.2.8-cp312-cp312-win_amd64.whl (1.5 MB view hashes)

Uploaded CPython 3.12 Windows x86-64

satkit-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

satkit-0.2.8-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

satkit-0.2.8-cp312-cp312-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

satkit-0.2.8-cp311-cp311-win_amd64.whl (1.5 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

satkit-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

satkit-0.2.8-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

satkit-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

satkit-0.2.8-cp310-cp310-win_amd64.whl (1.5 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

satkit-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

satkit-0.2.8-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

satkit-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

satkit-0.2.8-cp39-cp39-win_amd64.whl (1.5 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

satkit-0.2.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

satkit-0.2.8-cp39-cp39-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

satkit-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

satkit-0.2.8-cp38-cp38-win_amd64.whl (1.5 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

satkit-0.2.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

satkit-0.2.8-cp38-cp38-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

satkit-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page