Align OpsStatus enum with the SANA Operational Status registry

Hi all,

While working with OCM files I noticed that Orekit’s OpsStatus enum does not match the set of allowed values for the OPS_STATUS keyword as defined by the CCSDS OCM blue book.

Appendix B, section 12 of CCSDS 502.0-B-3 (OCM) states:

A set of allowed values for the OPS_STATUS keyword is enumerated in the SANA Registry of Operational Status of Space Object.

The SANA registry is published here: https://sanaregistry.org/r/operational_status/.

Comparison

SANA registry (10 values) Orekit OpsStatus (9 values)
OPERATIONAL_MANEUVERABLE OPERATIONAL
OPERATIONAL_NONMANEUVERABLE
NONOPERATIONAL NONOPERATIONAL
DEGRADED_OPERATIONS PARTIALLY_OPERATIONAL
BACKUP_STORAGE_STANDBY BACKUP, STANBY
EXTENDED_MISSION EXTENDED_MISSION
REENTRY_MODE REENTRY_MODE
DECAYED DECAYED
UNKNOWN UNKNOWN
DEAD

Suggestion

Would it be possible to align the OpsStatus enum with the current SANA registry values? Given that the registry is the normative source referenced by the blue book, parsers that need to round-trip OPS_STATUS values from real OCM files will otherwise have to map between the two vocabularies before parsing OCMs (or generating them for that matter).

Thanks for looking into this!

Best,
Will

Hi @willem.suter

Thanks for reporting this. I agree that we should follow the standard and add the recommended values. Could you open an issue in our Gitlab repository?

Thanks

Bryan

Note that the SANA registry evolves independently from the published standard. This could explain the discrepancy.
I wonder if we should retain older names for compatibility with previous versions and just add the new names.

That seems like the best approach to avoid breaking changes. I will open the issue as per @bcazabonne 's request and leave your team decide how to implement :slight_smile: