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 Import is slow, export not yet available #183

Closed
ChristopherRabotin opened this issue Jun 11, 2023 · 0 comments · Fixed by #184
Closed

CCSDS OEM Import is slow, export not yet available #183

ChristopherRabotin opened this issue Jun 11, 2023 · 0 comments · Fixed by #184
Labels
Interface: Python Interface: Rust Kind: Improvement This is a proposed improvement Kind: New feature This is a proposed new feature Status: Development Issue at Test Driven Development phase of the quality assurance process Topic: Mission Design

Comments

@ChristopherRabotin
Copy link
Member

High level description

Loading a large OEM is slow and clunky. And there is no way to export a trajectory into an OEM file. The latter is currently planned in ANISE, but eventually, the Traj<_> trait will work smoothly with ANISE.

Requirements

We need to export a CCSDS OEM file from a propagated trajectory. It may be worth considering an initial implementation of #87 as well.

Test plans

  • Ensure that we can export a Traj to a CCSDS file
  • Add a benchmark to show how speedy or slow reading a CCSDS OEM file is.

Design

General ideas:

  1. Using a bufreader instead of reading the whole file at once (this was obviously a hacky implementation)
  2. Token checking should be done against a HashSet to get O(1) performance on checking instead of current O(n)

Breaking changes:

  • It may be worth considering dropping the TrajectoryLoader class in Python entirely and only use the OrbitTraj to load a CCSDS trajectory. Keep in mind that the ability to pickle classes in Python is vital to workflow development.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Interface: Python Interface: Rust Kind: Improvement This is a proposed improvement Kind: New feature This is a proposed new feature Status: Development Issue at Test Driven Development phase of the quality assurance process Topic: Mission Design
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant