ostk.astrodynamics.trajectory.Segment

class Segment

Bases: pybind11_object

A Segment that can be solved provided an initial State and termination Event Condition.

Methods

coast

Create a coast segment.

get_dynamics

Get the dynamics.

get_event_condition

Get the event condition.

get_name

Get the name of the segment.

get_numerical_solver

Get the numerical solver.

get_type

Get the type of the segment.

maneuver

Create a maneuver segment.

solve

Solve the segment.

class Solution(self: ostk.astrodynamics.trajectory.Segment.Solution, name: ostk.core.type.String, dynamics: list[ostk::astrodynamics::Dynamics], states: list[ostk.astrodynamics.trajectory.State], condition_is_satisfied: bool, segment_type: ostk::astrodynamics::trajectory::Segment::Type)

Bases: pybind11_object

The Solution object returned when a Segment is solved.

Construct a Segment Solution.

Parameters:
  • name (str) -- The name of the segment.

  • dynamics (list[Dynamics]) -- The dynamics.

  • states (list[State]) -- The states.

  • condition_is_satisfied (bool) -- Whether the event condition is satisfied.

  • segment_type (Type) -- The type of the segment.

access_end_instant(
self: ostk.astrodynamics.trajectory.Segment.Solution,
) ostk.physics.time.Instant

Get the instant at which the segment ends.

Returns:

The instant at which the segment ends.

Return type:

Instant

access_start_instant(
self: ostk.astrodynamics.trajectory.Segment.Solution,
) ostk.physics.time.Instant

Get the instant at which the segment starts.

Returns:

The instant at which the segment starts.

Return type:

Instant

calculate_states_at(
self: ostk.astrodynamics.trajectory.Segment.Solution,
instants: list[ostk.physics.time.Instant],
numerical_solver: ostk.astrodynamics.trajectory.state.NumericalSolver,
) list[ostk.astrodynamics.trajectory.State]

Calculate the states in this segment's solution at the given instants.

Parameters:
  • instants (list[Instant]) -- The instants at which the states will be calculated.

  • numerical_solver (NumericalSolver) -- The numerical solver used to calculate the states.

Returns:

The states at the provided instants.

Return type:

list[State]

compute_delta_mass(
self: ostk.astrodynamics.trajectory.Segment.Solution,
) ostk.physics.unit.Mass

Compute the delta mass.

Returns:

The delta mass.

Return type:

Mass

compute_delta_v(
self: ostk.astrodynamics.trajectory.Segment.Solution,
specific_impulse: ostk.core.type.Real,
) ostk.core.type.Real

Compute the delta V.

Parameters:

specific_impulse (float) -- The specific impulse.

Returns:

The delta V (m/s).

Return type:

float

property condition_is_satisfied

Whether the event condition is satisfied.

Type:

bool

property dynamics

The dynamics.

Type:

Dynamics

extract_maneuvers(
self: ostk.astrodynamics.trajectory.Segment.Solution,
frame: ostk.physics.coordinate.Frame,
) list[ostk::astrodynamics::flight::Maneuver]

Extract maneuvers from the (maneuvering) segment.

Returns:

The list of maneuvers.

Return type:

list[Maneuver]

get_all_dynamics_contributions(
self: ostk.astrodynamics.trajectory.Segment.Solution,
frame: ostk.physics.coordinate.Frame,
) dict[ostk::astrodynamics::Dynamics, numpy.ndarray[numpy.float64[m, n]]]

Compute the contributions of all segment's dynamics in the provided frame for all states assocated with the segment.

Parameters:

frame (Frame) -- The frame.

Returns:

The list of matrices with individual dynamics contributions.

Return type:

dict[Dynamics, np.ndarray]

get_dynamics_acceleration_contribution(
self: ostk.astrodynamics.trajectory.Segment.Solution,
dynamics: ostk::astrodynamics::Dynamics,
frame: ostk.physics.coordinate.Frame,
) numpy.ndarray[numpy.float64[m, n]]

Compute the contribution of the provided dynamics to the acceleration in the provided frame for all states associated with the segment.

Parameters:
  • dynamics (Dynamics) -- The dynamics.

  • frame (Frame) -- The frame.

Returns:

The matrix of dynamics contributions to acceleration.

Return type:

np.ndarray

get_dynamics_contribution(
self: ostk.astrodynamics.trajectory.Segment.Solution,
dynamics: ostk::astrodynamics::Dynamics,
frame: ostk.physics.coordinate.Frame,
coordinate_subsets: list[ostk.astrodynamics.trajectory.state.CoordinateSubset] = [],
) numpy.ndarray[numpy.float64[m, n]]

Compute the contribution of the provided dynamics in the provided frame for all states associated with the segment.

Parameters:
  • dynamics (Dynamics) -- The dynamics.

  • frame (Frame) -- The frame.

  • coordinate_subsets (list[CoordinateSubset], optional) -- A subset of the dynamics writing coordinate subsets to consider.

Returns:

The matrix of dynamics contributions for the selected coordinate subsets of the dynamics.

Return type:

MatrixXd

get_final_mass(
self: ostk.astrodynamics.trajectory.Segment.Solution,
) ostk.physics.unit.Mass

Get the final mass.

Returns:

The final mass.

Return type:

Mass

get_initial_mass(
self: ostk.astrodynamics.trajectory.Segment.Solution,
) ostk.physics.unit.Mass

Get the initial mass.

Returns:

The initial mass.

Return type:

Mass

get_interval(
self: ostk.astrodynamics.trajectory.Segment.Solution,
) ostk.physics.time.Interval

Get the time interval of the solution.

Returns:

The interval.

Return type:

Interval

get_propagation_duration(
self: ostk.astrodynamics.trajectory.Segment.Solution,
) ostk.physics.time.Duration

Get the propagation duration.

Returns:

The propagation duration.

Return type:

Duration

property name

The name of the segment.

Type:

str

property segment_type

The type of the segment.

Type:

Type

property states

The states.

Type:

list[State]

class Type(self: ostk.astrodynamics.trajectory.Segment.Type, value: int)

Bases: pybind11_object

Segment type.

Members:

Coast : Coast

Maneuver : Maneuver

property name
static coast(name: ostk.core.type.String, event_condition: ostk::astrodynamics::EventCondition, dynamics: list[ostk::astrodynamics::Dynamics], numerical_solver: ostk.astrodynamics.trajectory.state.NumericalSolver) ostk.astrodynamics.trajectory.Segment

Create a coast segment.

Parameters:
Returns:

The coast segment.

Return type:

Segment

get_dynamics(
self: ostk.astrodynamics.trajectory.Segment,
) list[ostk::astrodynamics::Dynamics]

Get the dynamics.

Returns:

The dynamics.

Return type:

Dynamics

get_event_condition(
self: ostk.astrodynamics.trajectory.Segment,
) ostk::astrodynamics::EventCondition

Get the event condition.

Returns:

The event condition.

Return type:

EventCondition

get_name(self: ostk.astrodynamics.trajectory.Segment) ostk.core.type.String

Get the name of the segment.

Returns:

The name of the segment.

Return type:

str

get_numerical_solver(
self: ostk.astrodynamics.trajectory.Segment,
) ostk.astrodynamics.trajectory.state.NumericalSolver

Get the numerical solver.

Returns:

The numerical solver.

Return type:

NumericalSolver

get_type(
self: ostk.astrodynamics.trajectory.Segment,
) ostk.astrodynamics.trajectory.Segment.Type

Get the type of the segment.

Returns:

The type of the segment.

Return type:

Type

static maneuver(name: ostk.core.type.String, event_condition: ostk::astrodynamics::EventCondition, thruster_dynamics: ostk::astrodynamics::dynamics::Thruster, dynamics: list[ostk::astrodynamics::Dynamics], numerical_solver: ostk.astrodynamics.trajectory.state.NumericalSolver) ostk.astrodynamics.trajectory.Segment

Create a maneuver segment.

Parameters:
  • name (str) -- The name of the segment.

  • event_condition (EventCondition) -- The event condition.

  • thruster_dynamics (ThrusterDynamics) -- The thruster dynamics.

  • dynamics (Dynamics) -- The dynamics.

  • numerical_solver (NumericalSolver) -- The numerical solver.

Returns:

The maneuver segment.

Return type:

Segment

solve(
self: ostk.astrodynamics.trajectory.Segment,
state: ostk.astrodynamics.trajectory.State,
maximum_propagation_duration: ostk.physics.time.Duration = Duration.days(30.0),
) ostk.astrodynamics.trajectory.Segment.Solution

Solve the segment.

Parameters:
  • state (State) -- The state.

  • maximum_propagation_duration (Duration, optional) -- The maximum propagation duration.

Returns:

The segment solution.

Return type:

SegmentSolution