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

Spacecraft Dynamics to support serialization and pickle #214

Open
Tracked by #212
ChristopherRabotin opened this issue Aug 18, 2023 · 1 comment
Open
Tracked by #212

Spacecraft Dynamics to support serialization and pickle #214

ChristopherRabotin opened this issue Aug 18, 2023 · 1 comment
Labels
Interface: Python Priority: normal Status: Development Issue at Test Driven Development phase of the quality assurance process

Comments

@ChristopherRabotin
Copy link
Member

ChristopherRabotin commented Aug 18, 2023

High level description

Spacecraft dynamics needs to be serializable. This is needed for Insight to reload a specific scenario and serialize it.
This should also allow for the definition of spacecraft dynamics using the TypeBuilder trait approach.

Requirements

  • The order of the models must be kept (this is one of the worst things of STK).
  • Preferably support serializing this in Dhall because it's strict and will help organizing all of the data in separate files. For this, I may need to define the method to parse this data.

Test plans

  • Serde with different configurations including only orbital dynamics
  • Ensure that the data can be pickled and unpickled to pass in kedro

Design

The advantage of Dhall here is that it supports imports and is strict. The disadvantage is that it isn't necessarily very legible. This serialization should also support other less-strict approaches like TOML.

To ensure that the order is preserved, consider storing the models in a BTreeMap. It may also be useful for future reference to specify whether each model is enabled or not: this would allow for quickly turning on and off models for comparisons instead of rebuilding the spacecraft dynamics.

This is a spin off from #212.

@ChristopherRabotin
Copy link
Member Author

This might be simpler than expected for all but the harmonics. The harmonics currently do not store the path to the file and instead store the actual data. Other types can be serialized either as yaml or Dhall, but not toml because Frame can have Nones. Frame already is serializable in Dhall, so it may be worth keeping that and using Dhall for things that aren't generally manually edited (like ground stations in OD).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Interface: Python Priority: normal Status: Development Issue at Test Driven Development phase of the quality assurance process
Projects
None yet
Development

No branches or pull requests

1 participant