-
-
Notifications
You must be signed in to change notification settings - Fork 15
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
Read SPK files directly #36
Read SPK files directly #36
Conversation
Use the dev-env-setup.sh script to install CSPICE on Linux Exhaustive tests show some errors to be very large (0.1 meters), and I'm not sure why Signed-off-by: Christopher Rabotin <[email protected]>
Lots of refactoring that helps me understand where things live Two important tasks coming up: 1. Add a Cartesian State type 2. Copy the Orbit type from Nyx 3. Change the SPICE reading to not use any allocation so that an ANISE structure can be built and used without creating a file. Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Will now write the API to build frames Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
MAX TRAJ seems to be limited to 31 items. That is probably not large enough to be usable. Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Co-authored-by: Chris de Claverie <[email protected]> Co-authored-by: Grégoire Henry <[email protected]> Signed-off-by: Christopher Rabotin <[email protected]>
I actually can't believe this works, but this is FANTASTIC! I'll implement this for all of the other types, and that should significantly reduce stack size Signed-off-by: Christopher Rabotin <[email protected]>
I don't know how to allow a Vec to move into a large lifetime... There is a big issue when building a DataArray: we don't know how many items exist, so we need an allocator. If the solution is to allow for allocs when building, that's OK, but then we can't easily read data from SPICE without allocating before reading. The only good thing here is that we use very little stack space for passing the data around Signed-off-by: Christopher Rabotin <[email protected]>
Can now correctly parse PCK summaries! Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Almost done with Hermite unequal step, I think. Signed-off-by: Christopher Rabotin <[email protected]>
Co-authored-by: Chris de Claverie <[email protected]> Co-authored-by: Grégoire Henry <[email protected]> Signed-off-by: Christopher Rabotin <[email protected]>
I'm likely taking one too many or one too few samples causing the interpolation to be slightly off. Added a bunch of debugging messages Signed-off-by: Christopher Rabotin <[email protected]>
My algorithm to build the polynomial is probably wrong. Although it works perfectly for the example of SPICE Signed-off-by: Christopher Rabotin <[email protected]>
The reference does not exactly use divided differences but it obviously leads to more precise computation Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Works, when using exactly the same algorithm as SPICE. Validation of a GMAT-generated SPK file, sampled 999 times over 3h 20 mins:
|
Signed-off-by: Christopher Rabotin <[email protected]>
Eventually, I'll remove F64TupleArray Signed-off-by: Christopher Rabotin <[email protected]>
Eventually, I'll remove F64TupleArray Signed-off-by: Christopher Rabotin <[email protected]>
…-anise-file-equivalent' of github.com:anise-toolkit/anise.rs into 30-spice-bsp-files-should-be-usable-without-needing-the-anise-file-equivalent
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Hopefully this also stores the artifacts, but I'm not sure this will work Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Signed-off-by: Christopher Rabotin <[email protected]>
Might add it back latter if we have a need for custom serialization. This work removes all custom serialization
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #36 +/- ##
=========================================
Coverage ? 30.15%
=========================================
Files ? 37
Lines ? 2557
Branches ? 0
=========================================
Hits ? 771
Misses ? 1786
Partials ? 0 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
Signed-off-by: Christopher Rabotin <[email protected]>
…-anise-file-equivalent' of github.com:anise-toolkit/anise.rs into 30-spice-bsp-files-should-be-usable-without-needing-the-anise-file-equivalent
Signed-off-by: Christopher Rabotin <[email protected]>
This replaces the ASN1 based Ephemeris and Orientation data. There may be a future use case for orientation data that is in ASN.1 encoding, but SPK files are way too common in the industry to require folks to switch from one file type to another.
This structure whoever removes the need to
unload
(orunfurnsh
) files thanks to the proper use of lifetimes in Rust.I will need to check whether one can deliberately violate these lifetimes in C (they might!).
TODO:
Closes #15 . Closes #30