Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CCSDS OEM conversion #34

Open
ChristopherRabotin opened this issue Oct 26, 2022 · 0 comments
Open

CCSDS OEM conversion #34

ChristopherRabotin opened this issue Oct 26, 2022 · 0 comments
Labels
CLI-tools Command line interface Kind: improvement New feature or request

Comments

@ChristopherRabotin
Copy link
Member

ChristopherRabotin commented Oct 26, 2022

High level description

CCSDS OEM is a standard for transferring orbital element data. As such, ANISE shall support reading these files and producing them from an ephemeris.

The API should also allow for converting an ephemeris into another frame prior to the serialization of the data in OEM format.

Requirements

  1. Convert the OEM state data into an SPK with relevant metadata where possible.
  2. Copy would-be discarded data into DAF comment section

Test plans

  1. Generate a CCSDS OEM file from a public tool, or find one online, and convert that into an SPK file. Then make sure that when queried at the epochs present in the OEM file, the state data from the SPK matches that of the OEM file.
  2. Test that optional fields do not cause the parser to fail.
  3. Test that incorrectly formatted fields do not cause the parser to fail.

Design

Algorithm demonstration

N/A

API definition

  1. A new module called ccsds will be added along with an oem submodule. All of the OEM parsing logic will be there.
  2. The ccsds module will only be available with the ccsds crate feature, enabled by default, but not supported in no_std environments.

High level architecture

The text version of the OEMs will likely be parsed using an abstract syntax tree. Although, it is to be see whether that is an overkill since the text file is relatively simple. The XML version, if it is to be supported at all, will use an standard XML parser.

Ref. 1: https://createlang.rs/01_calculator/ast.html
Ref. 2: https://doc.rust-lang.org/stable/nightly-rustc/rustc_ast/ast/index.html

Detailed design

The detailed design *will be used in the documentation of how ANISE works.

Feel free to fill out additional QA sections here, but these will typically be determined during the development, including the release in which this issue will be tackled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLI-tools Command line interface Kind: improvement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant