GithubHelp home page GithubHelp logo

dsgp4's Introduction

$\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},
  author={Acciarini, Giacomo and Baydin, At{\i}l{\i}m G{\"u}ne{\c{s}} and Izzo, Dario},
  journal={arXiv preprint arXiv:2402.04830},
  year={2024}
}

Installation

Via pip:

pip install dsgp4

Via conda:

conda install conda-forge::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 OX4AI 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:

dsgp4's People

Contributors

gbaydin avatar rex2000viola avatar rowland-208 avatar sceki avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.