Differentiable SGP4.
Differentiable SGP4
Explore the docs »
Report bug
·
Request feature
This repository contains the code discussed in this paper.
- 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.)
If you use dsgp4
, we would be grateful if you could star the repository and/or cite our work.
@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},
}
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 .
To get started, follow the examples in the documentation. You will find tutorials with basic and more advanced functionalities and applications.
The project originated after the work of the authors at the University of Oxford AI4Science Lab.
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.
giacomo.acciarini@gmail.com