What’s new

Unreleased

Highlights:

  • Bodies now have a parent. It is now possible to specify the attractor of a body.
  • Use Astropy for body ephemerides. Instead of downloading the SPK files ourselves, now we use Astropy builtin capabilities. This also allows the user to select a builtin ephemerides that does not require external downloads. See #131 for details.

Bugs fixed:

  • Issue #128: Missing ephemerides if no files on import time
  • Slightly incorrect ephemerides results due to improper time scale, see #131.

poliastro 0.6.0 - 2017-02-12

This major release was focused on refactoring some internal core parts and improving the propagation functionality.

Highlights:

  • Support Python 3.6. See #144.
  • Introduced “Orbit“ objects to replace State ones. The latter has been simplified, reducing some functionality, now their API has been moved to the former. See the User Guide and the examples for updated explanations. See #135.
  • Allow propagation functions to receive a callback. This paves the way for better plotting and storage of results. See #140.

poliastro 0.5.0 - 2016-03-06

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.

poliastro 0.4.2 - 2015-12-24

Fixed packaging problems.

poliastro 0.4.0 - 2015-12-13

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.

poliastro 0.3.1 - 2015-06-30

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.

poliastro 0.3.0 - 2015-05-09

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.

poliastro 0.2.1 - 2015-04-26

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.

poliastro 0.2 - 2014-08-16

  • 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.