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)
static from_str(data, format=None)
header

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

Type:

AdmHeader

id

The message identifier.

Type:

Optional[str]

segment

ACM Segment.

Type:

AcmSegment

to_file(path, format, validate=True)
to_str(format, validate=True)
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.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=None, international_designator=None, comment=None)

ACM Metadata Section.

acm_data_elements

Included ACM data block elements.

Type:

str | None

catalog_name

Satellite catalog source.

Type:

str | None

center_name

Central body name.

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.

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

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

Type:

str | None

next_leap_epoch

Epoch of the next leap second.

Type:

str | None

next_leap_taimutc

Difference (TAI - UTC) at NEXT_LEAP_EPOCH, seconds.

Type:

float | None

object_designator

Unique object designator in the source catalog.

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

Type:

str

Linked Orbit Data Message identifier.

Type:

str | None

originator_address

Originator point-of-contact address.

Type:

str | None

originator_email

Originator point-of-contact email.

Type:

str | None

originator_phone

Originator point-of-contact phone.

Type:

str | None

originator_poc

Originator point-of-contact.

Type:

str | None

originator_position

Originator point-of-contact position.

Type:

str | None

start_time

Earliest data time in this ACM.

Type:

str | None

stop_time

Latest data time in this ACM.

Type:

str | None

taimutc_at_tzero

Difference (TAI - UTC) at EPOCH_TZERO, seconds.

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

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.

Type:

AcmAttitudeDetermination | None

att

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

Type:

list[AcmAttitudeState]

cov

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

Type:

list[AcmCovarianceMatrix]

man

One or more optional maneuver specification section(s).

Type:

list[AcmManeuverParameters]

phys

A single space object physical characteristics section.

Type:

AcmPhysicalDescription | None

user

A single user-defined Data section.

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

Attitude determination epoch.

Type:

str | None

ad_id

Attitude determination block identifier.

Type:

str | None

ad_method

Attitude determination method.

Type:

str | None

ad_prev_id

Previous attitude determination block identifier.

Type:

str | None

attitude_source

Source of attitude estimate.

Type:

str | None

attitude_states

Attitude state type for estimator.

Type:

str | None

attitude_type

Attitude type keyword.

Type:

str | None

comment

Comments allowed only immediately after the AD_START keyword.

Examples: This is a comment.

Type:

list[str]

cov_type

Covariance type for estimator.

Type:

str | None

number_states

Number of estimator states.

Type:

int | None

rate_process_noise_stddev

Rate process noise standard deviation.

Type:

float | None

rate_states

Rate states type.

Type:

str | None

ref_frame_a

Source reference frame.

Type:

str | None

ref_frame_b

Destination reference frame.

Type:

str | None

sensors

Sensor data blocks.

Type:

list[AcmSensor]

sigma_u

Rate random walk sigma_u.

Type:

float | None

sigma_v

Angle random walk sigma_v.

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.

Type:

str | None

att_basis_id

Basis dataset identifier.

Type:

str | None

att_id

Attitude state block identifier.

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

Type:

list[list[float]]

att_prev_id

Previous attitude state block identifier.

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

Type:

str

comment

Comments allowed only immediately after the ATT_START keyword.

Examples: This is a comment.

Type:

list[str]

euler_rot_seq

Optional Euler rotation sequence.

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

Type:

int

rate_type

Optional rate state type.

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

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

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.

Type:

list[str]

cov_basis

Basis of this covariance time history data.

Examples: PREDICTED, DETERMINED_GND, DETERMINED_OBC, SIMULATED

Type:

str

cov_confidence

Optional covariance confidence.

Type:

float | None

cov_lines

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

Type:

list[list[float]]

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

Type:

str

cov_type

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

Examples: ANGLE, ANGLE_GYROBIAS

Type:

str

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

ACM Data: Maneuver Specification Section.

actuator_used

Actuator used for this maneuver.

Type:

str | None

comment

Comments allowed only immediately after the MAN_START keyword.

Examples: This is a comment.

Type:

list[str]

man_begin_time

Maneuver begin time (relative or absolute epoch string).

Type:

str | None

man_duration

Maneuver duration in seconds.

Type:

float | None

man_end_time

Maneuver end time (relative or absolute epoch string).

Type:

str | None

man_id

Maneuver block identifier.

Type:

str | None

man_prev_id

Previous maneuver block identifier.

Type:

str | None

man_purpose

Maneuver purpose.

Type:

str | None

target_attitude

Target attitude quaternion-like 4-vector.

Type:

list[float] | None

target_mom_frame

Reference frame of target momentum.

Type:

str | None

target_momentum

Target momentum vector [x, y, z].

Type:

list[float] | None

target_spinrate

Target spin rate (deg/s).

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.

Type:

list[str]

cp

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

Type:

list[float] | None

cp_ref_frame

Center-of-pressure reference frame.

Type:

str | None

drag_coeff

Drag coefficient.

Type:

float | None

dry_mass

Dry mass (kg).

Type:

float | None

inertia_ref_frame

Inertia reference frame.

Type:

str | None

ixx

Moment of inertia IXX.

Type:

float | None

ixy

Product of inertia IXY.

Type:

float | None

ixz

Product of inertia IXZ.

Type:

float | None

iyy

Moment of inertia IYY.

Type:

float | None

iyz

Product of inertia IYZ.

Type:

float | None

izz

Moment of inertia IZZ.

Type:

float | None

wet_mass

Wet mass (kg).

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.

Type:

str

angvel_x

Component of the angular velocity vector on the X axis.

Units: deg/s

Type:

float

angvel_y

Component of the angular velocity vector on the Y axis.

Units: deg/s

Type:

float

angvel_z

Component of the angular velocity vector on the Z axis.

Units: deg/s

Type:

float

comment

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

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.

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.

Type:

str