orbital.maneuver

class orbital.maneuver.Maneuver(operations)

A Maneuver is a collection of operations, and class methods are provided to easily create maneuvers which ensure orbits are propagated to the correct position between impulse operations.

classmethod change_apocenter_by(delta)

Maneuver for changing apocenter.

classmethod change_inclination_by(delta)

Maneuver for changing inclination.

classmethod change_pericenter_by(delta)

Maneuver for changing pericenter.

classmethod hohmann_transfer_to_altitude(altitude)

Maneuver for a hohmann transfer to given altitude.

Initial orbit must be circular. Will raise apocenter from position at time of application.

classmethod hohmann_transfer_to_radius(radius)

Maneuver for a hohmann transfer to given radius.

Initial orbit must be circular. Will raise apocenter from position at time of application.

classmethod set_apocenter_altitude_to(apocenter_altitude)

Maneuver for setting apocenter altitude.

classmethod set_apocenter_radius_to(apocenter_radius)

Maneuver for setting apocenter radius.

classmethod set_inclination_to(inclination)

Maneuver for setting inclination.

classmethod set_pericenter_altitude_to(pericenter_altitude)

Maneuver for setting pericenter altitude.

classmethod set_pericenter_radius_to(pericenter_radius)

Maneuver for setting pericenter radius.

Operations

Note

The operations below are used to construct the user-friendly maneuvers, as created using the Maneuver class methods.

To construct maneuvers manually using operations, one must be careful. A SetApocenterRadiusTo operation can only be applied if the orbital position is at perigee, therefore it should be preceded by a PropagateAnomalyTo operation, with argument f=0.

class orbital.maneuver.ChangeApocenterBy(delta)

Operation for changing apocenter radius. At time of application, orbit position must be at pericenter.

class orbital.maneuver.ChangeInclinationBy(delta)

Operation for changing inclination. At time of application, orbit position must be at the ascending or descending node.

class orbital.maneuver.ChangePericenterBy(delta)

Operation for changing pericenter. At time of application, orbit position must be at apocenter.

class orbital.maneuver.Circularise(raise_pericenter=True)

Operation for circularising an orbit.

class orbital.maneuver.PropagateAnomalyBy(**kwargs)

Operation for propagating anomaly by a given amount.

One (and only one) of these parameters must be passed in:

Parameters:
  • M (float) – Mean anomaly
  • E (float) – Eccentric anomaly
  • f (float) – True anomaly
class orbital.maneuver.PropagateAnomalyTo(**kwargs)

Operation for propagating to time in future where anomaly is equal to value passed in.

One (and only one) of these parameters must be passed in:

Parameters:
  • M (float) – Mean anomaly
  • E (float) – Eccentric anomaly
  • f (float) – True anomaly
class orbital.maneuver.SetApocenterAltitudeTo(apocenter_altitude)

Operation for setting apocenter altitude. At time of application, orbit position must be at pericenter.

class orbital.maneuver.SetApocenterRadiusTo(apocenter_radius)

Operation for setting apocenter radius. At time of application, orbit position must be at pericenter.

class orbital.maneuver.SetInclinationTo(inclination)

Operation for setting inclination. At time of application, orbit position must be at the ascending or descending node.

class orbital.maneuver.SetPericenterAltitudeTo(pericenter_altitude)

Operation for setting pericenter altitude. At time of application, orbit position must be at apocenter.

class orbital.maneuver.SetPericenterHere

Operation for setting pericenter to current location (in preparation for a maneuver to an elliptical orbit. Initial orbit must be circular.

class orbital.maneuver.SetPericenterRadiusTo(pericenter_radius)

Operation for setting pericenter radius. At time of application, orbit position must be at apocenter.