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
198 stars 20 forks source link

Refactor orbit/spacecraft state generator to always use the multivariate normal #340

Closed ChristopherRabotin closed 4 months ago

ChristopherRabotin commented 4 months ago

Summary

Until this PR, the spacecraft state generator made the completely incorrect assumption that each component of a state was iid. Obviously, this is wrong. This PR aims to fix this by removing the Generator structure and replacing it with the Multivariate Normal.

This also removes the ability to sample from anything but a normal distribution: in my experience, this is all that's ever done.

Architectural Changes

Remove Generator structure.

New Features

No change

Improvements

No change

Bug Fixes

No change

Testing and validation

Sampling from a full Kalman Filter estimate and from a fully defined Cartesian state space is checked to meet the 99.7% criteria with 1000 samples. There is following validation work in #339 . However the "robust" OD tests have switched to this new dispersion method very successfully.

Documentation

This PR does not primarily deal with documentation changes.

github-actions[bot] commented 4 months ago

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

https://nyx-rustdoc--pr340-331-measurement-upda-xc7kd37s.web.app

(expires Sat, 27 Jul 2024 03:12:02 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: d8e2a55934352d850c15d11866c39eb2d2e029be