Attitude Parameter Message (APM)

class ccsds_ndm.Apm(header, segment)

Attitude Parameter Message (APM).

An APM specifies the attitude state of a single object at a specified epoch. This message is suited to interagency exchanges that involve automated interaction and/or human interaction, and/or human interaction, and do not require high-fidelity dynamic modeling.

The APM requires the use of a propagation technique to determine the attitude state at times different from the specified epoch.

static from_file(path, format=None)
static from_str(data, format=None)
header

Attitude Parameter Message (APM).

An APM specifies the attitude state of a single object at a specified epoch. This message is suited to interagency exchanges that involve automated interaction and/or human interaction, and/or human interaction, and do not require high-fidelity dynamic modeling.

The APM requires the use of a propagation technique to determine the attitude state at times different from the specified epoch.

Type:

AdmHeader

id

The message identifier.

Type:

Optional[str]

segment

APM Segment.

Type:

ApmSegment

to_file(path, format, validate=True)

Write to file.

to_str(format, validate=True)

Serialize to string.

validate(strict=True)

Validate the message against CCSDS rules.

Parameters:

strict (bool, optional) – If True (default), raises ValueError on the first error found. If False, returns a list of validation error messages (or None if valid).

version

The message version.

Type:

str

class ccsds_ndm.ApmSegment(metadata, data)
data

APM Data Section.

Type:

ApmData

metadata

APM Metadata Section.

Type:

ApmMetadata

class ccsds_ndm.ApmMetadata(object_name, object_id, time_system=None, center_name=None, comment=None)

APM Metadata Section.

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, BARYCENTER, MOON

Type:

str | None

comment

Comments (allowed only at the beginning of the APM Metadata before OBJECT_NAME). Each comment line shall begin with this keyword.

Examples: This is a comment.

Type:

list[str]

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 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

Type:

str

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, MARS PATHFINDER, UNKNOWN

Type:

str

time_system

Time system used for attitude and maneuver data. The set of allowed values is described in annex B, subsection B2.

Examples: UTC, TAI

Type:

str

class ccsds_ndm.ApmData(epoch, quaternion_state=None, euler_angle_state=None, angular_velocity=None, spin=None, inertia=None, maneuver_parameters=None, comment=None)

APM Data Section.

angular_velocity

Angular velocity vector.

Type:

list[AngVelState]

comment

One or more comment line(s). Each comment line shall begin with this keyword.

Type:

list[str]

epoch

Epoch of the attitude elements and optional logical blocks.

Type:

str

euler_angle_state

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.)

Type:

list[EulerAngleState]

inertia

Inertia. All mandatory elements are to be provided if the block is present. (See annex F for conventions and further detail.)

Type:

list[InertiaState]

maneuver_parameters

Maneuver Parameters.

Type:

list[ManeuverParameters]

quaternion_state

Attitude quaternion. All mandatory elements are to be provided if the block is present. (See annex F for conventions and further detail.)

Type:

list[QuaternionState]

spin

Spin. All mandatory elements are to be provided if the block is present. (See annex F for conventions and further detail.)

Type:

list[SpinState]

Parameter Blocks

class ccsds_ndm.ManeuverParameters(man_epoch_start, man_duration, man_ref_frame, man_tor_1, man_tor_2, man_tor_3, man_delta_mass=None, comment=None)

Maneuver Parameters (Repeat for each maneuver).

References: - CCSDS 502.0-B-3, Section 3.2.4 (OPM Data Section)

comment

Comments (see 7.8 for formatting rules).

Type:

list[str]

man_delta_mass

Mass change during maneuver (value is < 0)

Units: kg

Note: The CCSDS standard text describes this value as strictly negative (< 0). This implementation follows the underlying schema type and allows non-positive values (<= 0) for interoperability.

Type:

Optional[float]

man_duration

Maneuver duration (If = 0, impulsive maneuver)

Units: s

Type:

float

man_epoch_start

Epoch of ignition (see 7.5.10 for formatting rules)

Type:

str

man_ref_frame

Reference frame in which the velocity increment vector data are given. The user must select from the accepted set of values indicated in 3.2.4.11.

Type:

str

man_tor_x

Torque X component.

Units: N*m

Type:

float

man_tor_y

Torque Y component.

Units: N*m

Type:

float

man_tor_z

Torque Z component.

Units: N*m

Type:

float

class ccsds_ndm.InertiaState(inertia_ref_frame, ixx, iyy, izz, ixy, ixz, iyz, comment)

Inertia 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.

Type:

list[str]

inertia_ref_frame

Coordinate system for the inertia tensor. The set of allowed values is described in annex B, subsection B3.

Type:

str

ixx

Moment of Inertia about the X-axis.

Units: kg*m²

Type:

float

ixy

Inertia Cross Product of the X and Y axes.

Units: kg*m²

Type:

float

ixz

Inertia Cross Product of the X and Z axes.

Units: kg*m²

Type:

float

iyy

Moment of Inertia about the Y-axis.

Units: kg*m²

Type:

float

iyz

Inertia Cross Product of the Y and Z axes.

Units: kg*m²

Type:

float

izz

Moment of Inertia about the Z-axis.

Units: kg*m²

Type:

float