What’s new

New in poliastro 0.5.0

This is a new major release, focused on expanding the initial orbit determination capabilities and solving some infrastructure challenges.

New features:

  • Izzo’s algorithm for the Lambert problem: Thanks to this algorithm multirevolution solutions are also returned. The old algorithm is kept on a separate module.

Other highlights:

  • Documentation on Read the Docs: You can now browse previous releases of the package and easily switch between released and development versions.
  • Mailing list: poliastro now has a mailing list hosted on groups.io. Come and join!
  • Clarified scope: poliastro will now be focused on interplanetary applications, leaving other features to the new python-astrodynamics project.

Bugs fixed:

  • Issue #110: Bug when plotting State with non canonical units

Backward incompatible changes:

  • Drop Legacy Python: poliastro 0.5.x and later will support only Python 3.x. We recommend our potential users to create dedicated virtual environments using conda or virtualenv or to contact the developers to fund Python 2 support.
  • Change ``lambert`` function API: The functions for solving Lambert’s problem are now _generators_, even in the single revolution case. Check out the User Guide for specific examples.
  • Creation of orbits from classical elements: poliastro has reverted the switch to the semilatus rectum \(p\) instead of the semimajor axis \(a\) made in 0.4.0, so \(a\) must be used again. This change is definitive.

New in poliastro 0.4.2

Fixed packaging problems.

New in poliastro 0.4.0

This is a new major release, focused on improving stability and code quality. New angle conversion and modified equinoctial elements functions were added and an important backwards incompatible change was introduced related to classical orbital elements.

New features:

  • Angle conversion functions: Finally brought back from poliastro 0.1, new functions were added to convert between true \(\nu\), eccentric \(E\) and mean \(M\) anomaly, see #45.
  • Equinoctial elements: Now it’s possible to convert between classical and equinoctial elements, as well as from/to position and velocity vectors, see #61.
  • Numerical propagation: A new propagator using SciPy Dormand & Prince 8(5,3) integrator was added, see #64.

Other highlights:

  • MIT license: The project has been relicensed to a more popular license. poliastro remains commercial-friendly through a permissive, OSI-approved license.
  • Python 3.5 and NumPy 1.10 compatibility. poliastro retains compatibility with legacy Python (Python 2) and NumPy 1.9. Next version will be Python 3 only.

Bugs fixed:

  • Issue #62: Conversion between coe and rv is not transitive
  • Issue #69: Incorrect plotting of certain closed orbits

Backward incompatible changes:

  • Creation of orbits from classical elements: poliastro has switched to the semilatus rectum \(p\) instead of the semimajor axis \(a\) to define State objects, and the function has been renamed to from_classical(). Please update your programs accordingly.
  • Removed specific angular momentum \(h\) property to avoid a name clash with the fourth modified equinoctial element, use norm(ss.h_vec) instead.

New in poliastro 0.3.1

This is a new minor release, with some bug fixes backported from the main development branch.

Bugs fixed:

  • Fixed installation problem in Python 2.
  • Issue #49: Fix velocity units in ephem.
  • Issue #50: Fixed ZeroDivisionError when propagating with time zero.

New in poliastro 0.3.0

This is a new major release, focused on switching to a pure Python codebase. Lambert problem solving and ephemerides computation came back, and a couple of bugs were fixed.

New features:

  • Pure Python codebase: Forget about Fortran linking problems and nightmares on Windows, because now poliastro is a pure Python package. A new dependency, numba, was introduced to accelerate the algorithms, but poliastro will use it only if it is installed.
  • Lambert problem solving: New module iod to determine an orbit given two position vectors and the time of flight.
  • PR #42: Planetary ephemerides computation: New module ephem with functions to deal with SPK files and compute position and velocity vectors of the planets.
  • PR #38: New method parabolic() to create parabolic orbits.
  • New conda package: visit poliastro binstar channel!
  • New organization and logo.

Bugs fixed:

  • Issue #19: Fixed plotting region for parabolic orbits.
  • Issue #37: Fixed creation of parabolic orbits.

New in poliastro 0.2.1

This is a bugfix release, no new features were introduced since 0.2.0.

  • Fixed #35 (failing tests with recent astropy versions), thanks to Sam Dupree for the bug report.
  • Updated for recent Sphinx versions.

New in poliastro 0.2

  • Totally refactored code to provide a more pythonic API (see PR #14 and wiki for further information) heavily inspired by Plyades by Helge Eichhorn.
    • Mandatory use of physical units through astropy.units.
    • Object-oriented approach: State and Maneuver classes.
    • Vector quantities: results not only have magnitude now, but also direction (see for example maneuvers).
  • Easy plotting of orbits in two dimensions using matplotlib.
  • Module example with sample data to start testing the library.

These features were removed temporarily not to block the release and will see the light again in poliastro 0.3:

  • Conversion between anomalies.
  • Ephemerides calculations, will look into Skyfield and the JPL ephemerides prepared by Brandon Rhodes (see issue #4).
  • Lambert problem solving.
  • Perturbation analysis.