poliastro is an open source (MIT) collection of Python functions useful in Astrodynamics and Orbital Mechanics, focusing on interplanetary applications. It provides a simple and intuitive API and handles physical quantities with units.
View source code of poliastro!
Some of its awesome features are:
- Analytical and numerical orbit propagation
- Conversion between position and velocity vectors and classical orbital elements
- Coordinate frame transformations
- Hohmann and bielliptic maneuvers computation
- Trajectory plotting
- Initial orbit determination (Lambert problem)
- Planetary ephemerides (using SPICE kernels via Astropy)
- Computation of Near-Earth Objects (NEOs)
And more to come!
poliastro is developed by an open, international community. Release announcements and general discussion take place on our mailing list and chat.
Plot of a Molniya orbit around the Earth (\(a = 26600\,\mathrm{km}, e = 0.75, i = 63.4 \mathrm{{}^{\circ}} \)).
The source code, issue tracker and wiki are hosted on GitHub, and all contributions and feedback are more than welcome. You can test poliastro in your browser using binder, a cloud Jupyter notebook server:
See benchmarks for the performance analysis of poliastro.
poliastro works on recent versions of Python and is released under the MIT license, hence allowing commercial use of the library.
import matplotlib.pyplot as plt
plt.ion()
from poliastro.examples import molniya
from poliastro.plotting import plot
plot(molniya)
.. toctree:: :maxdepth: 2 about getting_started user_guide jupyter references api changelog
Note
Older versions of poliastro relied on some Fortran subroutines written by David A. Vallado for his book "Fundamentals of Astrodynamics and Applications" and available on the Internet as the companion software of the book. The author explicitly gave permission to redistribute these subroutines in this project under a permissive license.