ostk.astrodynamics.trajectory.Orbit

class Orbit(*args, **kwargs)

Bases: Trajectory

Gravitationally curved trajectory of an object.

Overloaded function.

  1. __init__(self: ostk.astrodynamics.trajectory.Orbit, model: ostk::astrodynamics::trajectory::orbit::Model, celestial_object: ostk.physics.environment.object.Celestial) -> None

    Constructs an Orbit object.

    Args:

    model (orbit.Model): The orbit model. celestial_object (Celestial): The celestial object.

  2. __init__(self: ostk.astrodynamics.trajectory.Orbit, states: list[ostk.astrodynamics.trajectory.State], initial_revolution_number: ostk.core.type.Integer, celestial_object: ostk.physics.environment.object.Celestial) -> None

    Constructs an Orbit object.

    Args:

    states (Array<State>): The states. initial_revolution_number (Integer): The initial revolution number. celestial_object (Celestial): The celestial object.

Methods

access_celestial_object

Access the celestial object.

access_kepler_model

Access the Kepler orbit model.

access_model

Access the orbit model.

access_propagated_model

Access the propagated orbit model.

access_sgp4_model

Access the SGP4 orbit model.

access_tabulated_model

Access the tabulated orbit model.

circular

Create a circular Orbit object.

circular_equatorial

Create a circular equatorial Orbit object.

compute_passes

Compute passes from a set of states.

compute_passes_with_model

Compute passes with the given model for the provided interval.

equatorial

Create an equatorial Orbit object.

frozen

Create a frozen Orbit object.

geo_synchronous

Create a geosynchronous Orbit object.

get_orbital_frame

Get the orbital frame.

get_pass_at

Get the pass at a given instant.

get_pass_with_revolution_number

Get the pass with a given revolution number.

get_passes_within_interval

Get the passes within a given interval.

get_revolution_number_at

Get the revolution number at a given instant.

get_state_at

Get the state of the trajectory at a given instant.

get_states_at

Get the states of the trajectory at a given set of instants.

ground_strip

Overloaded function.

ground_strip_geodetic_nadir

Create a Trajectory object representing a ground strip that follows the geodetic nadir of the provided orbit.

is_defined

Check if the Orbit object is defined.

position

Create a Trajectory object representing a position.

sun_synchronous

Create a sun-synchronous Orbit object.

undefined

Get an undefined Orbit object.

class FrameType(self: ostk.astrodynamics.trajectory.Orbit.FrameType, value: int)

Bases: pybind11_object

The local orbital frame type.

Members:

Undefined : Undefined

NED : North-East-Down

LVLH : Local Vertical-Local Horizontal

LVLHGD : Local Vertical-Local Horizontal GeoDetic

LVLHGDGT : Local Vertical-Local Horizontal GeoDetic Ground Track

VVLH : Vertical-Local Horizontal

QSW : Quasi-Satellite West

TNW : Tangent-Normal-Wideband

VNC : Velocity-Normal-Conormal

property name
access_celestial_object(
self: ostk.astrodynamics.trajectory.Orbit,
) ostk.physics.environment.object.Celestial

Access the celestial object.

Returns:

The celestial object.

Return type:

Celestial

access_kepler_model(
self: ostk.astrodynamics.trajectory.Orbit,
) ostk::astrodynamics::trajectory::orbit::model::Kepler

Access the Kepler orbit model.

Returns:

The Kepler orbit model.

Return type:

Kepler

access_model(
self: ostk.astrodynamics.trajectory.Orbit,
) ostk::astrodynamics::trajectory::Model

Access the orbit model.

Returns:

The orbit model.

Return type:

orbit.Model

access_propagated_model(
self: ostk.astrodynamics.trajectory.Orbit,
) ostk::astrodynamics::trajectory::orbit::model::Propagated

Access the propagated orbit model.

Returns:

The propagated orbit model.

Return type:

Propagated

access_sgp4_model(
self: ostk.astrodynamics.trajectory.Orbit,
) ostk::astrodynamics::trajectory::orbit::model::SGP4

Access the SGP4 orbit model.

Returns:

The SGP4 orbit model.

Return type:

SGP4

access_tabulated_model(
self: ostk.astrodynamics.trajectory.Orbit,
) ostk::astrodynamics::trajectory::orbit::model::Tabulated

Access the tabulated orbit model.

Returns:

The tabulated orbit model.

Return type:

Tabulated

static circular(
epoch: ostk.physics.time.Instant,
altitude: ostk.physics.unit.Length,
inclination: ostk.physics.unit.Angle,
celestial_object: ostk.physics.environment.object.Celestial,
) ostk.astrodynamics.trajectory.Orbit

Create a circular Orbit object.

Parameters:
  • epoch (Instant) -- The epoch.

  • altitude (Length) -- The altitude (wrt. equatorial radius).

  • inclination (Angle) -- The inclination.

  • celestial_object (Celestial) -- The celestial object.

Returns:

The circular Orbit object.

Return type:

Orbit

static circular_equatorial(
epoch: ostk.physics.time.Instant,
altitude: ostk.physics.unit.Length,
celestial_object: ostk.physics.environment.object.Celestial,
) ostk.astrodynamics.trajectory.Orbit

Create a circular equatorial Orbit object.

Parameters:
  • epoch (Instant) -- The epoch.

  • altitude (Length) -- The altitude (wrt. equatorial radius).

  • celestial_object (Celestial) -- The celestial object.

Returns:

The circular equatorial Orbit object.

Return type:

Orbit

static compute_passes(
states: list[ostk.astrodynamics.trajectory.State],
initial_revolution_number: ostk.core.type.Integer,
) list[tuple[int, ostk::astrodynamics::trajectory::orbit::Pass]]

Compute passes from a set of states.

Parameters:
  • states (Array<State>) -- The states.

  • initial_revolution_number (Integer) -- The initial revolution number.

Returns:

List of index-pass pairs.

Return type:

list[tuple[int, Pass]]

static compute_passes_with_model(
model: ostk::astrodynamics::trajectory::orbit::Model,
start_instant: ostk.physics.time.Instant,
end_instant: ostk.physics.time.Instant,
initial_revolution_number: ostk.core.type.Integer,
) list[ostk::astrodynamics::trajectory::orbit::Pass]

Compute passes with the given model for the provided interval.

Parameters:
  • model (orbit.Model) -- The model.

  • start_instant (Instant) -- The start instant.

  • end_instant (Instant) -- The end instant.

  • initial_revolution_number (int) -- The initial revolution number.

Returns:

List of passes.

Return type:

list[Pass]

static equatorial(
epoch: ostk.physics.time.Instant,
apoapsis_altitude: ostk.physics.unit.Length,
periapsis_altitude: ostk.physics.unit.Length,
celestial_object: ostk.physics.environment.object.Celestial,
) ostk.astrodynamics.trajectory.Orbit

Create an equatorial Orbit object.

Parameters:
  • epoch (Instant) -- The epoch.

  • apoapsis_altitude (Length) -- The apoapsis altitude (wrt. equatorial radius).

  • periapsis_altitude (Length) -- The periapsis altitude (wrt. equatorial radius).

  • celestial_object (Celestial) -- The celestial object.

Returns:

The equatorial Orbit object.

Return type:

Orbit

static frozen(
epoch: ostk.physics.time.Instant,
altitude: ostk.physics.unit.Length,
celestial_object: ostk.physics.environment.object.Celestial,
eccentricity: ostk.core.type.Real = Real.undefined(),
inclination: ostk.physics.unit.Angle = Angle.undefined(),
raan: ostk.physics.unit.Angle = Angle.degrees(0.0),
aop: ostk.physics.unit.Angle = Angle.undefined(),
true_anomaly: ostk.physics.unit.Angle = Angle.degrees(0.0),
) ostk.astrodynamics.trajectory.Orbit

Create a frozen Orbit object.

The critical angles for inclination are 63.4349 degrees and 116.5651 degrees. The critical angles for AoP are 90.0 degrees and 270.0 degrees.

At a minimum, an epoch, altitude, and celestial body with a defined J2 and J3 must be provided. In this case, the inclination and AoP are set to critical angles, and the eccentricity is derived from inclination. RAAN and true anomaly default to zero degrees.

Additionally, the following combinations of inputs are supported: - AoP (inclination set to critical value, eccentricity derived) - AoP and eccentricity (inclination derived) - AoP and inclination, but at least one of them must be a critical value (eccentricity derived) - Inclination (AoP set to critical value, eccentricity derived) - Eccentricity (AoP set to critical value, inclination derived)

Note that inclination and eccentricity cannot both be provided.

RAAN and True Anomaly may be provided alongside any of these arguments, and will be passed through to the resulting Orbit as they do not impact the frozen orbit condition.

Parameters:
  • epoch (Instant) -- The epoch.

  • altitude (Length) -- The altitude (wrt. equatorial radius).

  • celestial_object (Celestial) -- The celestial object.

  • eccentricity (float) -- The eccentricity.

  • inclination (Angle) -- The inclination.

  • raan (Angle) -- The right ascension of the ascending node.

  • aop (Angle) -- The argument of periapsis.

  • true_anomaly (Angle) -- The true anomaly.

Returns:

The frozen Orbit object.

Return type:

Orbit

static geo_synchronous(
epoch: ostk.physics.time.Instant,
inclination: ostk.physics.unit.Angle,
longitude: ostk.physics.unit.Angle,
celestial_object: ostk.physics.environment.object.Celestial,
) ostk.astrodynamics.trajectory.Orbit

Create a geosynchronous Orbit object.

Parameters:
  • epoch (Instant) -- The epoch.

  • inclination (Angle) -- The inclination.

  • longitude (double) -- The longitude.

  • celestial_object (Celestial) -- The celestial object.

Returns:

The geosynchronous Orbit object.

Return type:

Orbit

get_orbital_frame(
self: ostk.astrodynamics.trajectory.Orbit,
frame_type: ostk.astrodynamics.trajectory.Orbit.FrameType,
) ostk.physics.coordinate.Frame

Get the orbital frame.

Parameters:

frame_type (Orbit::FrameType) -- The frame type.

Returns:

The orbital frame.

Return type:

Frame

get_pass_at(
self: ostk.astrodynamics.trajectory.Orbit,
instant: ostk.physics.time.Instant,
) ostk::astrodynamics::trajectory::orbit::Pass

Get the pass at a given instant.

Parameters:

instant (Instant) -- The instant.

Returns:

The pass.

Return type:

ostk::astrodynamics::trajectory::orbit::Pass

get_pass_with_revolution_number(
self: ostk.astrodynamics.trajectory.Orbit,
revolution_number: ostk.core.type.Integer,
step_duration: ostk.physics.time.Duration = Duration.minutes(10.0),
) ostk::astrodynamics::trajectory::orbit::Pass

Get the pass with a given revolution number.

Parameters:
  • revolution_number (int) -- The revolution number.

  • step_duration (Duration) -- The initial step duration used for the pass computation algorithm.

Returns:

The pass.

Return type:

Pass

get_passes_within_interval(
self: ostk.astrodynamics.trajectory.Orbit,
interval: ostk.physics.time.Interval,
) list[ostk::astrodynamics::trajectory::orbit::Pass]

Get the passes within a given interval.

Parameters:

interval (Interval) -- The interval.

Returns:

The passes.

Return type:

list[Pass]

get_revolution_number_at(
self: ostk.astrodynamics.trajectory.Orbit,
instant: ostk.physics.time.Instant,
) ostk.core.type.Integer

Get the revolution number at a given instant.

Parameters:

instant (Instant) -- The instant.

Returns:

The revolution number.

Return type:

int

get_state_at(
self: ostk.astrodynamics.Trajectory,
instant: ostk.physics.time.Instant,
) ostk::astrodynamics::trajectory::State

Get the state of the trajectory at a given instant.

Parameters:

instant (Instant) -- The instant.

Returns:

The state of the trajectory at the given instant.

Return type:

State

get_states_at(
self: ostk.astrodynamics.Trajectory,
instants: list[ostk.physics.time.Instant],
) list[ostk::astrodynamics::trajectory::State]

Get the states of the trajectory at a given set of instants. It can be more performant than looping calculate_state_at for multiple instants.

Parameters:

instants (list[Instant]) -- The instants.

Returns:

The states of the trajectory at the given instants.

Return type:

list[State]

static ground_strip(*args, **kwargs)

Overloaded function.

  1. ground_strip(start_lla: ostk.physics.coordinate.spherical.LLA, end_lla: ostk.physics.coordinate.spherical.LLA, ground_speed: ostk.physics.unit.Derived, start_instant: ostk.physics.time.Instant, celestial_object: ostk.physics.environment.object.Celestial = Earth.WGS84(), step_size: ostk.physics.time.Duration = Duration.Seconds(1.0)) -> ostk.astrodynamics.Trajectory

    Create a Trajectory object representing a ground strip. Computes the duration as the geodetic distance / ground speed. Instants are generated at a 1 second interval.

    Args:

    start_lla (LLA): The start LLA. end_lla (LLA): The end LLA. ground_speed (Derived): The ground speed. start_instant (Instant): The start instant. celestial_object (Celestial): The celestial object. Defaults to Earth.WGS84(). step_size (Duration): The step size. Defaults to 1 second.

    Returns:

    Trajectory: The Trajectory object representing the ground strip.

  2. ground_strip(start_lla: ostk.physics.coordinate.spherical.LLA, end_lla: ostk.physics.coordinate.spherical.LLA, instants: list[ostk.physics.time.Instant], celestial_object: ostk.physics.environment.object.Celestial = Earth.WGS84()) -> ostk.astrodynamics.Trajectory

    Create a Trajectory object representing a ground strip. This method computes the duration as the geodetic distance / ground speed.

    Args:

    start_lla (LLA): The start LLA. end_lla (LLA): The end LLA. instants (list[Instant]): The instants. celestial_object (Celestial): The celestial object. Defaults to Earth.WGS84().

    Returns:

    Trajectory: The Trajectory object representing the ground strip.

static ground_strip_geodetic_nadir(orbit: ostk::astrodynamics::trajectory::Orbit, instants: list[ostk.physics.time.Instant], celestial_object: ostk.physics.environment.object.Celestial = Earth.WGS84()) ostk.astrodynamics.Trajectory

Create a Trajectory object representing a ground strip that follows the geodetic nadir of the provided orbit.

Parameters:
  • orbit (Orbit) -- The orbit.

  • instants (list[Instant]) -- The instants.

  • celestial_object (Celestial) -- The celestial object. Defaults to Earth.WGS84().

Returns:

The Trajectory object representing the ground strip.

Return type:

Trajectory

is_defined(self: ostk.astrodynamics.trajectory.Orbit) bool

Check if the Orbit object is defined.

Returns:

True if the Orbit object is defined, False otherwise.

Return type:

bool

static position(
position: ostk.physics.coordinate.Position,
) ostk.astrodynamics.Trajectory

Create a Trajectory object representing a position.

Parameters:

position (Position) -- The position. Must be in the ITRF frame.

Returns:

The Trajectory object representing the position.

Return type:

Trajectory

static sun_synchronous(
epoch: ostk.physics.time.Instant,
altitude: ostk.physics.unit.Length,
local_time_at_descending_node: ostk.physics.time.Time,
celestial_object: ostk.physics.environment.object.Celestial,
argument_of_latitude: ostk.physics.unit.Angle = Angle.zero(),
) ostk.astrodynamics.trajectory.Orbit

Create a sun-synchronous Orbit object.

Parameters:
  • epoch (Instant) -- The epoch.

  • altitude (Length) -- The altitude (wrt. equatorial radius).

  • local_time_at_descending_node (Time) -- The local time at descending node.

  • celestial_object (Celestial) -- The celestial object.

  • argument_of_latitude (Angle) -- The argument of latitude.

Returns:

The sun-synchronous Orbit object.

Return type:

Orbit

static undefined() ostk.astrodynamics.trajectory.Orbit

Get an undefined Orbit object.

Returns:

The undefined Orbit object.

Return type:

Orbit