Attitude Comprehensive Message (ACM)

class ccsds_ndm.Acm(header, segment)

Attitude Comprehensive Message (ACM).

An ACM specifies the attitude state of a single object at multiple epochs, contained within a specified time range. The ACM aggregates and extends APM and AEM content in a single comprehensive hybrid message.

Capabilities include: - Optional rate data elements - Optional spacecraft physical properties - Optional covariance elements - Optional maneuver parameters - Optional estimator information

static from_file(path, format=None)

Parse an ACM 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

ACM Segment.

Type:

AcmSegment

to_file(path, format)

Atomically write this ACM 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.AcmSegment(metadata, data)
data

ACM Data Section.

Type:

AcmData

metadata

ACM Metadata Section.

Type:

AcmMetadata

validate(header)

Validate the segment against CCSDS rules.

class ccsds_ndm.AcmMetadata(object_name, epoch_tzero, time_system, international_designator=None, comment=None)

ACM Metadata Section.

acm_data_elements

Included ACM data block elements.

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

Type:

str | None

catalog_name

Satellite catalog source.

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

Type:

str | None

center_name

Central body name.

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

Type:

str | None

comment

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

Examples: This is a comment.

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

Type:

list[str]

epoch_tzero

Epoch from which all ACM relative times are referenced. (For format specification, see 6.8.9.) The time scale for EPOCH_TZERO is the one specified by ‘TIME_SYSTEM’ keyword in the Metadata section.

Examples: 2016-11-10T00:00:00

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

Type:

str

international_designator

Free text field containing an international designator for the object as assigned by the UN Committee on Space Research (COSPAR) and the US National Space Science Data Center (NSSDC). Such designator values have the following COSPAR 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 object has no international designator, the value UNKNOWN may be used. NOTE – The international designator is typically specified by ‘OBJECT_ID’ in the APM and AEM.

Examples: 2000-052A, 1996-068A, 2000-053A, 1996-008A, UNKNOWN

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

Type:

str | None

next_leap_epoch

Epoch of the next leap second.

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

Type:

str | None

next_leap_taimutc

Difference (TAI - UTC) at NEXT_LEAP_EPOCH, seconds.

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

Type:

float | None

object_designator

Unique object designator in the source catalog.

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

Type:

str | None

object_name

Free-text field containing the name of the object. There is no CCSDS-based restriction on the value for this keyword, but it is recommended to use names from either the UN Office of Outer Space Affairs designator index (reference [2]), which include Object name and international designator), the spacecraft operator, or a State Actor or commercial Space Situational Awareness (SSA) provider maintaining the ‘CATALOG_NAME’ space catalog. If the object name is not known (uncorrelated object), ‘UNKNOWN’ may be used (or this keyword omitted).

Examples: SPOT, ENVISAT, IRIDIUM, INTELSAT

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

Type:

str

Linked Orbit Data Message identifier.

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

Type:

str | None

originator_address

Originator point-of-contact address.

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

Type:

str | None

originator_email

Originator point-of-contact email.

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

Type:

str | None

originator_phone

Originator point-of-contact phone.

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

Type:

str | None

originator_poc

Originator point-of-contact.

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

Type:

str | None

originator_position

Originator point-of-contact position.

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

Type:

str | None

start_time

Earliest data time in this ACM.

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

Type:

str | None

stop_time

Latest data time in this ACM.

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

Type:

str | None

taimutc_at_tzero

Difference (TAI - UTC) at EPOCH_TZERO, seconds.

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

Type:

float | None

time_system

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

Examples: UTC, TAI

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

Type:

str

validate()

Validate the metadata section against CCSDS rules.

class ccsds_ndm.AcmData(att=None, phys=None, cov=None, man=None, ad=None, user=None)

ACM Data Section.

ad

A single attitude determination Data section.

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

Type:

AcmAttitudeDetermination | None

att

One or more optional attitude state time histories (each consisting of one or more attitude states).

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

Type:

list[AcmAttitudeState]

cov

One or more optional covariance time histories (each consisting of one or more covariance matrix diagonals).

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

Type:

list[AcmCovarianceMatrix]

man

One or more optional maneuver specification section(s).

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

Type:

list[AcmManeuverParameters]

phys

A single space object physical characteristics section.

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

Type:

AcmPhysicalDescription | None

user

A single user-defined Data section.

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

Type:

UserDefined | None

validate(metadata)

Validate the data section against CCSDS rules.

class ccsds_ndm.AcmAttitudeDetermination(ad_id=None, comment=None)

ACM Data: Attitude Determination Data Section.

ad_epoch

Epoch of the attitude determination.

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

Type:

str | None

ad_id

Attitude determination block identifier.

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

Type:

str | None

ad_method

Attitude determination method.

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

Type:

str | None

ad_prev_id

Previous attitude determination block identifier.

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

Type:

str | None

attitude_source

Source of attitude estimate.

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

Type:

str | None

attitude_states

Attitude state type for estimator.

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

Type:

str | None

attitude_type

Type of attitude data, selected per annex B, subsection B4. Attitude states must always be listed before rate states.

Examples: QUATERNION

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

Type:

str | None

comment

Comments allowed only immediately after the AD_START keyword.

Examples: This is a comment.

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

Type:

list[str]

cov_type

Covariance type for estimator.

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

Type:

str | None

euler_rot_seq

Euler rotation sequence used by Euler-angle attitude states.

Type:

str | None

number_states

Number of estimator states.

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

Type:

int | None

rate_process_noise_stddev

Rate process noise standard deviation.

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

Type:

float | None

rate_states

Rate states type.

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

Type:

str | None

ref_frame_a

Source reference frame.

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

Type:

str | None

ref_frame_b

Destination reference frame.

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

Type:

str | None

sensors

Sensor data blocks.

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

Type:

list[AcmSensor]

sigma_u

Rate random walk sigma_u.

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

Type:

float | None

sigma_v

Angle random walk sigma_v.

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

Type:

float | None

class ccsds_ndm.AcmAttitudeState(ref_frame_a, ref_frame_b, att_type, att_lines, comment=None)

ACM Data: Attitude State Time History Section.

att_basis

Basis of this attitude state data.

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

Type:

str | None

att_basis_id

Basis dataset identifier.

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

Type:

str | None

att_id

Attitude state block identifier.

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

Type:

str | None

att_lines

Data lines that consist of attitude data followed by rate data. (For the data units, see above [ATT_TYPE and RATE_TYPE keywords]).

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

Type:

list[list[float]]

att_prev_id

Previous attitude state block identifier.

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

Type:

str | None

att_type

Type of attitude data, selected per annex B, subsection B4. Attitude data must always be listed before rate data. The units that shall be used are given in annex B, subsection B4.

Examples: QUATERNION, EULER_ANGLES, DCM

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

Type:

str

comment

Comments allowed only immediately after the ATT_START keyword.

Examples: This is a comment.

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

Type:

list[str]

euler_rot_seq

Optional Euler rotation sequence.

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

Type:

str | None

number_states

Number of data states included. States to be included are attitude states and optional rate states.

Examples: 3, 4, 7

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

Type:

int

rate_type

Optional rate state type.

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

Type:

str | None

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

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

Type:

str

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

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

Type:

str

class ccsds_ndm.AcmCovarianceMatrix(cov_basis, cov_ref_frame, cov_type, cov_lines, comment=None)

ACM Data: Covariance Time History Section.

comment

Comments allowed only immediately after the COV_START keyword.

Examples: THIS is a comment.

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

Type:

list[str]

cov_basis

Basis of this covariance time history data.

Examples: PREDICTED, DETERMINED_GND, DETERMINED_OBC, SIMULATED

Type:

str | None

cov_basis_id

Identifier for the covariance basis.

Type:

str | None

cov_confidence

Optional confidence level of the covariance matrix.

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

Type:

float | None

cov_id

Covariance history identifier.

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

Type:

str | None

cov_lines

Covariance data lines (diagonal terms only). (For the data units, see annex B, subsection B6.)

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

Type:

list[list[float]]

cov_prev_id

Previous covariance history identifier.

Type:

str | None

cov_ref_frame

Reference frame of the covariance time history. The full set of values is enumerated in annex B, subsection B3.

Examples: SC_BODY_1

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

Type:

str | None

cov_type

Indicates covariance composition. Select from annex B, subsection B6.

Examples: ANGLE, ANGLE_GYROBIAS

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

Type:

str

class ccsds_ndm.AcmManeuverParameters(man_id=None, comment=None)

ACM Data: Maneuver Specification Section.

actuator_used

Actuator used for this maneuver.

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

Type:

str | None

comment

Comments allowed only immediately after the MAN_START keyword.

Examples: This is a comment.

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

Type:

list[str]

man_begin_time

Maneuver begin time in seconds relative to EPOCH_TZERO.

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

Type:

str | None

man_duration

Maneuver duration in seconds.

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

Type:

float | None

man_end_time

Maneuver end time in seconds relative to EPOCH_TZERO.

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

Type:

str | None

man_id

Maneuver block identifier.

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

Type:

str | None

man_prev_id

Previous maneuver block identifier.

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

Type:

str | None

man_purpose

Maneuver purpose.

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

Type:

str | None

target_attitude

Target attitude quaternion-like 4-vector.

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

Type:

list[float] | None

target_mom_frame

Reference frame of target momentum.

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

Type:

str | None

target_momentum

Target momentum vector [x, y, z].

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

Type:

list[float] | None

target_spinrate

Target spin rate (deg/s).

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

Type:

float | None

class ccsds_ndm.AcmPhysicalDescription(comment=None)

ACM Data: Space Object Physical Characteristics Section.

comment

Comments allowed only immediately after the PHYS_START keyword.

Examples: This is a comment.

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

Type:

list[str]

cp

Center-of-pressure vector [x, y, z] in meters.

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

Type:

list[float] | None

cp_ref_frame

Center-of-pressure reference frame.

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

Type:

str | None

drag_coeff

Drag coefficient.

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

Type:

float | None

dry_mass

Dry mass (kg).

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

Type:

float | None

inertia_ref_frame

Inertia reference frame.

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

Type:

str | None

ixx

Moment of inertia IXX.

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

Type:

float | None

ixy

Product of inertia IXY.

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

Type:

float | None

ixz

Product of inertia IXZ.

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

Type:

float | None

iyy

Moment of inertia IYY.

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

Type:

float | None

iyz

Product of inertia IYZ.

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

Type:

float | None

izz

Moment of inertia IZZ.

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

Type:

float | None

wet_mass

Wet mass (kg).

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

Type:

float | None

State Blocks

class ccsds_ndm.AngVelState(ref_frame_a, ref_frame_b, angvel_frame, angvel_x, angvel_y, angvel_z, comment)

Angular velocity vector.

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

angvel_frame

Reference frame in which the components of the angular velocity vector are given. The set of allowed values is described in annex B, subsection B3.

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

Type:

str

angvel_x

Component of the angular velocity vector on the X axis.

Units: deg/s

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

Type:

float

angvel_y

Component of the angular velocity vector on the Y axis.

Units: deg/s

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

Type:

float

angvel_z

Component of the angular velocity vector on the Z axis.

Units: deg/s

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

Type:

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.

Type:

list[str]

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:

str

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:

str