nyx-space / nyx

Nyx is a high fidelity, fast, reliable and validated astrodynamics toolkit library written in Rust and available in Python
https://nyxspace.com
GNU Affero General Public License v3.0
196 stars 20 forks source link

TOTALLY BREAKING CHANGE: Rewrite of Nyx to rely on ANISE for planetary data and frame transformations #305

Closed ChristopherRabotin closed 5 months ago

ChristopherRabotin commented 5 months ago

Effects

This is a complete rewrite of the whole Cosm functionality that's been used in Nyx since its inception. Nyx now uses ANISE, which relies on NAIF BSP and BPC files for transformations and rotations and "ANISE files" for planetary data.

This big breaking change will be followed by tutorials and user guides for writing mission design and orbit determination scenarios using Nyx.

Known limitations

github-actions[bot] commented 5 months ago

Visit the preview URL for this PR (updated for commit 9b7e3b9):

https://nyx-rustdoc--pr305-86-use-spice-files-v-wags5d8k.web.app

(expires Sun, 23 Jun 2024 04:03:02 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: d8e2a55934352d850c15d11866c39eb2d2e029be

ChristopherRabotin commented 5 months ago

@gwbres, I'm getting there! It only took four months on this branch and 2-3 years on ANISE?

test result: FAILED. 122 passed; 2 failed; 6 ignored; 0 measured; 0 filtered out; finished in 119.40s
gwbres commented 5 months ago

@gwbres, I'm getting there! It only took four months on this branch and 2-3 years on ANISE?

test result: FAILED. 122 passed; 2 failed; 6 ignored; 0 measured; 0 filtered out; finished in 119.40s

hang in there ! I'm sorry i can't help much on the nyx topic :) i'm glad some of my applications may serve as beta tester though. If that can comfort, I'm also breaking a few low level things in my crate, these phases are annoying, I'd personnaly would be working on more interesting sides of the applications, but sometimes what needs to be done, has to be done.

If you're interested, i'm reorganizing some key elements that are still coded in the RINEX lib, while it should not. The Rinex-QC lib becomes fundamental in processing workflow, it regroups RINEX, possibly SP3 and others on options, and is where the fundamental logic happens.