nyx
nyx copied to clipboard
Use SPICE files via ANISE for import/export and computations
High level description
The ANISE Rust library should soon be usable, cf. anise.rs. Once that's done, this issue will start using ANISE in Nyx. This means removing all dependencies on Protobufs and the XB file format, and switch to reading SPICE data as inputs (for BPC ad SPK). This will also allow exporting trajectory data in SPK format.
Requirements
- [ ] Nyx shall natively read SPICE files
- [ ] Nyx shall use ANISE for frame transformations
- [ ] Nyx shall use ANISE for light time corrections in orbit determination modeling (requires https://github.com/nyx-space/anise/issues/26)
- [ ] Nyx shall deserialize YAML definitions using the specified frames in the loaded kernels
- [ ] Nyx shall provide a default DE440s with low fidelity body fixed frames (PCK)
- [ ] Nyx shall switch to the principal axes frame of the Moon for harmonics computations
- [ ] Nyx shall switch to IAU Earth Frame for drag computations
Test plans
- [ ] All of the validation will need to be re-run and checked (the errors are expected to be smaller than they currently are).
- [ ] Export the validation results in markdown to embed them in the mathspec
Design
This is a significant refactoring since the Cosm
structure will be replaced with an ANISE Context
. Moreover, any function that currently requires a trajectory reference will likely now require both a reference to the context and a frame instead of just a trajectory. This work must also account for the fact that an ANISE Context has significantly less features than a Nyx Trajectory, but Nyx must maintain the superset of features.