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)

Parse an APM from a KVN or XML file.

static from_str(data, format=None)
header

The message header.

Type:

AdmHeader

id

The message identifier.

Type:

Optional[str]

segment

APM Segment.

Type:

ApmSegment

to_file(path, format)

Atomically write this APM as KVN or XML.

to_str(format)

Serialize to validated KVN or XML.

validate()

Validate the message against CCSDS rules.

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

CCSDS Reference: 504.0-B-2, Section 3.2.3.

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.

CCSDS Reference: 504.0-B-2, Section 3.2.3.

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

CCSDS Reference: 504.0-B-2, Section 3.2.3.

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

CCSDS Reference: 504.0-B-2, Section 3.2.3.

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

CCSDS Reference: 504.0-B-2, Section 3.2.3.

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.

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

list[AngVelState]

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.

Type:

list[str]

epoch

Epoch of the attitude elements and optional logical blocks.

CCSDS Reference: 504.0-B-2, Section 3.2.4.

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

CCSDS Reference: 504.0-B-2, Section 3.2.4.

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

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

list[InertiaState]

maneuver_parameters

Maneuver Parameters.

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

list[ApmManeuverParameters]

quaternion_state

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

CCSDS Reference: 504.0-B-2, Section 3.2.4.

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

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

list[SpinState]

Parameter Blocks

class ccsds_ndm.ApmManeuverParameters(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 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.

Type:

list[str]

man_delta_mass

Mass change during maneuver (value is < 0)

Units: kg

The applicable XML schema uses deltamassTypeZ, so zero is allowed.

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

Optional[float]

man_duration

Maneuver duration.

Units: s

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float

man_epoch_start

Epoch of start of maneuver. (For format specification, see 6.8.9.)

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

str

man_ref_frame

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

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

str

man_tor_x

1st component of the torque vector.

Units: N*m

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float

man_tor_y

2nd component of the torque vector.

Units: N*m

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float

man_tor_z

3rd component of the torque vector.

Units: N*m

CCSDS Reference: 504.0-B-2, Section 3.2.4.

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.

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

list[str]

inertia_ref_frame

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

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

str

ixx

Moment of Inertia about the X-axis.

Units: kg*m²

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float

ixy

Inertia Cross Product of the X and Y axes.

Units: kg*m²

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float

ixz

Inertia Cross Product of the X and Z axes.

Units: kg*m²

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float

iyy

Moment of Inertia about the Y-axis.

Units: kg*m²

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float

iyz

Inertia Cross Product of the Y and Z axes.

Units: kg*m²

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float

izz

Moment of Inertia about the Z-axis.

Units: kg*m²

CCSDS Reference: 504.0-B-2, Section 3.2.4.

Type:

float