ostk.astrodynamics.flight.Profile

class Profile(
self: ostk.astrodynamics.flight.Profile,
model: ostk::astrodynamics::flight::profile::Model,
)

Bases: pybind11_object

Spacecraft Flight Profile.

Constructor.

Parameters:

model (Model) -- The profile model.

Methods

access_model

Access the profile model.

align_and_constrain

Generate a function that provides a quaternion that aligns to the alignment_target and constrains to the clocking_target for a given state.

construct_body_frame

Construct the body frame of the profile.

custom_pointing

Overloaded function.

get_axes_at

Get the axes of the profile at a given instant.

get_state_at

Get the state of the profile at a given instant.

get_states_at

Get the states of the profile at given instants.

inertial_pointing

Create an inertial pointing profile.

is_defined

Check if the profile is defined.

local_orbital_frame_pointing

Create a profile aligned with the provided local orbital frame type.

undefined

Create an undefined profile.

class Axis(self: ostk.astrodynamics.flight.Profile.Axis, value: int)

Bases: pybind11_object

The axis of the profile.

Members:

X : X axis

Y : Y axis

Z : Z axis

property name
class CustomTarget(*args, **kwargs)

Bases: Target

The custom target.

Overloaded function.

  1. __init__(self: ostk.astrodynamics.flight.Profile.CustomTarget, orientation_generator: Callable[[ostk.astrodynamics.trajectory.State], numpy.ndarray[numpy.float64[3, 1]]], direction: numpy.ndarray[numpy.float64[3, 1]]) -> None

    Constructor.

    Args:

    orientation_generator (Callable[np.ndarray, State]]): The orientation generator, accepts a state and returns a size 3 array of directions. direction (Vector3d): The direction.

  2. __init__(self: ostk.astrodynamics.flight.Profile.CustomTarget, orientation_generator: Callable[[ostk.astrodynamics.trajectory.State], numpy.ndarray[numpy.float64[3, 1]]], axis: ostk.astrodynamics.flight.Profile.Axis, anti_direction: bool = False) -> None

    Constructor from an axis.

    Args:

    orientation_generator (Callable[np.ndarray, State]]): The orientation generator, accepts a state and returns a size 3 array of directions. axis (Axis): The axis to convert to a direction vector. anti_direction (bool): If true, the direction is flipped. Defaults to False.

property direction

The direction of the target.

property orientation_generator

The orientation generator of the target.

property type

The type of the target.

class OrientationProfileTarget(*args, **kwargs)

Bases: Target

The alignment profile target.

Overloaded function.

  1. __init__(self: ostk.astrodynamics.flight.Profile.OrientationProfileTarget, orientation_profile: list[tuple[ostk.physics.time.Instant, numpy.ndarray[numpy.float64[3, 1]]]], direction: numpy.ndarray[numpy.float64[3, 1]], interpolator_type: ostk.mathematics.curve_fitting.Interpolator.Type = Interpolator.Type.BarycentricRational) -> None

    Constructor.

    Args:

    orientation_profile (list[Tuple[Instant, Vector3d]]): The orientation profile. direction (Vector3d): The direction. interpolator_type (Interpolator.Type, optional): The type of interpolator to use. Defaults to Barycentric Rational.

  2. __init__(self: ostk.astrodynamics.flight.Profile.OrientationProfileTarget, orientation_profile: list[tuple[ostk.physics.time.Instant, numpy.ndarray[numpy.float64[3, 1]]]], axis: ostk.astrodynamics.flight.Profile.Axis, anti_direction: bool = False, interpolator_type: ostk.mathematics.curve_fitting.Interpolator.Type = Interpolator.Type.BarycentricRational) -> None

    Constructor from an axis.

    Args:

    orientation_profile (list[Tuple[Instant, Vector3d]]): The orientation profile. axis (Axis): The axis to convert to a direction vector. anti_direction (bool): If true, the direction is flipped. Defaults to False. interpolator_type (Interpolator.Type, optional): The type of interpolator to use. Defaults to Barycentric Rational.

property direction

The direction of the target.

property orientation_profile

The orientation profile of the target.

property type

The type of the target.

class Target(*args, **kwargs)

Bases: pybind11_object

The target of the profile.

Overloaded function.

  1. __init__(self: ostk.astrodynamics.flight.Profile.Target, type: ostk.astrodynamics.flight.Profile.TargetType, direction: numpy.ndarray[numpy.float64[3, 1]]) -> None

    Constructor.

    Args:

    type (Profile.TargetType): The target type. direction (Vector3d): The direction.

  2. __init__(self: ostk.astrodynamics.flight.Profile.Target, type: ostk.astrodynamics.flight.Profile.TargetType, axis: ostk.astrodynamics.flight.Profile.Axis, anti_direction: bool = False) -> None

    Constructor.

    Args:

    type (Profile.TargetType): The target type. axis (Profile.Axis): The axis. anti_direction (bool): True if the direction is flipped, False otherwise. Defaults to False.

property direction

The direction of the target.

property type

The type of the target.

class TargetType(self: ostk.astrodynamics.flight.Profile.TargetType, value: int)

Bases: pybind11_object

The target type of the profile.

Members:

GeocentricNadir : Geocentric nadir

GeodeticNadir : Geodetic nadir

TargetPosition : Target position

TargetVelocity : Target velocity

TargetSlidingGroundVelocity : Target sliding ground velocity

Sun : Sun

Moon : Moon

VelocityECI : Velocity in ECI

OrbitalMomentum : Orbital momentum

OrientationProfile : Orientation profile

Custom : Custom

property name
class TrajectoryTarget

Bases: Target

The trajectory target.

property direction

The direction of the target.

static target_position(*args, **kwargs)

Overloaded function.

  1. target_position(trajectory: ostk.astrodynamics.Trajectory, direction: numpy.ndarray[numpy.float64[3, 1]]) -> ostk.astrodynamics.flight.Profile.TrajectoryTarget

    Create a target, which produces a vector pointing from the observer to the target position.

  2. target_position(trajectory: ostk.astrodynamics.Trajectory, axis: ostk.astrodynamics.flight.Profile.Axis, anti_direction: bool = False) -> ostk.astrodynamics.flight.Profile.TrajectoryTarget

    Create a target, which produces a vector pointing from the observer to the target position.

    Args:

    trajectory (Trajectory): The trajectory. axis (Axis): The axis to convert to a direction vector. anti_direction (bool): If true, the direction is flipped. Defaults to False.

static target_sliding_ground_velocity(*args, **kwargs)

Overloaded function.

  1. target_sliding_ground_velocity(trajectory: ostk.astrodynamics.Trajectory, direction: numpy.ndarray[numpy.float64[3, 1]]) -> ostk.astrodynamics.flight.Profile.TrajectoryTarget

    Create a target, which produces a vector pointing along the ground velocity vector (aka the scan direction of the point sliding across the ground). This will compensate for the rotation of the referenced celestial body.

  2. target_sliding_ground_velocity(trajectory: ostk.astrodynamics.Trajectory, axis: ostk.astrodynamics.flight.Profile.Axis, anti_direction: bool = False) -> ostk.astrodynamics.flight.Profile.TrajectoryTarget

    Create a target, which produces a vector pointing along the ground velocity vector (aka the scan direction of the point sliding across the ground). This will compensate for the rotation of the referenced celestial body.

    Args:

    trajectory (Trajectory): The trajectory. axis (Axis): The axis to convert to a direction vector. anti_direction (bool): If true, the direction is flipped. Defaults to False.

static target_velocity(*args, **kwargs)

Overloaded function.

  1. target_velocity(trajectory: ostk.astrodynamics.Trajectory, direction: numpy.ndarray[numpy.float64[3, 1]]) -> ostk.astrodynamics.flight.Profile.TrajectoryTarget

    Create a target, which produces a vector pointing along the scan direction.

  2. target_velocity(trajectory: ostk.astrodynamics.Trajectory, axis: ostk.astrodynamics.flight.Profile.Axis, anti_direction: bool = False) -> ostk.astrodynamics.flight.Profile.TrajectoryTarget

    Create a target, which produces a vector pointing along the scan direction.

    Args:

    trajectory (Trajectory): The trajectory. axis (Axis): The axis to convert to a direction vector. anti_direction (bool): If true, the direction is flipped. Defaults to False.

property trajectory

The trajectory of the target. Used to compute the target position or velocity.

property type

The type of the target.

access_model(
self: ostk.astrodynamics.flight.Profile,
) ostk::astrodynamics::flight::profile::Model

Access the profile model.

Returns:

The profile model.

Return type:

Model

static align_and_constrain(
alignment_target: ostk.astrodynamics.flight.Profile.Target,
clocking_target: ostk.astrodynamics.flight.Profile.Target,
angular_offset: ostk.physics.unit.Angle = Angle.Zero(),
) Callable[[ostk.astrodynamics.trajectory.State], ostk.mathematics.geometry.d3.transformation.rotation.Quaternion]

Generate a function that provides a quaternion that aligns to the alignment_target and constrains to the clocking_target for a given state.

Parameters:
Returns:

The custom orientation.

Return type:

callable[Quaternion, State]

construct_body_frame(
self: ostk.astrodynamics.flight.Profile,
frame_name: ostk.core.type.String,
overwrite: bool = False,
) ostk.physics.coordinate.Frame

Construct the body frame of the profile.

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

  • overwrite (bool) -- If True, destruct existing frame with same name. Defaults to False.

Returns:

The body frame of the profile.

Return type:

Frame

static custom_pointing(*args, **kwargs)

Overloaded function.

  1. custom_pointing(orbit: ostk.astrodynamics.trajectory.Orbit, orientation_generator: Callable[[ostk.astrodynamics.trajectory.State], ostk.mathematics.geometry.d3.transformation.rotation.Quaternion]) -> ostk.astrodynamics.flight.Profile

    Create a custom pointing profile.

    Args:

    orbit (Orbit): The orbit. orientation_generator (callable[Quaternion, State]): The orientation generator. Typically used in conjunction with align_and_constrain.

    Returns:

    Profile: The custom pointing profile.

  2. custom_pointing(orbit: ostk.astrodynamics.trajectory.Orbit, alignment_target: ostk.astrodynamics.flight.Profile.Target, clocking_target: ostk.astrodynamics.flight.Profile.Target, angular_offset: ostk.physics.unit.Angle = Angle.Zero()) -> ostk.astrodynamics.flight.Profile

    Create a custom pointing profile.

    Args:

    orbit (Orbit): The orbit. alignment_target (Profile.Target): The alignment target. clocking_target (Profile.Target): The clocking target. angular_offset (Angle): The angular offset. Defaults to Angle.Zero().

    Returns:

    Profile: The custom pointing profile.

get_axes_at(
self: ostk.astrodynamics.flight.Profile,
instant: ostk.physics.time.Instant,
) ostk.physics.coordinate.Axes

Get the axes of the profile at a given instant.

Parameters:

instant (Instant) -- The instant.

Returns:

The axes of the profile at the given instant.

Return type:

Frame

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

Get the state of the profile at a given instant.

Parameters:

instant (Instant) -- The instant.

Returns:

The state of the profile at the given instant.

Return type:

State

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

Get the states of the profile at given instants.

Parameters:

instants (list) -- The instants.

Returns:

The states of the profile at the given instants.

Return type:

list

static inertial_pointing(
trajectory: ostk.astrodynamics.Trajectory,
quaternion: ostk.mathematics.geometry.d3.transformation.rotation.Quaternion,
) ostk.astrodynamics.flight.Profile

Create an inertial pointing profile.

Parameters:
  • trajectory (Trajectory) -- The trajectory.

  • quaternion (Quaternion) -- The quaternion.

Returns:

The inertial pointing profile.

Return type:

Profile

is_defined(self: ostk.astrodynamics.flight.Profile) bool

Check if the profile is defined.

Returns:

True if the profile is defined, False otherwise.

Return type:

bool

static local_orbital_frame_pointing(
orbit: ostk.astrodynamics.trajectory.Orbit,
orbital_frame_type: ostk.astrodynamics.trajectory.Orbit.FrameType,
) ostk.astrodynamics.flight.Profile

Create a profile aligned with the provided local orbital frame type.

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

  • orbital_frame_type (OrbitalFrameType) -- The type of the orbital frame.

Returns:

The profile aligned with the local orbital frame.

Return type:

Profile

static undefined() ostk.astrodynamics.flight.Profile

Create an undefined profile.

Returns:

The undefined profile.

Return type:

Profile