OPM — Orbit Parameter Message¶
Parses CCSDS Orbit Parameter Messages containing a single state vector with optional Keplerian elements, spacecraft parameters, maneuvers, and covariance data.
OPM ¶
OPM(originator: Any, object_name: Any, object_id: Any, center_name: Any, ref_frame: Any, time_system: Any, epoch: Any, position: Any, velocity: Any)
Python wrapper for CCSDS Orbit Parameter Message (OPM).
Scalar metadata is exposed as properties with getters and setters. Maneuvers are accessed via the maneuvers property which supports indexing, iteration, and mutation.
Example
Initialize instance.
arg_of_pericenter property ¶
arg_of_pericenter: float
Argument of pericenter in degrees, or None.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | Argument of pericenter (degrees), or None |
eccentricity property ¶
eccentricity: float
Eccentricity, or None if no Keplerian elements.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | Eccentricity, or None |
gm property ¶
gm: float
Gravitational parameter in m^3/s^2, or None.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | GM (m^3/s^2), or None |
has_keplerian_elements property ¶
has_keplerian_elements: bool
Whether Keplerian elements are present.
Returns:
| Name | Type | Description |
|---|---|---|
bool | bool | True if Keplerian elements exist |
inclination property ¶
inclination: float
Inclination in degrees, or None if no Keplerian elements.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | Inclination (degrees), or None |
maneuvers property ¶
Maneuver collection, supporting len/indexing/iteration.
Returns:
| Name | Type | Description |
|---|---|---|
OPMManeuvers | OPMManeuvers | Collection of maneuvers |
mean_anomaly property ¶
mean_anomaly: float
Mean anomaly in degrees, or None.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | Mean anomaly (degrees), or None |
position property ¶
position: ndarray
Position vector [x, y, z] in meters.
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position [x, y, z] in meters |
ra_of_asc_node property ¶
ra_of_asc_node: float
Right ascension of ascending node in degrees, or None.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | RAAN (degrees), or None |
semi_major_axis property ¶
semi_major_axis: float
Semi-major axis in meters, or None.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | Semi-major axis (meters), or None |
solar_rad_area property ¶
solar_rad_area: float
Solar radiation pressure area in m^2, or None.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | Solar radiation pressure area (m^2), or None |
solar_rad_coeff property ¶
solar_rad_coeff: float
Solar radiation pressure coefficient, or None.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | Solar radiation pressure coefficient, or None |
true_anomaly property ¶
true_anomaly: float
True anomaly in degrees, or None.
Returns:
| Name | Type | Description |
|---|---|---|
float | float | True anomaly (degrees), or None |
velocity property ¶
velocity: ndarray
Velocity vector [vx, vy, vz] in m/s.
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Velocity [vx, vy, vz] in m/s |
add_maneuver method descriptor ¶
add_maneuver(epoch_ignition: Epoch, duration: float, ref_frame: str, dv: list[float], delta_mass: float | None = None) -> int
Add a maneuver to the OPM.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epoch_ignition | Epoch | Epoch of ignition | required |
duration | float | Duration in seconds | required |
ref_frame | str | Reference frame for delta-V | required |
dv | list[float] | Delta-V [dv1, dv2, dv3] in m/s | required |
delta_mass | float | None | Mass change in kg | None |
Returns:
| Name | Type | Description |
|---|---|---|
int | int | Index of the new maneuver |
from_file staticmethod ¶
from_str staticmethod ¶
remove_maneuver method descriptor ¶
Remove a maneuver by index.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
idx | int | Index of the maneuver to remove | required |
to_dict method descriptor ¶
to_dict() -> dict
Convert the OPM to a Python dictionary.
Epochs are serialized as CCSDS datetime strings for JSON/dict compatibility.
Returns:
| Name | Type | Description |
|---|---|---|
dict | dict | Dictionary representation of the OPM |
to_file method descriptor ¶
to_json_string method descriptor ¶
See Also¶
- OPM Format Guide — Structure, state vectors, maneuvers, and covariance
- CCSDS Module — Module overview