Repository navigation
2.4.0: Python package + new simple PropagatorConfig + Pseudo-range filtering + OD solution with NIS/NEES metrics
Summary
Nyx 2.4.0 marks a structural maturation of the astrodynamics engine, heavily prioritizing cross-language interoperability and robust orbit determination (OD) analytics. The defining focus of this release is the comprehensive reinstatement and expansion of the Python package. By exposing mission design, OD simulations, and statistical wrappers directly to Python, this version establishes the necessary architecture to support mission design and orbit determination from preliminary studies to operations. Further improvements the concept of operations management for stable, long term mission management will be gated by a license and kept closed source, switching Nyx Space to an open-core model.
Beyond the Python ecosystem, the release introduces Dhall configuration serialization for spacecraft sequences and ASN.1 encoding support. On the flight dynamics front, the introduction of a formal Spacecraft Sequencer fundamentally upgrades trajectory design capabilities (introducing necessary breaking changes), while the addition of rigorous statistical validations—namely NIS and NEES chi-squared tests—ensures strict confidence metrics for OD solutions.
New features
Python ecosystem
- Export TrackingDataArc methods and MC structures to Python by @ChristopherRabotin in #496
- Add MvnSpacecraft.sample to Python bindings by @ChristopherRabotin in #498
- Add Python bindings and ASN.1 support to TrkConfig by @ChristopherRabotin in #506
- Reviving Python bindings, season 2, episode 1 by @ChristopherRabotin in #513
- Python is back! by @ChristopherRabotin in #543
- Add python bindings for SpacecraftSequence by @ChristopherRabotin in #527
- Python interface improvements for GroundStation by @ChristopherRabotin in #548
- Export mission design and orbit determination simulation to Python by @ChristopherRabotin in #558
- Move plotting to the Nyx Space python package by @ChristopherRabotin in #568
- Feature/python od process wrappers by @ChristopherRabotin in #561
Core features
- Add X, Y, Z Measurements by @ChristopherRabotin in #521
- [Breaking changes] Implement a Spacecraft Sequencer for trajectory design analysis by @ChristopherRabotin in #516
- Export thrust angles and replay them, useful for low thrust guidance by @ChristopherRabotin in #532
- Add Normalized Innovation Squared (NIS) Chi-Squared test + OD dashboard by @ChristopherRabotin in #533
- Add NEES consistency test + two minor fixes by @ChristopherRabotin in #534
- Support CCSDS TDM Frequency rate data by @ChristopherRabotin in #541
- Add Solid Tides acceleration model by @ChristopherRabotin in #542
- Feat: add support for multiple concurrent trackers by @ChristopherRabotin in #562
Improvements and fixes
- Fix gravity field gradient + fix EKF when processing scalar measurements + fix tracker noise plotting by @ChristopherRabotin in #523
- Fix two bugs in Targeter finite-difference corrector by @KonradStanski in #526
- fix(lambert): direction-of-motion handling in Izzo and Auto dispatch by @sakobu in #531
- Add GEO orbit raise optimization example with radiate by @ChristopherRabotin in #537
- fix: fix bls estimator validity and add long arc chunking and cross-arc evaluation by @ChristopherRabotin in #536
- Use &Almanac instead of Arc in dynamics traits by @ChristopherRabotin in #560
Miscellaneous
- chore: convert
plot_od_rslt.pydistances from km to m by @ChristopherRabotin in #524 - Update shadow-rs requirement from 1.0.1 to 2.0.0 by @dependabot[bot] in #528
- Implement ASN.1 Encode/Decode for Spacecraft by @ChristopherRabotin in #505
- Refactor: Remove obsolete FiniteBurns structure by @ChristopherRabotin in #517
- Serde spacecraft sequence in Dhall by @ChristopherRabotin in #519
- Update dependencies for hifitime and anise by @ChristopherRabotin in #535
- Fix typo in readme.md by @gregjesl in #544
- Add utility script to plot Cr and Cd estimates by @ChristopherRabotin in #559
- Utils refactor by @brianmego in #564
New Contributors
- @KonradStanski made their first contribution in #526
- @sakobu made their first contribution in #531
- @brianmego made their first contribution in #564
Full Changelog: 2.3.1...2.4.0