poliastro - Astrodynamics in Python

poliastro is an open source collection of Python subroutines useful in Astrodynamics and Orbital Mechanics. It tries to provide a simple and intuitive API and handles physical quantities with units. Some of its awesome features are:

  • Orbit propagation (Keplerian orbits)
  • Conversion between position and velocity vectors and classical orbital elements
  • Hohmann and bielliptic maneuvers computation
  • Trajectory plotting
  • Initial orbit determination (Lambert problem)
  • Planetary ephemerides (SPICE kernels)

And more to come!

Molniya orbit

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.

poliastro works on both Python 2 and 3 and is released under the MIT license, hence allowing commercial use of the library.

from poliastro.examples import molniya
from poliastro.plotting import plot



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.