orbital.elements

class orbital.elements.KeplerianElements(a=None, e=0, i=0, raan=0, arg_pe=0, M0=0, body=None, ref_epoch=<Time object: scale='utc' format='jyear_str' value=J2000.000>)

Defines an orbit using keplerian elements.

Parameters:
  • a – Semimajor axis [m]
  • e – Eccentricity [-]
  • i – Inclination [rad]
  • raan – Right ascension of ascending node (\(\Omega\)) [rad]
  • arg_pe – Argument of periapsis (\(\omega\)) [rad]
  • M0 – Mean anomaly at ref_epoch (\(M_{0}\)) [rad]
  • body (orbital.bodies.Body) – Reference body, e.g. earth
  • ref_epoch (astropy.time.Time) – Reference epoch
E

Eccentric anomaly [rad].

M

Mean anomaly [rad].

T

Period [s].

U

Radial direction unit vector.

UVW

Calculate U, V, and W vectors simultaneously.

In situations where all are required, this function may be faster but it exists for convenience.

V

Transversal in-flight direction unit vector.

W

Out-of-plane direction unit vector.

apply_maneuver(maneuver, iter=False, copy=False)

Apply maneuver to orbit.

Parameters:
  • maneuver (maneuver.Maneuver) – Maneuver
  • iter (bool) – Return an iterator.
  • copy (bool) – Each orbit yielded by the generator will be a copy.

If iter=True, the returned iterator is of each intermediate orbit and the next operation, as shown in this table:

Orbit Operation
Original orbit First operation
Orbit after first operation applied Second operation

The final orbit is not returned, as it is accessible after the method has completed.

If each orbit returned must not be altered, use copy=True

epoch

Current epoch calculated from time since ref_epoch.

f

True anomaly [rad].

classmethod from_state_vector(r, v, body, ref_epoch=<Time object: scale='utc' format='jyear_str' value=J2000.000>)

Create orbit from given state vector.

classmethod from_tle(line1, line2, body)

Create object by parsing TLE using SGP4.

n

Mean motion [rad/s].

propagate_anomaly_by(**kwargs)

Propagate to time in future by an amount equal to the anomaly passed in.

Parameters:
  • M – Mean anomaly [rad]
  • E – Eccentricity anomaly [rad]
  • f – True anomaly [rad]

Note

Only one parameter should be passed in.

propagate_anomaly_to(**kwargs)

Propagate to time in future where anomaly is equal to value passed in.

Parameters:
  • M – Mean anomaly [rad]
  • E – Eccentricity anomaly [rad]
  • f – True anomaly [rad]

This will propagate to a maximum of 1 orbit ahead.

Note

Only one parameter should be passed in.

r

Position vector (orbital.utilities.Position) [m].

t

Time since ref_epoch.

v

Velocity vector (orbital.utilities.Velocity) [m/s].

classmethod with_altitude(altitude, body, e=0, i=0, raan=0, arg_pe=0, M0=0, ref_epoch=<Time object: scale='utc' format='jyear_str' value=J2000.000>)

Initialise with orbit for a given altitude.

For eccentric orbits, this is the altitude at the reference anomaly, M0

classmethod with_apside_altitudes(alt1, alt2, i=0, raan=0, arg_pe=0, M0=0, body=None, ref_epoch=<Time object: scale='utc' format='jyear_str' value=J2000.000>)

Initialise orbit with given apside altitudes.

classmethod with_apside_radii(radius1, radius2, i=0, raan=0, arg_pe=0, M0=0, body=None, ref_epoch=<Time object: scale='utc' format='jyear_str' value=J2000.000>)

Initialise orbit with given apside radii.

classmethod with_period(period, body, e=0, i=0, raan=0, arg_pe=0, M0=0, ref_epoch=<Time object: scale='utc' format='jyear_str' value=J2000.000>)

Initialise orbit with a given period.