Click or drag to resize

StkAttitudeFileAttitudeTimeQuaternionsAttitudeData Property

Gets or sets the attitude data relative to CoordinateAxes. Note that the convention here is not the usual convention elsewhere in STK Components, and instead represents the convention used in the STK Attitude Files themselves. See the remarks for more information or use ConvertToStkAttitudeConvention(DateMotionCollectionUnitQuaternion, Cartesian).

Namespace:  AGI.Foundation.Stk
Assembly:  AGI.Foundation.Models (in AGI.Foundation.Models.dll) Version: 22.2.414.0 (22.2.414.0)
public DateMotionCollection<UnitQuaternion, Cartesian> AttitudeData { get; set; }

Property Value

Type: DateMotionCollectionUnitQuaternion, Cartesian

The convention used by STK attitude files for representing rotational motion is different than the convention used in STK Components. Specifically, the derivative information is expressed in radians in STK Components and in degrees in the STK attitude file, and is expressed with respect to the originating axes in STK Components and with respect to the destination axes in the STK attitude file. For example, if the UnitQuaternion represents the transformation from axes "A" to axes "B", then the rotational velocities and accelerations should be expressed with respect to axes "A" for STK Components and should be expressed with respect to axes "B" for STK attitude files.


The following example indicates how to convert rotational motion using the STK Components convention to the STK attitude file convention.

// Get some rotational motion which uses the STK Components convention of rates expressed
// with respect to the originating axes and in radians.
Motion<UnitQuaternion, Cartesian> stkComponentsMotion = GetMotion();

// Convert the motion to use the STK attitude file convention of rates expressed with respect
// to the destination axes and in degrees.
UnitQuaternion rotation = stkComponentsMotion.Value;
Cartesian temp = stkComponentsMotion.FirstDerivative.Rotate(rotation);
Cartesian rotationalVelocity = new Cartesian(Trig.RadiansToDegrees(temp.X), Trig.RadiansToDegrees(temp.Y), Trig.RadiansToDegrees(temp.Z));
temp = stkComponentsMotion.SecondDerivative.Rotate(rotation);
Cartesian rotationalAcceleration = new Cartesian(Trig.RadiansToDegrees(temp.X), Trig.RadiansToDegrees(temp.Y), Trig.RadiansToDegrees(temp.Z));
Motion<UnitQuaternion, Cartesian> stkAttitudeFileMotion = new Motion<UnitQuaternion, Cartesian>(rotation, rotationalVelocity, rotationalAcceleration);
See Also