Orbit Comprehensive Message (OCM)¶
- class ccsds_ndm.Ocm(header, segment)¶
Orbit Comprehensive Message (OCM).
An OCM specifies position and velocity of either a single object or an en masse parent/child deployment scenario stemming from a single object. The OCM aggregates and extends OPM, OEM, and OMM content in a single comprehensive hybrid message.
Key features: - Support for single object or parent/child deployment scenarios. - Aggregation of OPM, OMM, and OEM content. - Extensive optional content including physical properties, covariance, maneuvers, and perturbations. - Well-suited for exchanges involving automated interaction and large object catalogs.
- Parameters:
header (OdmHeader) – The message header.
segment (OcmSegment) – The OCM data segment.
- static from_file(path, format=None)¶
Create an OCM message from a file.
- static from_str(data, format=None)¶
Create an OCM message from a string.
- header¶
Orbit Comprehensive Message (OCM).
An OCM specifies position and velocity of either a single object or an en masse parent/child deployment scenario stemming from a single object. The OCM aggregates and extends OPM, OEM, and OMM content in a single comprehensive hybrid message.
Key features: - Support for single object or parent/child deployment scenarios. - Aggregation of OPM, OMM, and OEM content. - Extensive optional content including physical properties, covariance, maneuvers, and perturbations. - Well-suited for exchanges involving automated interaction and large object catalogs.
- Type:
- segment¶
The OCM data segment.
- Type:
- to_file(path, format, validate=True)¶
Write to file.
- to_str(format, validate=True)¶
Serialize to string.
- class ccsds_ndm.OcmSegment(metadata, data)¶
A single segment of the OCM.
Contains metadata and data sections.
- Parameters:
metadata (OcmMetadata) – Segment metadata.
data (OcmData) – Segment data blocks.
- metadata¶
A single segment of the OCM.
Contains metadata and data sections.
- Type:
- class ccsds_ndm.OcmMetadata(*, epoch_tzero, time_system=None, object_name=None, international_designator=None, catalog_name=None, object_designator=None, alternate_names=None, originator_poc=None, originator_position=None, originator_phone=None, originator_email=None, originator_address=None, tech_org=None, tech_poc=None, tech_position=None, tech_phone=None, tech_email=None, tech_address=None, previous_message_id=None, next_message_id=None, adm_msg_link=None, cdm_msg_link=None, prm_msg_link=None, rdm_msg_link=None, tdm_msg_link=None, operator=None, owner=None, country=None, constellation=None, object_type=None, ops_status=None, orbit_category=None, ocm_data_elements=None, sclk_offset_at_epoch=None, sclk_sec_per_si_sec=None, previous_message_epoch=None, next_message_epoch=None, start_time=None, stop_time=None, time_span=None, taimutc_at_tzero=None, next_leap_epoch=None, next_leap_taimutc=None, ut1mutc_at_tzero=None, eop_source=None, interp_method_eop=None, celestial_source=None, comment=None)¶
OCM Metadata Section.
- Parameters:
time_system (str) – Time system that shall be used for all absolute time stamps in the message.
epoch_tzero (str) – Epoch to which all relative times in the message are referenced (ISO 8601).
object_name (str, optional) – Name of the space object that the message is associated with.
international_designator (str, optional) – The COSPAR international designator of the space object.
catalog_name (str, optional) – The name of the satellite catalog used for the space object identification.
object_designator (str, optional) – The unique satellite identification designator used in the specified catalog.
alternate_names (str, optional) – Alternate name(s) by which the space object is known.
originator_poc (str, optional) – Originator Point-of-Contact.
originator_position (str, optional) – Contact position of the originator PoC.
originator_phone (str, optional) – Originator PoC phone number.
originator_email (str, optional) – Originator PoC email address.
originator_address (str, optional) – Originator’s physical address.
tech_org (str, optional) – Technical organization (creating agency or operator).
tech_poc (str, optional) – Technical Point-of-Contact.
tech_position (str, optional) – Contact position of the technical PoC.
tech_phone (str, optional) – Technical PoC phone number.
tech_email (str, optional) – Technical PoC email address.
tech_address (str, optional) – Technical PoC physical address.
previous_message_id (str, optional) – Identifier for the previous OCM message.
next_message_id (str, optional) – Identifier for the anticipated next OCM message.
adm_msg_link (str, optional) – Identifier of linked Attitude Data Message.
cdm_msg_link (str, optional) – Identifier of linked Conjunction Data Message.
prm_msg_link (str, optional) – Identifier of linked Pointing Request Message.
rdm_msg_link (str, optional) – Identifier of linked Reentry Data Message.
tdm_msg_link (str, optional) – Identifier of linked Tracking Data Message.
operator (str, optional) – Operator of the space object.
owner (str, optional) – Owner of the space object.
country (str, optional) – Country of the owner or operator of the space object.
constellation (str, optional) – Name of the constellation the space object belongs to.
object_type (str, optional) – Type of object (PAYLOAD, ROCKET_BODY, DEBRIS, etc.).
ops_status (str, optional) – Operational status of the space object.
orbit_category (str, optional) – Orbit category (LEO, GEO, HEO, etc.).
ocm_data_elements (str, optional) – List of data elements included in the OCM message.
sclk_offset_at_epoch (float, optional) – Spacecraft clock offset at EPOCH_TZERO (s).
sclk_sec_per_si_sec (float, optional) – Spacecraft clock scale factor (s/SI-s).
previous_message_epoch (str, optional) – Epoch of the previous message (ISO 8601).
next_message_epoch (str, optional) – Anticipated epoch of the next message (ISO 8601).
start_time (str, optional) – Time of the earliest data in the message (ISO 8601).
stop_time (str, optional) – Time of the latest data in the message (ISO 8601).
time_span (float, optional) – Approximate time span covered by the data (d).
taimutc_at_tzero (float, optional) – TAI minus UTC difference at EPOCH_TZERO (s).
next_leap_epoch (str, optional) – Epoch of the next leap second (ISO 8601).
next_leap_taimutc (float, optional) – TAI minus UTC difference at NEXT_LEAP_EPOCH (s).
ut1mutc_at_tzero (float, optional) – UT1 minus UTC difference at EPOCH_TZERO (s).
eop_source (str, optional) – Source of Earth Orientation Parameters.
interp_method_eop (str, optional) – Interpolation method for EOP data.
celestial_source (str, optional) – Source of celestial body ephemerides.
comment (list[str], optional) – Comments for the metadata block.
- Variables:
- adm_msg_link¶
Free-text field containing a unique identifier of Attitude Data Message (ADM) (reference [10]) that are linked (relevant) to this Orbit Data Message.
Examples: ADM_MSG_35132.txt, ADM_ID_0572
- Type:
Optional[str]
- alternate_names¶
Free-text comma-delimited field containing alternate name(s) of this space object, including assigned names used by spacecraft operator, State Actors, commercial SSA providers, and/or media.
Examples: SV08, IN8
- Type:
Optional[str]
- catalog_name¶
Free-text field containing the satellite catalog source (or source agency or operator, value to be drawn from the SANA registry list of Space Object Catalogs at <https://sanaregistry.org/r/space_object_catalog>, or alternatively, from the list of organizations listed in the ‘Abbreviation’ column of the SANA Organizations registry at <https://www.sanaregistry.org/r/organizations>) from which ‘OBJECT_DESIGNATOR’ was obtained.
Examples: CSPOC, RFSA, ESA, COMSPOC
- Type:
Optional[str]
- cdm_msg_link¶
Free-text field containing a unique identifier of Conjunction Data Message (CDM) (reference [14]) that are linked (relevant) to this Orbit Data Message.
Examples: CDM_MSG_35132.txt, CDM_ID_8257
- Type:
Optional[str]
- celestial_source¶
Free-text field specifying the source and version of the message originator’s celestial body (e.g., Sun/Earth/Planetary) ephemeris data used in the creation of this message.
Examples: JPL_DE_FILES
- Type:
Optional[str]
- comment¶
Comments (a contiguous set of one or more comment lines may be provided in the OCM Metadata section; see 7.8 for comment formatting rules).
- constellation¶
Free-text field containing the name of the constellation to which this space object belongs.
Examples: SPIRE
- Type:
Optional[str]
- country¶
Free-text field containing the name of the country, country code, or country abbreviation where the space object owner is based.
Examples: US, SPAIN
- Type:
Optional[str]
- eop_source¶
Free-text field specifying the source and version of the message originator’s Earth Orientation Parameters (EOP) used in the creation of this message, including leap seconds, TAI – UT1, etc.
Examples: CELESTRAK_20201028
- Type:
Optional[str]
- epoch_tzero¶
Default epoch to which all relative times are referenced in data blocks (for format specification, see 7.5.10). The time scale of EPOCH_TZERO is controlled via the ‘TIME_SYSTEM’ keyword, with the exception that for the SCLK timescale, EPOCH_TZERO shall be interpreted as being in the UTC timescale. This field is used by all OCM data blocks.
Examples: 2001-11-06T11:17:33
- Type:
- international_designator¶
Free-text field containing an international designator for the object as assigned by the UN Committee on Space Research (COSPAR). Such designator values shall 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. If the object has no international designator or the content is either unknown (uncorrelated) or cannot be disclosed, the value should be set to UNKNOWN (or this keyword omitted). NOTE—The international designator was typically specified by ‘OBJECT_ID’ in the OPM, OMM, and OEM.
Examples: 2000-052A, 1996-068A, 2000-053A, 1996-008A, UNKNOWN
- Type:
Optional[str]
- interp_method_eop¶
Free-text field specifying the method used to select or interpolate sequential EOP data.
Examples: PRECEDING_VALUE, NEAREST_NEIGHBOR, LINEAR, LAGRANGE_ORDER_5
- Type:
Optional[str]
- next_leap_epoch¶
Epoch of next leap second, specified as an absolute time tag.
Examples: 2016-12-31T23:59:60
- Type:
Optional[str]
- next_leap_taimutc¶
Difference (TAI – UTC) in seconds (i.e., total number of leap seconds elapsed since 1958) incorporated by the message originator at epoch ‘NEXT_LEAP_EPOCH’. This keyword should be provided if NEXT_LEAP_EPOCH is supplied.
Units: s
- Type:
Optional[float]
- next_message_epoch¶
Anticipated (or actual) epoch of the next message from this originator for this space object. (For format specification, see 7.5.10.) NOTE—One may provide the next message epoch without supplying the NEXT_MESSAGE_ID, and vice versa.
Examples: 2001-11-07T11:17:33
- Type:
Optional[str]
- next_message_id¶
Free-text field containing an ID that uniquely identifies the next message from this message originator for this space object. The format and content of the message identifier value are at the discretion of the originator. NOTE—One may provide the next message ID without supplying the ‘NEXT_MESSAGE_EPOCH’ keyword, and vice versa.
Examples: OCM 201113719186, ABC-12_35
- Type:
Optional[str]
- object_designator¶
Free-text field specification of the unique satellite identification designator for the object, as reflected in the catalog whose name is ‘CATALOG_NAME’. If the ID is not known (uncorrelated object) or cannot be disclosed, ‘UNKNOWN’ may be used (or this keyword omitted).
Examples: 22444, 18SPCS 18571, 2147483648_04ae[…]d84c, UNKNOWN
- Type:
Optional[str]
- object_name¶
Free-text field containing the name of the object. While there is no CCSDS-based restriction on the value for this keyword, it is recommended to use names from either the UN Office of Outer Space Affairs designator index (reference [3], which include Object name and international designator of the participant), the spacecraft operator, or a State Actor or commercial Space Situational Awareness (SSA) provider maintaining the ‘CATALOG_NAME’ space catalog. If OBJECT_NAME is not listed in reference [3] or the content is either unknown (uncorrelated) or cannot be disclosed, the value should be set to UNKNOWN (or this keyword omitted).
Examples: SPOT-7, ENVISAT, IRIDIUM NEXT-8, INTELSAT G-15, UNKNOWN
- Type:
Optional[str]
- object_type¶
Specification of the type of object. Select from the accepted set of values indicated in annex B, subsection B11.
Examples: PAYLOAD, ROCKET BODY, DEBRIS, UNKNOWN, OTHER
- Type:
Optional[str]
- ocm_data_elements¶
Comma-delimited list of elements of information data blocks included in this message. The order shall be the same as the order of the data blocks in the message. Values shall be confined to the following list: ORB, PHYS, COV, MAN, PERT, OD, and USER. If the OCM contains multiple ORB, COV, or MAN data blocks (as allowed by table 6-1), the corresponding ORB, COV, or MAN entry shall be duplicated to match.
Examples: ORB, ORB, PHYS, COV, MAN, MAN, PERT, OD, USER
- Type:
Optional[str]
- operator¶
Free-text field containing the operator of the space object.
Examples: INTELSAT
- Type:
Optional[str]
- ops_status¶
Specification of the operational status of the space object. Select from the accepted set of values indicated in annex B, subsection B12.
Examples: OPERATIONAL
- Type:
Optional[str]
- orbit_category¶
Specification of the type of orbit. Select from the accepted set of values indicated in annex B, subsection B14.
Examples: GEO, LEO
- Type:
Optional[str]
- originator_address¶
Free-text field containing originator’s physical address information for OCM creator (suggest comma-delimited address lines).
Examples: 5040 Spaceflight Ave., Cocoa Beach, FL, USA, 12345
- Type:
Optional[str]
- originator_email¶
Free-text field containing originator PoC email address.
Examples: JOHN.DOE@SOMEWHERE.ORG
- Type:
Optional[str]
- originator_phone¶
Free-text field containing originator PoC phone number.
Examples: +12345678901
- Type:
Optional[str]
- originator_poc¶
Free-text field containing originator or programmatic Point-of-Contact (POC) for OCM.
Examples: Mr. Rodgers
- Type:
Optional[str]
- originator_position¶
Free-text field containing contact position of the originator PoC.
Examples: Flight Dynamics, Mission Design Lead
- Type:
Optional[str]
- owner¶
Free-text field containing the owner of the space object.
Examples: SIRIUS
- Type:
Optional[str]
- previous_message_epoch¶
Creation epoch of the previous message from this originator for this space object. (For format specification, see 7.5.10.) NOTE—One may provide the previous message epoch without supplying the PREVIOUS_MESSAGE_ID, and vice versa.
Examples: 2001-11-06T11:17:33, 2002-204T15:56:23Z
- Type:
Optional[str]
- previous_message_id¶
Free-text field containing an ID that uniquely identifies the previous message from this message originator for this space object. The format and content of the message identifier value are at the discretion of the originator. NOTE—One may provide the previous message ID without supplying the ‘PREVIOUS_MESSAGE_EPOCH’ keyword, and vice versa.
Examples: OCM 201113719184, ABC-12_33
- Type:
Optional[str]
- prm_msg_link¶
Free-text field containing a unique identifier of Pointing Request Message (PRM) (reference [13]) that are linked (relevant) to this Orbit Data Message.
Examples: PRM_MSG_35132.txt, PRM_ID_6897
- Type:
Optional[str]
- rdm_msg_link¶
Free-text field containing a unique identifier of Reentry Data Message (RDM) (reference [12]) that are linked (relevant) to this Orbit Data Message.
Examples: RDM_MSG_35132.txt, RDM_ID_1839
- Type:
Optional[str]
- sclk_offset_at_epoch¶
Defines the number of spacecraft clock counts existing at EPOCH_TZERO. This is only used if the SCLK timescale is employed by the user.
Units: s
- Type:
Optional[float]
- sclk_sec_per_si_sec¶
Defines the current number of clock seconds occurring during one SI second. It should be noted that this clock rate may vary with time and is the current approximate value. This is only used if the SCLK timescale is employed by the user.
Units: s
- Type:
Optional[float]
- start_time¶
Time of the earliest data contained in the OCM, specified as either a relative or absolute time tag.
Examples: 2001-11-06T00:00:00
- Type:
Optional[str]
- stop_time¶
Time of the latest data contained in the OCM, specified as either a relative or absolute time tag.
Examples: 2001-11-08T00:00:00
- Type:
Optional[str]
- taimutc_at_tzero¶
Difference (TAI – UTC) in seconds (i.e., total number of leap seconds elapsed since 1958) as modeled by the message originator at epoch ‘EPOCH_TZERO’.
Units: s
- Type:
Optional[float]
- tdm_msg_link¶
Free-text string containing a comma-separated list of file name(s) and/or associated identification number(s) of Tracking Data Message (TDM) (reference [9]) observations upon which this OD is based.
Examples: TDM_MSG_37.txt, TDM_835, TDM_836
- Type:
Optional[str]
- tech_address¶
Free-text field containing technical PoC physical address information for OCM creator (suggest comma-delimited address lines).
Examples: 5040 Spaceflight Ave., Cocoa Beach, FL, USA, 12345
- Type:
Optional[str]
- tech_email¶
Free-text field containing technical PoC email address.
Examples: JOHN.DOE@SOMEWHERE.ORG
- Type:
Optional[str]
- tech_org¶
Free-text field containing the creating agency or operator (value should be drawn from the ‘Abbreviation’ column of the SANA Organizations registry at <https://www.sanaregistry.org/r/organizations>).
Examples: NASA, ESA, JAXA
- Type:
Optional[str]
- tech_phone¶
Free-text field containing technical PoC phone number.
Examples: +49615130312
- Type:
Optional[str]
- tech_poc¶
Free-text field containing technical PoC for OCM.
Examples: Maxwell Smart
- Type:
Optional[str]
- tech_position¶
Free-text field containing contact position of the technical PoC.
Examples: Flight Dynamics, Mission Design Lead
- Type:
Optional[str]
- time_span¶
Span of time that the OCM covers, measured in days. TIME_SPAN is defined as (STOP_TIME-START_TIME), measured in days, irrespective of whether START_TIME or STOP_TIME are provided by the message creator.
Units: d
- Type:
Optional[float]
- time_system¶
Time system for all absolute time stamps in this OCM including EPOCH_TZERO. Select from the accepted set of values indicated in annex B, subsection B3. This field is used by all OCM data blocks. If the SCLK timescale is selected, then ‘EPOCH_TZERO’ shall be interpreted as the spacecraft clock epoch and both SCLK_OFFSET_AT_EPOCH and SCLK_SEC_PER_SI_SEC shall be supplied.
Examples: UTC
- Type:
- class ccsds_ndm.OcmData¶
OCM Data Section.
This struct is the primary data container for the OCM. It holds all the different data blocks, such as trajectory, physical properties, covariance, maneuvers, and other related information.
- cov¶
List of covariance time history blocks.
- Type:
- man¶
List of maneuver specifications.
- Type:
- od¶
Orbit determination data.
- Type:
Optional[OcmOdParameters]
- pert¶
Perturbation parameters.
- Type:
Optional[OcmPerturbations]
- phys¶
Space object physical characteristics.
- Type:
Optional[OcmPhysicalDescription]
- traj¶
List of trajectory state time history blocks.
- Type:
- user¶
User-defined parameters.
- Type:
UserDefined | None
- class ccsds_ndm.OcmTrajState(*, center_name, traj_ref_frame, traj_type, traj_lines, traj_id=None, traj_prev_id=None, traj_next_id=None, traj_basis=None, traj_basis_id=None, interpolation=None, interpolation_degree=None, propagator=None, traj_frame_epoch=None, useable_start_time=None, useable_stop_time=None, orb_revnum=None, orb_revnum_basis=None, orb_averaging=None, traj_units=None, comment=None)¶
A block of trajectory state data, which can be a time history of states.
- Parameters:
center_name (str) – Origin of the orbit reference frame.
traj_ref_frame (str) – Reference frame of the trajectory state time history.
traj_type (str) – Specifies the trajectory state element set type.
traj_lines (list[TrajLine]) – Contiguous set of trajectory state data lines.
traj_id (str, optional) – Identification number for this trajectory state time history block.
traj_prev_id (str, optional) – Identification number for the previous trajectory state time history.
traj_next_id (str, optional) – Identification number for the next trajectory state time history.
traj_basis (str, optional) – The basis of this trajectory state time history data (PREDICTED, DETERMINED, etc.).
traj_basis_id (str, optional) – Identification number for the telemetry dataset, orbit determination, or simulation.
interpolation (str, optional) – Recommended interpolation method for the ephemeris data.
interpolation_degree (int, optional) – Recommended interpolation degree.
propagator (str, optional) – Name of the orbit propagator used to create this trajectory state time history.
traj_frame_epoch (str, optional) – Epoch of the orbit data reference frame, if not intrinsic to the definition.
useable_start_time (str, optional) – Start time of the useable time span covered by the ephemeris data.
useable_stop_time (str, optional) – Stop time of the useable time span covered by the ephemeris data.
orb_revnum (float, optional) – The integer orbit revolution number associated with the first trajectory state.
orb_revnum_basis (str, optional) – Specifies the message creator’s basis for their orbit revolution counter (0 or 1).
orb_averaging (str, optional) – Specifies whether the orbit elements are osculating elements or mean elements.
traj_units (str, optional) – Comma-delimited set of SI unit designations for the trajectory state elements.
- center_name¶
Origin of the orbit reference frame, which may be a natural solar system body (planets, asteroids, comets, and natural satellites), including any planet barycenter or the solar system barycenter, or another reference frame center (such as a spacecraft, formation flying reference ‘chief’ spacecraft, etc.). Natural bodies shall be selected from the accepted set of values indicated in annex B, subsection B2. For spacecraft, it is recommended to use either the ‘OBJECT_NAME’ or ‘INTERNATIONAL_DESIGNATOR’ of the participant as catalogued in the UN Office of Outer Space Affairs designator index (reference [3]). Alternately, the ‘OBJECT_DESIGNATOR’ may be used. For other reference frame origins, this field is a free-text descriptor which may draw upon other naming conventions and sources.
Examples: EARTH, MOON, ISS, EROS
- Type:
- comment¶
Comments (a contiguous set of one or more comment lines may be provided in the Trajectory State Time History section only immediately after the TRAJ_START keyword; see 7.8 for comment formatting rules).
- interpolation¶
This keyword may be used to specify the recommended interpolation method for ephemeris data in the immediately following set of ephemeris lines. PROPAGATE indicates that orbit propagation is the preferred method to obtain states at intermediate times, via either a midpoint-switching or endpoint switching approach.
Examples: HERMITE, LINEAR, LAGRANGE, PROPAGATE
- Type:
Optional[str]
- interpolation_degree¶
Recommended interpolation degree for ephemeris data in the immediately following set of ephemeris lines. Must be an integer value. This keyword must be provided if the ‘INTERPOLATION’ keyword is used and set to anything other than PROPAGATE.
Examples: 5, 1
- Type:
Optional[int]
- orb_averaging¶
If orbital elements are provided, specifies whether those elements are osculating elements or mean elements, and if mean elements, which mean element definition is employed. The intent of this field is to allow the user to correctly interpret how to use the provided orbit elements and know how to use them operationally. This field is not required if one of the orbital element types selected by the “TRAJ_TYPE” keyword is Cartesian (e.g., CARTP, CARTPV, or CARTPVA) or spherical elements (e.g., LDBARV, ADBARV, or GEODETIC). Values should be selected from the accepted set indicated in annex B, subsection B13. If an alternate single- or double-averaging formulation other than that provided is used, the user may name it as mutually agreed upon by message exchange participants.
Examples: OSCULATING, BROUWER, KOZAI
- Type:
Optional[str]
- orb_revnum¶
The integer orbit revolution number associated with the first trajectory state in this trajectory state time history block. NOTE—The first ascending node crossing that occurs AFTER launch or deployment is designated to be the beginning of orbit revolution number = one (‘1’).
Examples: 1500, 30007
- Type:
Optional[float]
- orb_revnum_basis¶
Specifies the message creator’s basis for their orbit revolution counter, with ‘0’, designating that the first launch or deployment trajectory state corresponds to a revolution number of 0.XXXX, where XXXX represents the fraction of an orbit revolution measured from the equatorial plane, and orbit revolution 1.0 begins at the very next (subsequent) ascending node passage; ‘1’, designating that the first launch or deployment trajectory state corresponds to a revolution number of 1.XXXX, and orbit revolution 2.0 begins at the very next ascending node passage. This keyword shall be provided if ORB_REVNUM is specified.
Examples: 0, 1
- Type:
Optional[str]
- propagator¶
Free-text field containing the name of the orbit propagator used to create this trajectory state time history.
Examples: HPOP, SP, SGP4
- Type:
Optional[str]
- traj_basis¶
The basis of this trajectory state time history data. This is a free-text field with the following suggested values: a) ‘PREDICTED’. b) ‘DETERMINED’ when estimated from observation-based orbit determination, reconstruction, and/or calibration. For definitive OD performed onboard spacecraft whose solutions have been telemetered to the ground for inclusion in an OCM, the TRAJ_BASIS shall be DETERMINED. c) ‘TELEMETRY’ when the trajectory states are read directly from telemetry, for example, based on inertial navigation systems or GNSS data. d) ‘SIMULATED’ for generic simulations, future mission design studies, and optimization studies. e) ‘OTHER’ for other bases of this data.
Examples: PREDICTED
- Type:
Optional[str]
- traj_basis_id¶
Free-text field containing the identification number for the telemetry dataset, orbit determination, navigation solution, or simulation upon which this trajectory state time history block is based. When a matching orbit determination block accompanies this trajectory state time history, the TRAJ_BASIS_ID should match the corresponding OD_ID (see table 6-11).
Examples: OD_5910
- Type:
Optional[str]
- traj_frame_epoch¶
Epoch of the orbit data reference frame, if not intrinsic to the definition of the reference frame. (See 7.5.10 for formatting rules.)
Examples: 2001-11-06T11:17:33, 2002-204T15:56:23Z
- Type:
Optional[str]
- traj_id¶
Free-text field containing the identification number for this trajectory state time history block.
Examples: TRAJ_20160402_XYZ
- Type:
Optional[str]
- traj_next_id¶
Free-text field containing the identification number for the next trajectory state time history, contained either within this message, or presented in a future OCM. NOTE—If this message is not part of a sequence of orbit time histories or if this trajectory state time history is the last in a sequence of orbit time histories, then TRAJ_NEXT_ID should be excluded from this message.
Examples: ORB20160305C
- Type:
Optional[str]
- traj_prev_id¶
Free-text field containing the identification number for the previous trajectory state time history, contained either within this message or presented in a previous OCM. NOTE—If this message is not part of a sequence of orbit time histories or if this trajectory state time history is the first in a sequence of orbit time histories, then TRAJ_PREV_ID should be excluded from this message.
Examples: ORB20160305A
- Type:
Optional[str]
- traj_ref_frame¶
Reference frame of the trajectory state time history. Select from the accepted set of values indicated in annex B, subsection B4.
Examples: ICRF3, J2000
- Type:
- traj_type¶
Specifies the trajectory state type; selected per annex B, subsection B7.
Examples: CARTP, CARTPV
- Type:
- traj_units¶
A comma-delimited set of SI unit designations for each element of the trajectory state time history following the trajectory state time tag solely for informational purposes, provided as a free-text field enclosed in square brackets. When provided, each trajectory state element shall have a corresponding units entry, with non-dimensional values (such as orbit eccentricity) denoted by ‘n/a’. NOTE—The listing of units via the TRAJ_UNITS keyword does not override the mandatory units specified for the selected TRAJ_TYPE (links to the relevant SANA registries provided in annex B, subsection B7).
Examples: [km,km,km,km/s,km/s,km/s], [km,n/a,deg, deg, deg, deg]
- Type:
Optional[str]
- useable_start_time¶
Start time of USEABLE time span covered by ephemeris data immediately following this metadata block. (For format specification, see 7.5.10.) NOTES 1. This optional keyword allows the message creator to introduce fictitious (but numerically smooth) data nodes following the actual data time history to support interpolation methods requiring more than two nodes (e.g., pure higher-order Lagrange interpolation methods). The use of this keyword and introduction of fictitious node points are optional and may not be necessary. 2. If this keyword is not supplied, then all data shall be assumed to be valid.
Examples: 1996-12-18T14:28:15.1172, 1996-277T07:22:54
- Type:
Optional[str]
- useable_stop_time¶
Stop time of USEABLE time span covered by ephemeris data immediately following this metadata block. (For format specification, see 7.5.10.) NOTES 1. This optional keyword allows the message creator to introduce fictitious (but numerically smooth) data nodes following the actual data time history to support interpolation methods requiring more than two nodes (e.g., pure higher-order Lagrange interpolation methods). The use of this keyword and introduction of fictitious node points are optional and may not be necessary. 2. If this keyword is not supplied, then all data shall be assumed to be valid.
Examples: 1996-12-18T14:28:15.1172, 1996-277T07:22:54
- Type:
Optional[str]
- class ccsds_ndm.TrajLine(*, epoch, values)¶
A single line in a trajectory state time history.
- Parameters:
- class ccsds_ndm.OcmPhysicalDescription(*, manufacturer=None, bus_model=None, docked_with=None, drag_const_area=None, drag_coeff_nom=None, drag_uncertainty=None, initial_wet_mass=None, wet_mass=None, dry_mass=None, oeb_parent_frame=None, oeb_parent_frame_epoch=None, oeb_q1=None, oeb_q2=None, oeb_q3=None, oeb_qc=None, oeb_max=None, oeb_int=None, oeb_min=None, area_along_oeb_max=None, area_along_oeb_int=None, area_along_oeb_min=None, area_min_for_pc=None, area_max_for_pc=None, area_typ_for_pc=None, rcs=None, rcs_min=None, rcs_max=None, srp_const_area=None, solar_rad_coeff=None, solar_rad_uncertainty=None, vm_absolute=None, vm_apparent_min=None, vm_apparent=None, vm_apparent_max=None, reflectance=None, att_control_mode=None, att_actuator_type=None, att_knowledge=None, att_control=None, att_pointing=None, avg_maneuver_freq=None, max_thrust=None, dv_bol=None, dv_remaining=None, ixx=None, iyy=None, izz=None, ixy=None, ixz=None, iyz=None, comment=None)¶
Space Object Physical Characteristics.
- Parameters:
- area_along_oeb_int¶
Attitude-dependent cross-sectional area of space object (not already included in DRAG_CONST_AREA and SRP_CONST_AREA) when viewed along intermediate OEB (Ŷoeb) direction as defined in annex F.
Examples: 0.3
Units: m²
- Type:
Optional[float]
- area_along_oeb_max¶
Attitude-dependent cross-sectional area of space object (not already included in DRAG_CONST_AREA and SRP_CONST_AREA) when viewed along max OEB (Xoeb) direction as defined in annex F.
Examples: 0.15
Units: m²
- Type:
Optional[float]
- area_along_oeb_min¶
Attitude-dependent cross-sectional area of space object (not already included in DRAG_CONST_AREA and SRP_CONST_AREA) when viewed along minimum OEB (Ẑoeb) direction as defined in annex F.
Examples: 0.5
Units: m²
- Type:
Optional[float]
- area_max_for_pc¶
Maximum cross-sectional area for collision probability estimation purposes.
Examples: 1.0
Units: m²
- Type:
Optional[float]
- area_min_for_pc¶
Minimum cross-sectional area for collision probability estimation purposes.
Examples: 1.0
Units: m²
- Type:
Optional[float]
- area_typ_for_pc¶
Typical (50th percentile) cross-sectional area sampled over all space object orientations for collision probability estimation purposes.
Units: m²
- Type:
Optional[float]
- att_actuator_type¶
Free-text specification of type of actuator for attitude control. Suggested examples include: ATT_THRUSTERS, ACTIVE_MAG_TORQUE, PASSIVE_MAG_TORQUE, REACTION_WHEELS, MOMENTUM_WHEELS, CONTROL_MOMENT_GYROSCOPE, NONE, OTHER
Examples: ATT_THRUSTERS
- Type:
Optional[str]
- att_control¶
Accuracy of attitude control system (ACS) to maintain attitude, assuming attitude knowledge was perfect (i.e., deadbands).
Examples: 2.0
Units: deg
- Type:
Optional[float]
- att_control_mode¶
Free-text specification of primary mode of attitude control for the space object. Suggested examples include: THREE_AXIS, SPIN, DUAL_SPIN, TUMBLING, GRAVITY_GRADIENT
Examples: SPIN
- Type:
Optional[str]
- att_pointing¶
Overall accuracy of spacecraft to maintain attitude, including attitude knowledge errors and ACS operation.
Examples: 2.3
Units: deg
- Type:
Optional[float]
- avg_maneuver_freq¶
Average maneuver frequency, measured in the number of orbit- or attitude-adjust maneuvers per year.
Examples: 20.0
Units: #/yr
- Type:
Optional[float]
- bus_model¶
Free-text field containing the satellite manufacturer’s spacecraft bus model name.
Examples: 702
- Type:
Optional[str]
- comment¶
Comments (a contiguous set of one or more comment lines may be provided in the OCM Space Object Physical Characteristics only immediately after the PHYS_START keyword; see 7.8 for comment formatting rules).
- docked_with¶
Free-text field containing a comma-separated list of other space objects that this object is docked to.
Examples: ISS
- Type:
Optional[str]
- drag_coeff_nom¶
Nominal drag Coefficient (CD Nom). If the atmospheric drag coefficient, CD, is set to zero, no atmospheric drag shall be considered.
Examples: 2.2
- Type:
Optional[float]
- drag_const_area¶
Attitude-independent drag cross-sectional area (AD) facing the relative wind vector, not already incorporated into the attitude-dependent ‘AREA_ALONG_OEB’ parameters.
Examples: 2.5
Units: m²
- Type:
Optional[float]
- drag_uncertainty¶
Drag coefficient one sigma (1σ) percent uncertainty, where the actual range of drag coefficients to within 1σ shall be obtained from [1.0 ± DRAG_UNCERTAINTY/100.0] * (CD Nom). This factor is intended to allow operators to supply the nominal ballistic coefficient components while accommodating ballistic coefficient uncertainties.
Examples: 10.0
Units: %
- Type:
Optional[float]
- dv_bol¶
Total ΔV capability of the spacecraft at beginning of life.
Examples: 1.0
Units: km/s
- Type:
Optional[float]
- dv_remaining¶
Total ΔV remaining for the spacecraft.
Examples: 0.2
Units: km/s
- Type:
Optional[float]
- initial_wet_mass¶
Space object total mass at beginning of life.
Examples: 500
Units: kg
- Type:
Optional[float]
- ixx¶
Moment of Inertia about the X-axis of the space object’s primary body frame (e.g., SC_Body_1) (see reference [H1]).
Examples: 1000.0
Units: kg·m²
- Type:
Optional[float]
- manufacturer¶
Free-text field containing the satellite manufacturer’s name.
Examples: BOEING
- Type:
Optional[str]
- max_thrust¶
Maximum composite thrust the spacecraft can accomplish in any single body-fixed direction.
Examples: 1.0
Units: N
- Type:
Optional[float]
- oeb_int¶
Intermediate physical dimension (along Ŷoeb) of OEB normal to OEB_MAX direction.
Examples: 0.5
Units: m
- Type:
Optional[float]
- oeb_max¶
Maximum physical dimension (along Xoeb) of the OEB.
Examples: 1
Units: m
- Type:
Optional[float]
- oeb_min¶
Minimum physical dimension (along Ẑoeb) of OEB in direction normal to both OEB_MAX and OEB_INT directions.
Examples: 0.3
Units: m
- Type:
Optional[float]
- oeb_parent_frame¶
Parent reference frame that maps to the OEB frame via the quaternion-based transformation defined in annex F, subsection F1. Select from the accepted set of values indicated in B, subsections B4 and B5. This keyword shall be provided if OEB_Q1,2,3,4 are specified.
Examples: ITRF1997
- Type:
Optional[str]
- oeb_parent_frame_epoch¶
Epoch of the OEB parent frame, if OEB_PARENT_FRAME is provided and its epoch is not intrinsic to the definition of the reference frame. (See 7.5.10 for formatting rules.)
Examples: 2001-11-06T11:17:33, 2002-204T15:56:23Z
- Type:
Optional[str]
- oeb_q1¶
q1 = e1 * sin(φ/2), where per reference [H1], φ = Euler rotation angle and e1 = 1st component of Euler rotation axis for the rotation that maps from the OEB_PARENT_FRAME (defined above) to the frame aligned with the OEB (defined in annex F, subsection F1). A value of ‘-999’ denotes a tumbling space object.
Examples: -0.575131822
- Type:
Optional[float]
- oeb_q2¶
q2 = e2 * sin(φ/2), where per reference [H1], φ = Euler rotation angle and e2 = 2nd component of Euler rotation axis for the rotation that maps from the OEB_PARENT_FRAME (defined above) to the frame aligned with the Optimally Encompassing Box (defined in annex F, subsection F1). A value of ‘-999’ denotes a tumbling space object.
Examples: -0.280510532
- Type:
Optional[float]
- oeb_q3¶
q3 = e3 * sin(φ/2), where per reference [H1], φ = Euler rotation angle and e3 = 3rd component of Euler rotation axis for the rotation that maps from the OEB_PARENT_FRAME (defined above) to the frame aligned with the Optimally Encompassing Box (defined in annex F, subsection F1). A value of ‘-999’ denotes a tumbling space object.
Examples: -0.195634856
- Type:
Optional[float]
- oeb_qc¶
qc = cos(φ/2), where per reference [H1], φ = the Euler rotation angle for the rotation that maps from the OEB_PARENT_FRAME (defined above) to the frame aligned with the Optimally Encompassing Box (annex F, subsection F1). qc shall be made non-negative by convention. A value of ‘-999’ denotes a tumbling space object.
Examples: 0.743144825
- Type:
Optional[float]
- rcs¶
Typical (50th percentile) effective Radar Cross Section of the space object sampled over all possible viewing angles.
Units: m²
- Type:
Optional[float]
- reflectance¶
Typical (50th percentile) coefficient of REFLECTANCE of the space object over all possible viewing angles, ranging from 0 (none) to 1 (perfect reflectance).
Examples: 0.7
- Type:
Optional[float]
- solar_rad_coeff¶
Nominal Solar Radiation Pressure Coefficient (CR NOM). If the solar radiation coefficient, CR, is set to zero, no solar radiation pressure shall be considered.
- Type:
Optional[float]
- solar_rad_uncertainty¶
SRP one sigma (1σ) percent uncertainty, where the actual range of SRP coefficients to within 1σ shall be obtained from [1.0 ± 0.01*SRP_UNCERTAINTY] (CR NOM). This factor is intended to allow operators to supply the nominal ballistic coefficient components while accommodating ballistic coefficient uncertainties.
Units: %
- Type:
Optional[float]
- srp_const_area¶
Attitude-independent solar radiation pressure cross-sectional area (AR) facing the Sun, not already incorporated into the attitude-dependent ‘AREA_ALONG_OEB’ parameters.
Units: m²
- Type:
Optional[float]
- vm_absolute¶
Typical (50th percentile) Visual Magnitude of the space object sampled over all possible viewing angles and sampled over all possible viewing angles and ‘normalized’ as specified in informative annex F, subsection F2 to a 1 AU Sun-to-target distance, a phase angle of 0°, and a 40,000 km target-to-sensor distance (equivalent of GEO satellite tracked at 15.6° above local horizon).
Examples: 15.0
- Type:
Optional[float]
- vm_apparent¶
Typical (50th percentile) apparent Visual Magnitude observed for this space object.
Examples: 15.0
- Type:
Optional[float]
- vm_apparent_max¶
Maximum apparent Visual Magnitude observed for this space object. NOTE—The ‘MAX’ value represents the brightest observation, which associates with a lower Vmag.
Examples: 16.0
- Type:
Optional[float]
- class ccsds_ndm.OcmManeuverParameters(*, man_id, man_device_id, man_composition, man_ref_frame, man_lines, man_prev_id=None, man_next_id=None, man_basis=None, man_basis_id=None, man_prev_epoch=None, man_next_epoch=None, man_purpose=None, man_pred_source=None, man_frame_epoch=None, grav_assist_name=None, dc_type=None, dc_win_open=None, dc_win_close=None, dc_min_cycles=None, dc_max_cycles=None, dc_exec_start=None, dc_exec_stop=None, dc_ref_time=None, dc_time_pulse_duration=None, dc_time_pulse_period=None, dc_ref_dir=None, dc_body_frame=None, dc_body_trigger=None, dc_pa_start_angle=None, dc_pa_stop_angle=None, man_units=None, comment=None)¶
OCM Maneuver Parameters.
- Parameters:
man_id (str) – Identifier for the maneuver block.
man_device_id (str) – Identifier for the maneuver device (e.g., thruster name).
man_composition (str) – Specifies the maneuver composition (e.g., ‘VECTOR’, ‘SCALAR’).
man_ref_frame (str) – Reference frame for the maneuver data.
man_lines (list of ManLine) – A list of maneuver data lines.
man_prev_id (str, optional) – Identifier for the previous maneuver block for this space object.
man_next_id (str, optional) – Identifier for the next maneuver block for this space object.
man_basis (str, optional) – Basis of the maneuver data (‘Observed’, ‘Predicted’, etc.).
man_basis_id (str, optional) – Identifier for the orbit determination or simulation basis.
man_prev_epoch (str, optional) – Epoch of the previous maneuver.
man_next_epoch (str, optional) – Epoch of the next maneuver.
man_purpose (str, optional) – Purpose of the maneuver.
man_pred_source (str, optional) – Source of the predicted maneuver data.
man_frame_epoch (str, optional) – Epoch of the maneuver reference frame.
grav_assist_name (str, optional) – Name of the gravity assist body.
dc_type (str, optional) – Type of duty cycle (‘Continuous’, ‘Impulsive’, ‘Duration’).
man_units (str, optional) – SI unit designations for the maneuver elements.
comment (list of str, optional) – Comments for this maneuver block.
- comment¶
Comments (a contiguous set of one or more comment lines may be provided in the OCM Maneuver Specification only immediately after the MAN_START keyword; see 7.8 for comment formatting rules).
- dc_body_frame¶
For phase angle thruster duty cycles (DC_TYPE=TIME_AND_ANGLE); specifies the body reference frame in which DC_BODY_TRIGGER will be specified. Select from the accepted set of values indicated in annex B, subsection B6. This keyword shall be set if DC_TYPE = ‘TIME_AND_ANGLE’.
- Type:
Optional[str]
- dc_body_trigger¶
For phase angle thruster duty cycles (DC_TYPE=TIME_AND_ANGLE); specifies the body frame reference vector direction in the ‘DC_BODY_FRAME’ reference frame at which, when its projection onto the spin plane crosses the corresponding projection of DC_REF_DIR onto the spin plane, this angle-based duty cycle is initiated (see DC_PA_START_ANGLE for phasing). This tripartite value shall be provided if DC_TYPE = ‘TIME_AND_ANGLE’.
- dc_exec_start¶
Start time of the initial duty cycle-based maneuver sequence execution. DC_EXEC_START is defined to occur on or prior to the first maneuver ‘ON’ portion within the duty cycle sequence. DC_EXEC_START must be scheduled to occur coincident with or after DC_WIN_OPEN. This keyword shall be set if DC_TYPE ≠ ‘CONTINUOUS’.
- Type:
Optional[str]
- dc_exec_stop¶
End time of the final duty cycle-based maneuver sequence execution. DC_EXEC_STOP typically occurs on or after the end of the final maneuver ‘ON’ portion within the duty cycle sequence. DC_EXEC_STOP must be scheduled to occur coincident with or prior to DC_WIN_CLOSE. This keyword shall be set if DC_TYPE ≠ ‘CONTINUOUS’.
- Type:
Optional[str]
- dc_max_cycles¶
Maximum number of ‘ON’ duty cycles (may override DC_EXEC_STOP). This value is optional even if DC_TYPE = ‘CONTINUOUS’.
- Type:
Optional[int]
- dc_min_cycles¶
Minimum number of ‘ON’ duty cycles (may override DC_EXEC_STOP). This value is optional even if DC_TYPE = ‘CONTINUOUS’.
- Type:
Optional[int]
- dc_pa_start_angle¶
For phase angle thruster duty cycles (DC_TYPE=TIME_AND_ANGLE); specifies the phase angle offset of thruster pulse start, measured with respect to the occurrence of a DC_BODY_TRIGGER crossing of the DC_REF_DIR direction when both are projected into the spin plane (normal to the body spin axis). This phase angle offset can be positive or negative to allow the duty cycle to begin prior to the next crossing of the DC_REF_DIR. As this angular direction is to be used in a modulo sense, there is no requirement for the magnitude of the phase angle offset to be less than 360 degrees. This keyword shall be set if DC_TYPE = ‘TIME_AND_ANGLE’.
Units: deg
- Type:
Optional[float]
- dc_pa_stop_angle¶
For phase angle thruster duty cycles (DC_TYPE=TIME_AND_ANGLE); specifies the phase angle of thruster pulse stop, measured with respect to the DC_BODY_TRIGGER crossing of the DC_REF_DIR direction when both are projected into the spin plane. This phase angle offset can be positive or negative to allow the duty cycle to end after to the next crossing of the DC_REF_DIR. As this angular direction is to be used in a modulo sense, there is no requirement for the magnitude of the phase angle offset to be less than 360 degrees. This keyword shall be set if DC_TYPE = ‘TIME_AND_ANGLE’.
Units: deg
- Type:
Optional[float]
- dc_ref_dir¶
For phase angle thruster duty cycles (DC_TYPE=TIME_AND_ANGLE); specifies the reference vector direction in the ‘MAN_REF_FRAME’ reference frame at which, when mapped into the space object’s spin plane (normal to the spin axis), the duty cycle is triggered (see DC_PA_START_ANGLE for phasing). This (tripartite, or three-element vector) value shall be provided if DC_TYPE = ‘TIME_AND_ANGLE’. This reference direction does not represent the duty cycle midpoint.
- dc_ref_time¶
Reference time for the THRUST duty cycle, specified as either time in seconds (relative to EPOCH_TZERO), or as an absolute ‘<epoch>’ (see 7.5.10 for formatting rules). NOTE—Depending upon EPOCH_TZERO, DC_REF_TIME relative times may be negative. This keyword shall be set if DC_TYPE ≠ ‘CONTINUOUS’.
- Type:
Optional[str]
- dc_time_pulse_duration¶
Thruster pulse ‘ON’ duration, initiated at first satisfaction of the burn ‘ON’ time constraint or upon completion of the previous DC_TIME_PULSE_PERIOD cycle. This keyword shall be set if DC_TYPE ≠ ‘CONTINUOUS’.
Units: s
- Type:
Optional[float]
- dc_time_pulse_period¶
Elapsed time between the start of one pulse and the start of the next. Must be greater than or equal to DC_TIME_PULSE_DURATION. This keyword shall be set if DC_TYPE ≠ ‘CONTINUOUS’.
Units: s
- Type:
Optional[float]
- dc_type¶
CONTINUOUS denotes full/continuous thrust <default>; TIME denotes a time-based duty cycle driven by time past a reference time and the duty cycle ON and OFF durations; TIME_AND_ANGLE denotes a duty cycle driven by the phasing/clocking of a space object body frame ‘trigger’ direction past a reference direction.
- Type:
- Type:
Duty cycle type to use for this maneuver time history section
- dc_win_close¶
End time of the duty cycle-based maneuver window that occurs on or after the actual maneuver execution end time. For example, this may identify the time at which the satellite is taken out of a special duty-cycle-based maneuver mode. This keyword shall be set if DC_TYPE ≠ ‘CONTINUOUS’.
- Type:
Optional[str]
- dc_win_open¶
Start time of the duty cycle-based maneuver window that occurs on or prior to the actual maneuver execution start time. For example, this may identify the time at which the satellite is first placed into a special duty-cycle-based maneuver mode. This keyword shall be set if DC_TYPE ≠ ‘CONTINUOUS’.
- Type:
Optional[str]
- grav_assist_name¶
Origin of maneuver gravitational assist body, which may be a natural solar system body (planets, asteroids, comets, and natural satellites), including any planet barycenter or the solar system barycenter. (See annex B, subsection B2, for acceptable GRAV_ASSIST_NAME values and the procedure to propose new values.)
- Type:
Optional[str]
- man_basis¶
Basis of this maneuver time history data, which shall be selected from one of the following values: ‘CANDIDATE’ for a proposed operational or a hypothetical (i.e., mission design and optimization studies) future maneuver, ‘PLANNED’ for a currently planned future maneuver, ‘ANTICIPATED’ for a non-cooperative future maneuver that is anticipated (i.e., likely) to occur (e.g., based upon patterns-of-life analysis), ‘TELEMETRY’ when the maneuver is determined directly from telemetry (e.g., based on inertial navigation systems or accelerometers), ‘DETERMINED’ when a past maneuver is estimated from observation-based orbit determination reconstruction and/or calibration, ‘SIMULATED’ for generic maneuver simulations, future mission design studies, and optimization studies, ‘OTHER’ for other bases of this data.
- Type:
Optional[str]
- man_basis_id¶
Free-text field containing the identification number for the orbit determination, navigation solution, or simulation upon which this maneuver time history block is based. Where a matching orbit determination block accompanies this maneuver time history, the MAN_BASIS_ID should match the corresponding OD_ID (see table 6-11).
- Type:
Optional[str]
- man_composition¶
The comma-delimited ordered set of maneuver elements of information contained on every maneuver time history line, with values selected from table 6-8. Within this maneuver data section, the maneuver composition shall include only one TIME specification (TIME_ABSOLUTE or TIME_RELATIVE).
- Type:
- man_device_id¶
Free-text field containing the maneuver device identifier used for this maneuver. ‘ALL’ indicates that this maneuver represents the summed acceleration, velocity increment, or thrust imparted by any/all thrusters utilized in the maneuver.
- Type:
- man_frame_epoch¶
Epoch of the maneuver data reference frame, if not intrinsic to the definition of the reference frame. (See 7.5.10 for formatting rules.)
- Type:
Optional[str]
- man_id¶
Free-text field containing the unique maneuver identification number for this maneuver. All supplied maneuver ‘constituents’ within the same MAN_BASIS and MAN_REF_FRAME categories shall be added together to represent the total composite maneuver description.
- Type:
- man_next_epoch¶
Identifies the start time of the next maneuver for this MAN_BASIS.
- Type:
Optional[str]
- man_next_id¶
Free-text field containing the identification number of the next maneuver for this MAN_BASIS, contained either within this message, or presented in a future OCM. If this message is not part of a sequence of maneuver messages or if this maneuver is the last in a sequence of maneuvers, then MAN_NEXT_ID should be excluded from this message.
- Type:
Optional[str]
- man_pred_source¶
For future maneuvers, specifies the source of the orbit and/or attitude state(s) upon which the maneuver is based. While there is no CCSDS-based restriction on the value for this free-text keyword, it is suggested to consider using TRAJ_ID and OD_ID keywords as described in tables 6-4 and 6-11, respectively, or a combination thereof.
- Type:
Optional[str]
- man_prev_epoch¶
Identifies the completion time of the previous maneuver for this MAN_BASIS.
- Type:
Optional[str]
- man_prev_id¶
Free-text field containing the identification number of the previous maneuver for this MAN_BASIS, contained either within this message, or presented in a previous OCM. If this message is not part of a sequence of maneuver messages or if this maneuver is the first in a sequence of maneuvers, then MAN_PREV_ID should be excluded from this message.
- Type:
Optional[str]
- man_purpose¶
A free-text field used to specify the intention(s) of the maneuver. Multiple maneuver purposes can be provided as a comma-delimited list.
- Type:
Optional[str]
- man_ref_frame¶
Reference frame in which all maneuver vector direction data is provided in this maneuver data block. Select from the accepted set of values indicated in annex B, subsections B4 and B5. The reference frame must be the same for all data elements within a given maneuver time history block.
- Type:
- man_units¶
A comma-delimited set of SI unit designations for each and every element of the maneuver time history following the maneuver time tag(s), solely for informational purposes, provided as a free-text field enclosed in square brackets. When MAN_UNITS is provided, all elements of MAN_COMPOSITION AFTER the maneuver time tag(s) must have a corresponding units entry; percentages shall be denoted by ‘%’, and control switches, non-dimensional values, and text strings shall be labelled as ‘n/a’. NOTE—The listing of units via the MAN_UNITS keyword does not override the mandatory units for the selected MAN_COMPOSITION, as specified in table 6-8 or table 6-9.
- Type:
Optional[str]
- class ccsds_ndm.ManLine(*, epoch, values)¶
A single line in a maneuver time history.
- class ccsds_ndm.OcmCovarianceMatrix(*, cov_ref_frame, cov_type, cov_ordering, cov_lines, cov_id=None, cov_prev_id=None, cov_next_id=None, cov_basis=None, cov_basis_id=None, cov_frame_epoch=None, cov_scale_min=None, cov_scale_max=None, cov_confidence=None, cov_units=None, comment=None)¶
OCM Covariance Matrix.
- Parameters:
epoch (str)
matrix. (Epoch of the covariance)
(Mandatory)
- cov_ref_framestr
Reference frame for the covariance matrix. (Mandatory)
- cov_typestr
Specifies the covariance element set type. (Mandatory) cov_matrix : list of float Upper triangular part of the covariance matrix. (Mandatory)
- cov_idstr, optional
Identification number for this covariance matrix time history block. (Optional)
- cov_prev_idstr, optional
Identification number for the previous covariance matrix time history. (Optional)
- cov_next_idstr, optional
Identification number for the next covariance matrix time history. (Optional)
- cov_basisstr, optional
Basis of this covariance matrix time history data (PREDICTED, DETERMINED, etc.). (Optional)
- cov_basis_idstr, optional
Identification number for the telemetry dataset, orbit determination, or simulation. (Optional)
- cov_confidencefloat, optional
The confidence level associated with the covariance [0-100]. (Optional) cov_scale_factor : float, optional Scale factor to be applied to the covariance matrix. (Optional)
- cov_unitsstr, optional
Comma-delimited set of SI unit designations for the covariance elements. (Optional)
- commentlist[str], optional
Comments. (Optional)
- comment¶
Comments (a contiguous set of one or more comment lines may be provided in the OCM covariance time history section only immediately after the COV_START keyword; see 7.8 for comment formatting rules).
- cov_basis¶
Basis of this covariance time history data. This is free-text field with the following suggested values: a) ‘PREDICTED’. b) ‘DETERMINED’ when estimated from observation-based orbit determination, reconstruction and/or calibration. For definitive OD performed onboard whose solutions have been telemetered to the ground for inclusion in an OCM, the COV_BASIS shall be considered to be DETERMINED. c) EMPIRICAL (for empirically determined such as overlap analyses). d) SIMULATED for simulation-based (including Monte Carlo) estimations, future mission design studies, and optimization studies. e) ‘OTHER’ for other bases of this data.
Examples: PREDICTED, EMPIRICAL, DETERMINED, SIMULATED, OTHER
- Type:
Optional[str]
- cov_basis_id¶
Free-text field containing the identification number for the orbit determination, navigation solution, or simulation upon which this covariance time history block is based. When a matching orbit determination block accompanies this covariance time history, the COV_BASIS_ID should match the corresponding OD_ID (see table 6-11).
Examples: OD_5910
- Type:
Optional[str]
- cov_confidence¶
A measure of the confidence in the covariance errors matching reality, as characterized via a Wald test, a Chi-squared test, the log of likelihood, or a numerical representation per mutual agreement.
Examples: 50
Units: %
- Type:
Optional[float]
- cov_frame_epoch¶
Epoch of the covariance data reference frame, if not intrinsic to the definition of the reference frame. (See 7.5.10 for formatting rules.)
Examples: 2001-11-06T11:17:33, 2002-204T15:56:23Z
- Type:
Optional[str]
- cov_id¶
Free-text field containing the identification number for this covariance time history block.
Examples: COV_20160402_XYZ
- Type:
Optional[str]
- cov_next_id¶
Free-text field containing the identification number for the next covariance time history, contained either within this message, or presented in a future OCM. NOTE—If this message is not part of a sequence of covariance time histories or if this covariance time history is the last in a sequence of covariance time histories, then COV_NEXT_ID should be excluded from this message.
Examples: COV_20160305C
- Type:
Optional[str]
- cov_ordering¶
Indicates covariance ordering as being either LTM, UTM, Full covariance, LTM covariance with cross-correlation information provided in upper triangle off-diagonal terms (LTMWCC), or UTM covariance with cross-correlation information provided in lower triangle off-diagonal terms (UTMWCC).
Examples: LTM, UTM, FULL, LTMWCC, UTMWCC
- Type:
- cov_prev_id¶
Free-text field containing the identification number for the previous covariance time history, contained either within this message or presented in a previous OCM. NOTE—If this message is not part of a sequence of covariance time histories or if this covariance time history is the first in a sequence of covariance time histories, then COV_PREV_ID should be excluded from this message.
Examples: COV_20160305a
- Type:
Optional[str]
- cov_ref_frame¶
Reference frame of the covariance time history. Select from the accepted set of values indicated in annex B, subsection B4 and B5.
Examples: TNW_INERTIA, J2000
- Type:
- cov_scale_max¶
Maximum scale factor to apply to this covariance data to achieve realism.
Examples: 5.0
- Type:
Optional[float]
- cov_scale_min¶
Minimum scale factor to apply to this covariance data to achieve realism.
Examples: 0.5
- Type:
Optional[float]
- cov_type¶
Indicates covariance composition. Select from annex B, subsections B7 and B8.
Examples: CARTP, CARTPV, ADBARV
- Type:
- cov_units¶
A comma-delimited set of SI unit designations for each element of the covariance time history following the covariance time tag, solely for informational purposes, provided as a free-text field enclosed in square brackets. When provided, these units designations shall correspond to the units of the standard deviations (or square roots) of each of the covariance matrix diagonal elements (or variances), respectively, and all diagonal elements shall have a corresponding units entry, with non-dimensional values (such as dispersion in orbit eccentricity) denoted by ‘n/a’. NOTE—The listing of units via the COV_UNITS keyword does not override the mandatory units specified for the selected COV_TYPE (links to the relevant SANA registries provided in annex B, subsections B7 and B8).
Examples: [km,km,km,km/s,km/s,km/s]
- Type:
Optional[str]
- class ccsds_ndm.CovLine(*, epoch, values)¶
A single line in a covariance time history.
- Parameters:
- class ccsds_ndm.OcmPerturbations¶
OCM Perturbations Parameters.
- atmospheric_model¶
Name of atmosphere model, which shall be selected from the accepted set of values indicated in annex B, subsection B9.
Examples: MSISE90, NRLMSIS00, J70, J71, JROBERTS, DTM, JB2008
- Type:
Optional[str]
- central_body_rotation¶
Central body angular rotation rate, measured about the major principal axis of the inertia tensor of the central body, relating inertial, and central-body-fixed reference frames. NOTE—The rotation axis may be slightly offset from the inertial frame Z-axis definition.
Units: deg/s
- Type:
Optional[float]
- comment¶
Comments (a contiguous set of one or more comment lines may be provided in the OCM Perturbations Specification only immediately after the PERT_START keyword; see 7.8 for comment formatting rules).
- equatorial_radius¶
Oblate spheroid equatorial radius of the central body used in the message, if different from the gravity model.
Units: km
- Type:
Optional[float]
- gm¶
Gravitational coefficient of attracting body (Gravitational Constant × Central Mass), if different from the gravity model.
Units: km³/s²
- Type:
Optional[float]
- gravity_model¶
The gravity model (selected from the accepted set of gravity model names indicated in annex B, subsection B10), followed by the degree (D) and order (O) of the applied spherical harmonic coefficients used in the simulation. NOTE—Specifying a zero value for ‘order’ (e.g., 2D 0O) denotes zonals (J2 … JD).
Examples: EGM-96: 36D 36O, WGS-84: 8D 0O, GGM-01: 36D 36O, TEG-4: 36D 36O
- Type:
Optional[str]
- n_body_perturbations¶
One OR MORE (N-body) gravitational perturbations bodies used. Values, listed serially in comma-delimited fashion, denote a natural solar or extra-solar system body (stars, planets, asteroids, comets, and natural satellites). NOTE—Only those entries specified under CENTER_NAME in annex B, subsection B2 are acceptable values.
Examples: MOON, SUN, JUPITER
- Type:
Optional[str]
- oblate_flattening¶
Central body’s oblate spheroid oblateness for the polar-symmetric oblate central body model (e.g., for the Earth, it is approximately 1.0/298.257223563).
- Type:
Optional[float]
- ocean_tides_model¶
Name of ocean tides model (optionally specify order or constituent effects, diurnal, semi-diurnal, etc.). This is a free-text field, so if the examples on the right are insufficient, others may be used.
Examples: DIURNAL, SEMI-DIURNAL
- Type:
Optional[str]
- reduction_theory¶
Specification of the reduction theory used for precession and nutation modeling. This is a free-text field, so if the examples on the right are insufficient, others may be used.
Examples: IAU1976/FK5, IAU2010, IERS1996
- Type:
Optional[str]
- shadow_bodies¶
List of bodies included in shadow calculations (value(s) to be drawn from the SANA registry list of Orbit Centers at <https://sanaregistry.org/r/orbit_centers>).
Examples: EARTH, MOON
- Type:
Optional[str]
- shadow_model¶
Shadow model used for Solar Radiation Pressure; dual cone uses both umbra/penumbra regions. Selected option should be one of ‘NONE’, ‘CYLINDRICAL’, ‘CONE’, or ‘DUAL_CONE’.
Examples: NONE, CYLINDRICAL, CONE, DUAL_CONE
- Type:
Optional[str]
- solid_tides_model¶
Name of solid tides model (optionally specify order or constituent effects, diurnal, semi-diurnal, etc.).
Examples: DIURNAL, SEMI-DIURNAL
- Type:
Optional[str]
- srp_model¶
Name of the Solar Radiation Pressure (SRP) model.
Examples: CANNONBALL, FLAT_PLATE, BOX_WING
- Type:
Optional[str]
- sw_interp_method¶
Free-text field specifying the method used to select or interpolate any and all sequential space weather data (Kp, ap, Dst, F10.7, M10.7, S10.7, Y10.7, etc.). While not constrained to specific entries, it is anticipated that the utilized method would match methods detailed in numerical analysis textbooks.
Examples: PRECEDING_VALUE, NEAREST_NEIGHBOR, LINEAR, LAGRANGE_ORDER_5
- Type:
Optional[str]
- class ccsds_ndm.OcmOdParameters(*, od_id, od_method, od_epoch, od_prev_id=None, comment=None)¶
OCM Orbit Determination Parameters.
- Parameters:
od_id (str) – Identifier for the orbit determination parameters block. (Mandatory)
od_method (str) – Specifies the method used for the orbit determination. (Mandatory)
od_epoch (str) – Epoch of the orbit determination. (Mandatory)
od_prev_id (str, optional) – Identification number for the previous orbit determination block. (Optional)
- actual_od_span¶
Actual time span in days used for the OD of the object. NOTE—Should equal (DAYS_SINCE_FIRST_OBS - DAYS_SINCE_LAST_OBS).
Units: d
- Type:
Optional[float]
- consider_params¶
Free-text comma-delimited description of the consider parameters used in the orbit determination.
- Type:
Optional[str]
- data_types¶
Comma-separated list of observation data types utilized in this orbit determination. Although this is a free-text field, it is recommended at a minimum to use data type descriptor(s) as provided in table 3-5 of the TDM standard (reference [9]) (excluding the DATA_START, DATA_STOP, and COMMENT keywords). Additional descriptors/detail is encouraged if the descriptors of table 3-5 are not sufficiently clear; for example, one could replace ANGLE_1 and ANGLE_2 with RADEC (e.g., from a telescope), AZEL (e.g., from a ground radar), RANGE (whether from radar or laser ranging), etc.
- Type:
Optional[str]
- days_since_first_obs¶
Days elapsed between first accepted observation and OD_EPOCH.
Examples: 1.5
Units: d
Days elapsed between first accepted observation and OD_EPOCH. NOTE—May be positive or negative.
Units: d
- Type:
Optional[float]
- days_since_last_obs¶
Days elapsed between last accepted observation and OD_EPOCH. NOTE—May be positive or negative.
Units: d
- Type:
Optional[float]
- gdop¶
Generalized Dilution Of Precision for this orbit determination, based on the observability grammian as defined in references [H15] and [H16] and expressed in informative annex F, subsection F4. GDOP provides a rating metric of the observability of the element set from the OD. Alternate GDOP formations may be used as mutually defined by message exchange participants.
- Type:
Optional[float]
- maximum_obs_gap¶
The maximum time between observations in the OD of the object.
Units: d
- Type:
Optional[float]
- obs_available¶
The number of observations available within the actual OD time span.
- Type:
Optional[int]
- od_confidence¶
OD confidence metric, which spans 0 to 100% (useful only for Filter-based OD systems). The OD confidence metric shall be as mutually defined by message exchange participants.
Units: %
- Type:
Optional[float]
- od_epoch¶
Relative or absolute time tag of the orbit determination solved-for state in the selected OCM time system recorded by the TIME_SYSTEM keyword.
Examples: 2000-01-01T12:00:00Z
- Type:
- od_epoch_eigint¶
Positional error ellipsoid 1σ intermediate eigenvalue at the epoch of the OD.
Units: m
- Type:
Optional[float]
- od_epoch_eigmaj¶
Positional error ellipsoid 1σ major eigenvalue at the epoch of the OD.
Units: m
- Type:
Optional[float]
- od_epoch_eigmin¶
Positional error ellipsoid 1σ minor eigenvalue at the epoch of the OD.
Units: m
- Type:
Optional[float]
- od_max_pred_eigmaj¶
The resulting maximum predicted major eigenvalue of the 1σ positional error ellipsoid over the entire TIME_SPAN of the OCM, stemming from this OD.
Units: m
- Type:
Optional[float]
- od_method¶
Type of orbit determination method used to produce the orbit estimate.
Examples: LEAST_SQUARES, KALMAN_FILTER
- Type:
- od_min_pred_eigmin¶
The resulting minimum predicted minor eigenvalue of the 1σ positional error ellipsoid over the entire TIME_SPAN of the OCM, stemming from this OD.
Units: m
- Type:
Optional[float]
- od_prev_id¶
Optional identification number for the previous orbit determination.
Examples: 0
- Type:
Optional[str]
- recommended_od_span¶
Number of days of observations recommended for the OD of the object (useful only for Batch OD systems).
Units: d
- Type:
Optional[float]
- sedr¶
The Specific Energy Dissipation Rate, which is the amount of energy being removed from the object’s orbit by the non-conservative forces. This value is an average calculated during the OD. (See annex F, subsection F7 for definition.)
Units: W/kg
- Type:
Optional[float]
- sensors¶
Free-text comma-delimited description of the sensors used in the orbit determination.
- Type:
Optional[str]
- solve_states¶
Free-text comma-delimited description of the state elements solved for in the orbit determination.
- Type:
Optional[str]
- tracks_available¶
The number of sensor tracks available for the OD within the actual time span (see definition of ‘tracks’, 1.5.2).
- Type:
Optional[int]
- tracks_used¶
The number of sensor tracks accepted for the OD within the actual time span (see definition of ‘tracks’, 1.5.2).
- Type:
Optional[int]
- weighted_rms¶
(Useful/valid only for Batch OD systems.) The weighted RMS residual ratio, defined as: .. math:: text{Weighted RMS} = sqrt{frac{sum_{i=1}^{N} w_i(y_i - hat{y}_i)^2}{N}} Where yi is the ith observation measurement, ŷi is the current estimate of yi, wi = 1/σi² is the weight (sigma) associated with the measurement at the ith time and N is the number of observations. This is a value that can generally identify the quality of the most recent vector update and is used by the analyst in evaluating the OD process. A value of 1.00 is ideal.
- Type:
Optional[float]