Skip to content

spaceteams.SC_Compute_Server.frames

BaseFrame_Impl

Bases: Frame

BodyCenteredFrame

BodyCenteredFrame(parent: Frame, Body: Entity)

Bases: DynamicFrame

getBody

getBody() -> spaceteams.SC_Compute_Server.Entity

BodyCenteredFrame_LVLH

BodyCenteredFrame_LVLH(parent: Frame, frameCenterBody: Entity, bodyThisIsAbove: Entity)

Bases: DynamicFrame

Local Vertical Local Horizontal Frame: Dynamic Translation and Rotation. Translating with body of Entity_Base frameCenterBody. Using axis convention: Z-Axis: Oriented in the direction of -r (points to center of planet or body) - Local Vertical Y-Axis: Negative to the orbit normal, or in the direction of -h X-Axis: Perpendicular to Y and Z, forming a right-handed coordinate system - Local Horizontal Origin: Center of the Spacecraft/vehicle

Same directions as used in LVLH on FreeFlyer documentation: https://ai-solutions.com/_freeflyeruniversityguide/attitude_reference_frames.htm

BodyFixedFrame

BodyFixedFrame(parent: Frame, Body: Entity)

Bases: DynamicFrame

Body fixed frame definition

What can be used as +X/forward axis: - Vehicle datum axis. - Negated main thrust vector, rounded off to line up with the vehicle's structure. - Nominal velocity vector, rounded off to line up with the vehicle's structure. - Pointing axis for a device like a camera, laser, antenna, etc. - Pointing from the center of an object to its "front side". For example, a soft drink bottle would have its logo on its forward axis.

"Up" can be: - Up from the pilot's perspective, if they face towards +X. - Nominal lift vector, rounded off to line up with the vehicle's structure. - Perpendicular to the ground for nominal horizontal flight. - Perpendicular to the ground for nominal ground travel. - If none of the other "Up" criteria apply, "Up" can be one of the things from the forward axis criteria (as long as it's perpendicular to the chosen forward axis).

      +z (up)
       |
       |_____ +y (left)
      /
     /
    +x (forward)

getBody

getBody() -> spaceteams.SC_Compute_Server.Entity

BodyFixedToENU_Frame

BodyFixedToENU_Frame(parent: Frame, surfaceRadialVec: Annotated[ArrayLike, float64, '[3, 1]'], radius_surface_level: SupportsFloat)

Bases: DynamicFrame

East North Up Frame: Must be added as a child frame to a body-fixed frame! x: East, tangent to surface y: North, tangent to surface z: Up from surface

z=0 at given "surface level" radius from center.

BodyFixedToNED_Frame

BodyFixedToNED_Frame(parent: Frame, surfaceRadialVec: Annotated[ArrayLike, float64, '[3, 1]'], radius_surface_level: SupportsFloat)

Bases: DynamicFrame

North East Down Frame: Must be added as a child frame to a body-fixed frame! x: North, tangent to surface y: East, tangent to surface z: Down from surface

The convention for north pole of a planetary body frame is along z+. The convention for 0,0 lat-long of a planetary body frame is along x+. z=0 at given "surface level" radius from center.

BodyFixedToNWU_Frame

BodyFixedToNWU_Frame(parent: Frame, surfaceRadialVec: Annotated[ArrayLike, float64, '[3, 1]'], radius_surface_level: SupportsFloat)

Bases: DynamicFrame

North West Up Frame: Must be added as a child frame to a body-fixed frame! x: North, tangent to surface y: West, tangent to surface z: Up from surface

The convention for north pole of a planetary body frame is along z+. The convention for 0,0 lat-long of a planetary body frame is along x+. z=0 at given "surface level" radius from center.

DynamicFrame

Bases: Frame

Specialization of Frame that implements transform operations based on a source of relative state like a moving rigid body.

Frame

Reference Frame base class. All frames can be used to define a transformation between themselves and their parent frame, and exist as a node in a tree of frames.

FramedAngAcc

FramedAngAcc(angacc: Annotated[ArrayLike, float64, '[3, 1]'], frame: Frame)

FramedAngAcc defines an angular acceleration in space by storing a vector and a with-respect-to frame. The angular acceleration vector direction is the axis of velocity change, and the magnitude of the vector is the speed in radians/second of the right-handed rotation around that axis.

Zero staticmethod

Zero(wrt: Frame) -> FramedAngAcc

WRT

WRT(wrt_frame: Frame) -> FramedVector

Redefine the angular acceleration state with respect to a specified frame. Redefining the angular acceleration as such applies more than just rotation of the vector quantity to the new coordinate basis.

WRT_ExprIn

WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Redefine the angular acceleration state with respect to a specified frame. Redefining the angular acceleration as such applies more than just rotation of the vector quantity to the new coordinate basis. Also expresses the vector in the same frame (coordinate basis).

hasNaN

hasNaN() -> bool

FramedAngVel

FramedAngVel(angvel: Annotated[ArrayLike, float64, '[3, 1]'], frame: Frame)

FramedAngVel defines an angular velocity in space by storing a vector and a with-respect-to frame. The angular velocity vector direction is the axis of rotation, and the magnitude of the vector is the speed in radians/second of the right-handed rotation around that axis.

Zero staticmethod

Zero(wrt: Frame) -> FramedAngVel

WRT

WRT(wrt_frame: Frame) -> FramedVector

Redefine the angular velocity state with respect to a specified frame. Redefining the angular velocity as such applies more than just rotation of the vector quantity to the new coordinate basis.

WRT_ExprIn

WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Redefine the angular velocity state with respect to a specified frame. Redefining the angular velocity as such applies more than just rotation of the vector quantity to the new coordinate basis. Also expresses the vector in the same frame (coordinate basis).

hasNaN

hasNaN() -> bool

FramedLoc

FramedLoc(loc: Annotated[ArrayLike, float64, '[3, 1]'], frame: Frame)

FramedLoc defines a state with location by storing this vector and a with-respect-to frame.

Zero staticmethod

Zero(wrt: Frame) -> FramedLoc

WRT

WRT(wrt_frame: Frame) -> FramedVector

Resolve the location with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the location vector should be expressed in.

WRT_ExprIn

WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Resolve the location with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.

hasNaN

hasNaN() -> bool

FramedLocVel

FramedLocVel(locVel: rv_struct, frame: Frame)

FramedLocVel defines a state with location and velocity by storing these vectors and a with-respect-to frame.

Zero staticmethod

Zero(wrt: Frame) -> FramedLocVel

WRT

WRT(wrt_frame: Frame) -> FramedVector

Resolve the velocity with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the acceleration should be expressed in.

WRT_ExprIn

WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Resolve the velocity with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.

hasNaN

hasNaN() -> bool

loc

loc() -> FramedLoc

loc_WRT

loc_WRT(wrt_frame: Frame) -> FramedVector

Resolve the location with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the location should be expressed in.

loc_WRT_ExprIn

loc_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Resolve the location with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.

vel_WRT

vel_WRT(wrt_frame: Frame) -> FramedVector

Resolve the velocity with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the velocity should be expressed in.

vel_WRT_ExprIn

vel_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Resolve the velocity with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.

FramedLocVelAcc

FramedLocVelAcc(locVelAcc: rva_struct, frame: Frame)

FramedLocVelAcc defines a state with location, velocity, and acceleration by storing these vectors and a with-respect-to frame.

Zero staticmethod

Zero(wrt: Frame) -> FramedLocVelAcc

WRT

WRT(wrt_frame: Frame) -> FramedVector

Resolve the acceleration with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the acceleration should be expressed in.

WRT_ExprIn

WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Resolve the acceleration with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.

acc_WRT

acc_WRT(wrt_frame: Frame) -> FramedVector

Resolve the acceleration with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the acceleration should be expressed in.

acc_WRT_ExprIn

acc_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Resolve the acceleration with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.

hasNaN

hasNaN() -> bool

loc

loc() -> FramedLoc

loc_WRT

loc_WRT(wrt_frame: Frame) -> FramedVector

Resolve the location with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the location should be expressed in.

loc_WRT_ExprIn

loc_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Resolve the location with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.

locvel

locvel() -> FramedLocVel

vel_WRT

vel_WRT(wrt_frame: Frame) -> FramedVector

Resolve the velocity with respect to a specified frame, performing transport theorem. Returns a FramedVector so you can do ExprIn to specify coordinate basis the velocity should be expressed in.

vel_WRT_ExprIn

vel_WRT_ExprIn(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Resolve the velocity with respect to a specified frame, performing transport theorem. Also uses the same frame (coordinate basis) to express the vector.

FramedMatrix3x3

FramedMatrix3x3(matrix: Annotated[ArrayLike, float64, '[3, 3]'], frame: Frame)

FramedMatrix3x3 defines a 3x3 matrix with no physical significance other than the orientation of its coordinate basis frame. It stores this matrix and an expressed-in frame.

ExprIn

ExprIn(expr_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 3]']

Express the matrix in a specified frame (coordinate basis).

FramedRot

FramedRot(rot: Annotated[ArrayLike, float64, '[3, 3]'], frame: Frame)

FramedRot defines an orientation in space by storing a rotation transformation DCM and a with-respect-to frame.

Zero staticmethod

Zero(wrt: Frame) -> FramedRot

DCM_WRT

DCM_WRT(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 3]']

Express the time-extrapolated passive rotation transformation matrix from specified frame to the orientation defined by this FramedRot (DCM, right handed coordinates).

Quat_WRT

Quat_WRT(wrt_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[4, 1]']

Express the quaternion corresponding to the time-extrapolated passive rotation transformation matrix from specified frame to the orientation defined by this FramedRot. Returns a quaternion, right handed coordinates, in xyzw order.

hasNaN

hasNaN() -> bool

FramedVector

FramedVector(vec: Annotated[ArrayLike, float64, '[3, 1]'], frame: Frame)

FramedVector defines a vector with no physical significance other than the orientation of its coordinate basis frame. It stores this vector and an expressed-in frame.

ExprIn

ExprIn(expr_frame: Frame) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']

Express the vector in a specified frame (coordinate basis).

StaticFrame

Bases: Frame

Simple Frame class that implements transform operations based on a static location and rotation offset from parent.

SetLocation

SetLocation(location_offset: Annotated[ArrayLike, float64, '[3, 1]']) -> None

SetRotation

SetRotation(rotation_offset_dcm: Annotated[ArrayLike, float64, '[3, 3]']) -> None

rv_struct

rv_struct(loc: Annotated[ArrayLike, float64, '[3, 1]'], vel: Annotated[ArrayLike, float64, '[3, 1]'])

loc property writable

loc: Annotated[NDArray[float64], '[3, 1]']

vel property writable

vel: Annotated[NDArray[float64], '[3, 1]']

rva_struct

rva_struct(loc: Annotated[ArrayLike, float64, '[3, 1]'], vel: Annotated[ArrayLike, float64, '[3, 1]'], acc: Annotated[ArrayLike, float64, '[3, 1]'])

acc property writable

acc: Annotated[NDArray[float64], '[3, 1]']

loc property writable

loc: Annotated[NDArray[float64], '[3, 1]']

vel property writable

vel: Annotated[NDArray[float64], '[3, 1]']