Attitude Ephemeris Message (AEM)¶
- class ccsds_ndm.AdmHeader(creation_date, originator, classification=None, message_id=None, comment=None)¶
Represents the admHeader complex type from the XSD.
- classification¶
User-defined free-text message classification/caveats of this ADM. It is recommended that selected values be pre-coordinated between exchanging entities by mutual agreement.
Examples: SBU, ‘Operator-proprietary data; secondary distribution not permitted’
CCSDS Reference: 504.0-B-2, Section 3.2.2.
- Type:
Optional[str]
- comment¶
User-defined comments. (See 7.8 for formatting rules.)
Examples: This is a comment
CCSDS Reference: 504.0-B-2, Section 3.2.2.
- creation_date¶
File creation date/time in UTC. (For format specification, see 6.8.9.)
Examples: 2001-11-06T11:17:33, 2002-204T15:56:23Z
CCSDS Reference: 504.0-B-2, Section 3.2.2.
- Type:
- message_id¶
ID that uniquely identifies a message from a given originator. The format and content of the message identifier value are at the discretion of the originator.
Examples: APM_201113719185, ABC-12_34
CCSDS Reference: 504.0-B-2, Section 3.2.2.
- Type:
Optional[str]
- originator¶
Creating agency or operator. Select from the accepted set of values indicated in annex B, subsection B1 from the ‘Abbreviation’ column (when present), or the ‘Name’ column when an Abbreviation column is not populated. If desired organization is not listed there, follow procedures to request that originator be added to SANA registry.
Examples: CNES, ESOC, GSFC, GSOC, JPL, JAXA, INTELSAT, USAF, INMARSAT
CCSDS Reference: 504.0-B-2, Section 3.2.2.
- Type:
- class ccsds_ndm.Aem(header, segments)¶
Attitude Ephemeris Message (AEM).
An AEM specifies the attitude state of a single object at multiple epochs, contained within a specified time range. The AEM is suited to interagency exchanges that involve automated interaction and require higher fidelity or higher precision dynamic modeling than is possible with the APM.
The AEM allows for dynamic modeling of any number of torques (solar pressure, atmospheric torques, magnetics, etc.). It requires the use of an interpolation technique to interpret the attitude state at times different from the tabular epochs.
- static from_file(path, format=None)¶
Parse an AEM from a KVN or XML file.
- static from_str(data, format=None)¶
- segments¶
AEM Segments.
- Type:
- to_file(path, format)¶
Atomically write this AEM as KVN or XML.
- to_str(format)¶
Serialize to validated KVN or XML.
- validate()¶
Validate the message against CCSDS rules.
- class ccsds_ndm.AemSegment(metadata, data)¶
-
- metadata¶
AEM Metadata Section.
- Type:
- validate()¶
Validate the segment against CCSDS rules.
- class ccsds_ndm.AemMetadata(object_name, object_id, ref_frame_a, ref_frame_b, start_time, stop_time, time_system, attitude_type=Ellipsis, center_name=None, useable_start_time=None, useable_stop_time=None, euler_rot_seq=None, angvel_frame=None, interpolation_method=None, interpolation_degree=None, comment=None)¶
AEM Metadata Section.
- angvel_frame¶
The frame of reference in which angular velocity data are specified. The set of allowed values is described in annex B, subsection B3. This keyword is applicable only if ATTITUDE_TYPE specifies the use of angular velocities in conjunction with either quaternions or Euler angles.
Examples: ICRF, SC_BODY_1
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
str | None
- attitude_type¶
The type of information contained in the data lines. This keyword must have a value from the set specified at the right. (See table 4-4 for details of the data contained in each line.)
Examples: QUATERNION, QUATERNION/DERIVATIVE, QUATERNION/ANGVEL, EULER_ANGLE, EULER_ANGLE/DERIVATIVE, EULER_ANGLE/ANGVEL, SPIN, SPIN/NUTATION, SPIN/NUTATION_MOM
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
- center_name¶
Celestial body orbited by the object, which may be a natural solar system body (planets, asteroids, comets, and natural satellites), including any planet barycenter or the solar system barycenter. The set of allowed values is described in annex B, subsection B8.
Examples: EARTH, STS-106
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
str | None
- comment¶
Comments allowed only at the beginning of the Metadata section. Each comment line shall begin with this keyword.
Examples: This is a comment.
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- euler_rot_seq¶
Rotation sequence that defines the REF_FRAME_A to REF_FRAME_B transformation. The order of the transformation is from left to right, where the leftmost letter (X, Y, or Z) represents the rotation axis of the first rotation, the second letter (X, Y, or Z) represents the rotation axis of the second rotation, and the third letter (X, Y, or Z) represents the rotation axis of the third rotation. This keyword is applicable only if ATTITUDE_TYPE specifies the use of Euler angles.
Examples: ZXZ, XYZ
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
str | None
- interpolation_degree¶
Recommended interpolation degree for attitude ephemeris data in the block immediately following this metadata block. It must be an integer value. This keyword must be used if the ‘INTERPOLATION_METHOD’ keyword is used.
Examples: 1, 5
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
int | None
- interpolation_method¶
Recommended interpolation method for attitude ephemeris data in the block immediately following this metadata block.
Examples: LINEAR, HERMITE, LAGRANGE
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
str | None
- object_id¶
Spacecraft identifier of the object corresponding to the attitude data to be given. While there is no CCSDS-based restriction on the value for this keyword, it is recommended to use international designators from the UN Office of Outer Space Affairs (reference [ADM-2]). Recommended values have the format YYYY-NNNP{PP}, where: YYYY = Year of launch. NNN = Three- digit serial number of launch in year YYYY (with leading zeros). P{PP} = At least one capital letter for the identification of the part brought into space by the launch. In cases in which the asset is not listed in reference [ADM-2], the UN Office of Outer Space Affairs designator index format is not used, or the content cannot be disclosed, the value should be set to UNKNOWN.
Examples: 2000-052A
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
- object_name¶
Spacecraft name for which the attitude state is provided. While there is no CCSDS-based restriction on the value for this keyword, it is recommended to use names from the UN Office of Outer Space Affairs designator index (reference [ADM-2], which include Object name and international designator). When OBJECT_NAME is not known or cannot be disclosed, the value should be set to UNKNOWN.
Examples: EUTELSAT W1
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
- ref_frame_a¶
Name of the reference frame that defines the starting point of the transformation. The set of allowed values is described in annex B, subsection B3.
Examples: ICRF, SC_BODY_1, INSTRUMENT_A
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
- ref_frame_b¶
Name of the reference frame that defines the end point of the transformation. The set of allowed values is described in annex B, subsection B3.
Examples: SC_BODY_1, INSTRUMENT_A
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
- start_time¶
Start of TOTAL time span covered by attitude ephemeris data immediately following this metadata block.
Examples: 1996-12-18T14:28:15.11
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
- stop_time¶
End of TOTAL time span covered by the attitude ephemeris data immediately following this metadata block.
Examples: 1996-12-18T14:28:15.11
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
- time_system¶
Time system used for both attitude ephemeris data and metadata. The set of allowed values is described in annex B, subsection B2.
Examples: UTC, TAI
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
- useable_start_time¶
Optional start of USEABLE time span covered by attitude ephemeris data immediately following this metadata block. To allow for proper interpolation near the beginning/end of the attitude ephemeris data block, it may be necessary to utilize this keyword with values within the time span covered by the attitude ephemeris data records as denoted by the START/STOP_TIME time tags. The USEABLE_START_TIME time tag of a new block of ephemeris data must be greater than or equal to the USEABLE_STOP_TIME time tag of the previous block.
Examples: 1996-12-18T14:28:15.11
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
str | None
- useable_stop_time¶
Optional stop of USEABLE time span covered by attitude ephemeris data immediately following this metadata block. (See also USEABLE_START_TIME.)
Examples: 1996-12-18T14:28:15.11
CCSDS Reference: 504.0-B-2, Section 4.2.3.
- Type:
str | None
- validate()¶
Validate the metadata section against CCSDS rules.
- class ccsds_ndm.AemData(attitude_states, attitude_type, comment=None)¶
AEM Data Section.
- Parameters:
attitude_states (list[AttitudeState])
states. (Attitude)
attitude_type (str)
state. (CCSDS attitude type shared by every)
Comments.
- attitude_states¶
Attitude ephemeris data lines.
CCSDS Reference: 504.0-B-2, Section 4.2.4.
- Type:
- attitude_states_numpy¶
Get attitude states as a 2D NumPy array.
Use attitude_states_epochs for the corresponding epochs.
Supports all AEM attitude state types, but all rows must be of the same type.
- Type:
numpy.ndarray
- comment¶
Comments allowed only at the beginning of the Data section. Each comment line shall begin with this keyword.
CCSDS Reference: 504.0-B-2, Section 4.2.4.
- static from_numpy(epochs, array, attitude_type, comment=None)¶
- validate(attitude_type)¶
Validate the data section against CCSDS rules.
Attitude States¶
- class ccsds_ndm.QuaternionState(ref_frame_a, ref_frame_b, q1, q2, q3, qc, q1_dot, q2_dot, q3_dot, qc_dot, comment)¶
Attitude quaternion.
All mandatory elements are to be provided if the block is present. (See annex F for conventions and further detail.)
- comment¶
One or more comment line(s). Each comment line shall begin with this keyword.
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- q1¶
Quaternion components Q1, Q2, Q3, QC.
Units: dimensionless
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- q2¶
Quaternion components Q1, Q2, Q3, QC.
Units: dimensionless
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- q3¶
Quaternion components Q1, Q2, Q3, QC.
Units: dimensionless
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- qc¶
Quaternion components Q1, Q2, Q3, QC.
Units: dimensionless
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- quaternion_dot¶
Quaternion derivative components [Q1_DOT, Q2_DOT, Q3_DOT, QC_DOT].
Units: 1/s
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- ref_frame_a¶
Name of the reference frame that defines the starting point of the transformation. The set of allowed values is described in annex B, subsection B3.
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- class ccsds_ndm.EulerAngleState(ref_frame_a, ref_frame_b, euler_rot_seq, angle_1, angle_2, angle_3, angle_1_dot, angle_2_dot, angle_3_dot, comment)¶
Euler angle elements.
All mandatory elements of the logical block are to be provided if the block is present. (See annex F for conventions and further detail.)
- angle_1¶
Angle of the first rotation.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- angle_1_dot¶
Time derivative of angle of the first rotation.
Units: deg/s
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- angle_2¶
Angle of the second rotation.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- angle_2_dot¶
Time derivative of angle of the second rotation.
Units: deg/s
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- angle_3¶
Angle of the third rotation.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- angle_3_dot¶
Time derivative of angle of the third rotation.
Units: deg/s
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- comment¶
One or more comment line(s). Each comment line shall begin with this keyword.
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- euler_rot_seq¶
Rotation sequence that defines the REF_FRAME_A to REF_FRAME_B transformation. The order of the transformation is from left to right, where the leftmost letter (X, Y, or Z) represents the rotation axis of the first rotation, the second letter (X, Y, or Z) represents the rotation axis of the second rotation, and the third letter (X, Y, or Z) represents the rotation axis of the third rotation.
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- ref_frame_a¶
Name of the reference frame that defines the starting point of the transformation. The set of allowed values is described in annex B, subsection B3.
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- class ccsds_ndm.SpinState(ref_frame_a, ref_frame_b, spin_alpha, spin_delta, spin_angle, spin_angle_vel, nutation, nutation_per, nutation_phase, momentum_alpha, momentum_delta, nutation_vel, comment)¶
Spin block.
All mandatory elements are to be provided if the block is present. (See annex F for conventions and further detail.)
- comment¶
One or more comment line(s). Each comment line shall begin with this keyword.
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- momentum_alpha¶
Right ascension of angular momentum vector in frame A.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- momentum_delta¶
Declination of angular momentum vector in frame A.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- nutation¶
Nutation angle of spin axis.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- nutation_per¶
Body nutation period of the spin axis.
Units: s
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- nutation_phase¶
Inertial nutation phase.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- nutation_vel¶
Angular velocity of spin vector around the angular momentum vector.
Units: deg/s
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
Optional[float]
- ref_frame_a¶
Name of the reference frame that defines the starting point of the transformation. The set of allowed values is described in annex B, subsection B3.
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- ref_frame_b¶
Name of the reference frame that defines the end point of the transformation. The set of allowed values is described in annex B, subsection B3.
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- spin_alpha¶
Right ascension of spin axis vector in frame A.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- spin_angle¶
Phase of the satellite about the spin axis.
Units: deg
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type:
- spin_angle_vel¶
Angular velocity of satellite around spin axis.
Units: deg/s
CCSDS Reference: 504.0-B-2, Section 3.2.4.
- Type: