Skip to main content

Differentiable SGP4 prototype

Project description

$\partial\textrm{SGP4}$

build codecov Anaconda-Server Badge Anaconda-Server Badge

Differentiable SGP4.


Logo

Differentiable SGP4
Explore the docs »

Report bug · Request feature

Info

orbits

This repository contains the code discussed in this paper.

$\partial \textrm{SGP4}$ is a differentiable version of SGP4 implemented using PyTorch. By making SGP4 differentiable, $\partial \textrm{SGP4}$ facilitates various space-related applications, including spacecraft orbit determination, covariance transformation, state transition matrix computation, and covariance propagation. Additionally, $\partial \textrm{SGP4}$'s PyTorch implementation allows for parallel orbital propagation across batches of Two-Line Element Sets (TLEs), leveraging the computational power of CPUs, GPUs, and advanced hardware for distributed prediction of satellite positions at future times. Furthermore, $\partial \textrm{SGP4}$'s differentiability enables integration with modern machine learning techniques. Thus, we propose a novel orbital propagation paradigm, $\textrm{ML}-\partial \textrm{SGP4}$, where neural networks are integrated into the orbital propagator. Through stochastic gradient descent, this combined model's inputs, outputs, and parameters can be iteratively refined, surpassing SGP4's precision while maintaining computational speed. This empowers satellite operators and researchers to train the model using high-precision simulated or observed data, advancing orbital prediction capabilities compared to the standard SGP4.

Goals

  • Differentiable version of SGP4 (implemented in PyTorch)
  • Hybrid SGP4 and machine learning propagation: input/output/parameters corrections of SGP4 from accurate simulated or observed data are learned
  • Parallel TLE propagation
  • Use of differentiable SGP4 on several spaceflight mechanics problems (state transition matrix computation, covariance transformation, and propagation, orbit determination, ML hybrid orbit propagation, etc.)

How to cite

If you use dsgp4, we would be grateful if you could star the repository and/or cite our work. $\partial \textrm{SGP4}$ and its applications for ML hybrid propagation and more, can be found in our publication:

@article{acciarini2024closing,
title = {Closing the gap between SGP4 and high-precision propagation via differentiable programming},
journal = {Acta Astronautica},
volume = {226},
pages = {694-701},
year = {2025},
issn = {0094-5765},
doi = {https://doi.org/10.1016/j.actaastro.2024.10.063},
url = {https://www.sciencedirect.com/science/article/pii/S0094576524006374},
author = {Giacomo Acciarini and Atılım Güneş Baydin and Dario Izzo},
keywords = {SGP4, Orbital propagation, Differentiable programming, Machine learning, Spacecraft collision avoidance, Kessler, Kessler syndrome, AI for space, Applied machine learning for space},
}

Installation

Via pip:

pip install dsgp4

Via conda:

conda install conda-forge::dsgp4

or mamba:

mamba install dsgp4

Local installation:

git clone https://github.com/esa/dSGP4.git
cd dSGP4
pip install -e .

Documentation and examples

To get started, follow the examples in the documentation. You will find tutorials with basic and more advanced functionalities and applications.

Authors:

The project originated after the work of the authors at the University of Oxford AI4Science Lab.

Acknowledgements:

We would like to thank Dr. T.S. Kelso for his support and useful pointers on how to correctly validate the code with respect to the official release by Space-Track.

License:

$\partial\textrm{SGP4}$ is distributed under the GNU General Public License version 3. Get in touch with the authors for other licensing options.

Contact:

  • giacomo.acciarini@gmail.com

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

dsgp4-1.1.5.tar.gz (225.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsgp4-1.1.5-py3-none-any.whl (44.6 kB view details)

Uploaded Python 3

File details

Details for the file dsgp4-1.1.5.tar.gz.

File metadata

  • Download URL: dsgp4-1.1.5.tar.gz
  • Upload date:
  • Size: 225.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for dsgp4-1.1.5.tar.gz
Algorithm Hash digest
SHA256 8a7ca0799a1acc4201d68deb62c0ca889b6f0555f7e49eb8eab3fd559b46e315
MD5 81e83636fde3cff219838ad24aa9f8bd
BLAKE2b-256 0a8c193abfd7d70be64d8e31274c6930d6e7c0dba41cee1474c29af84e2b5c5a

See more details on using hashes here.

File details

Details for the file dsgp4-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: dsgp4-1.1.5-py3-none-any.whl
  • Upload date:
  • Size: 44.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for dsgp4-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ecc6fb147fc30fe3f2be434d0eccdebfe4d1d7985357ef08424b3a8266003713
MD5 5e74b97678584b57fe5eef863e27e7c4
BLAKE2b-256 78244f37976fcae45b532bb4002f4200e6aa6fb26855b3f67bc2426fa1e9e268

See more details on using hashes here.

Supported by

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