Releases: nasa/prog_algs
Release v1.5.1 Hotfix
prog_algs v1.5
Release v1.5
- Integration method can now be set for state estimation and prediction by setting model.parameters[‘integration_method’]
- Minimum time step can now be set in state estimation using the argument 'dt'. This is useful for models that become unstable with large time steps
- Support for python3.11
Note
In the next release (v1.6), prog_models and prog_algs will be combined into a single package called progpy. For release v1.6 you will install what is currently prog_modals and prog_algs by calling pip install progpy
.
Acknowledgements
Thank you to our interns Aditya Tummala (@aqitya) and Miryam Strautkalns (@mstraut) for their contributions to this release.
This release includes contributions from NASA's Autonomous Spacecraft Operations (ASO), Data and Reasoning Fabric (DRF), System Wide Safety (SWS), and Transformative Tools & Technologies (TTT) projects. Thank you for your support!
prog_algs v1.4.0
Release v1.4.0
- Updates to support prog_models v1.4.0
- Various bug fixes and performance improvements
Acknowledgements
This release includes contributions from NASA's Autonomous Spacecraft Operations (ASO), Data and Reasoning Fabric (DRF), System Wide Safety (SWS), and Transformative Tools & Technologies (TTT) projects. Thank you for your support!
prog_algs v1.3.1: Bugfixes
Various bug fixes, including:
- Removing unnecessary deepcopies
- fixing StateModel propagation through UncertainData
- Fixing Surrogate model compatibility with State Estimators
- Fixing surrogate model compatibility with UTP
prog_algs v1.3.0
Release v1.3.0
- New State Estimator Added
KalmanFilter
State estimator. Works with models derived from prog_models.LinearModel. Seeexamples.kalman_filter.py
. - New Predictor Added Unscented Transform Predictor. See
examples.utpredictor.py
- Initial state estimate (x0) can now be passed as UncertainData to represent initial state uncertainty. See
examples.playback.py
- Added new metrics for prediction profile: Prognostics horizon, Cumulative Relative Accuracy (CRA). See
examples.playback.py
- Added ability to plot prediction profile:
profile.plot()
. Seeexamples.playback.py
- Added new metric for predictions: Monotonicity
- Added new metrics for uncertain data: Root Mean Square Error (RMSE), Relative Accuracy (RA)
- Added new describe method for
UncertainData
- Add support for python 3.10
- Various performance improvements and bugfixes
Note
Python 3.6 is no longer supported.
Acknowledgements
Thank you to our intern Lawrence Hwang (@lawrence-hwang) for his help with this release.
This release includes contributions from NASA's Autonomous Spacecraft Operations (ASO), Data and Reasoning Fabric (DRF), and System Wide Safety (SWS) projects. Thank you for your support!
v1.2.3: Fixes
A few fixes:
- Fixed Particle filter. Particles were not being set after being propagated forward. Also initial time was too negative, breaking some models
- Fixed issue where nones in prediction were breaking some methods
- Fixed comparison by equality for MultivariateNormalDistributions
- Fixed calculation of median
- Created aliases MonteCarloPredictor and UnscentedTransform for MonteCarlo and UnscentedTransformPredictor, respectively. This is for naming consistency while maintaining backwards compatibility
- Added support for a dictionary state in predict. predict(dict()) is now equivalent to predict(ScalarData(dict()))
prog_algs v1.2.2: Added support for python 3.10
prog_algs v1.2.2
The only changes in this release are the added support for Python 3.10
prog_algs v1.2.1
Hotfix release v1.2.1
An urgent release to fix a bug with the monte carlo predictor in v1.2.0. Fixed the following bugs present in v1.2.0
- The Monte Carlo Predictor wasn't resetting the time correctly for subsequent samples. The result was that some ToE estimates were wildly off.
- None type elements in UnweightedSamples were not handled correctly in metrics. This happens when the horizon is lower than the time the last event is reached for the last sample for the Monte Carlo Predictor
Thank you to @kjjarvis for identifying these bugs and for your help resolving them.
Full Changelog: v1.2.0...v1.2.1
prog_algs v1.2
Release v1.2
Note for existing users
This release includes changes to the return format of the MonteCarlo Predictor's predict
method. These changes were necessary to support non-sample based predictors. The non backwards-compatible changes are listed below:
- times:
- previous
List[List[float]]
where times[n][m] corresponds to timepoint m of sample n. - new
List[float]
where times[m] corresponds to timepoint m for all samples
- previous
- End of Life (EOL)/ Time of Event (ToE) estimates:
- previous
List[float]
where the values correspond to the time that the first event occurs. - new
UnweightedSamples
where keys correspond to the individual events predicted.
- previous
- State at time of event (ToE)
- previous: element in states
- new: member of toe event (e.g., toe.final_state['event1'])
General Improvements
- Added new visualization capabilities, including:
- Updates to UncertainData
- Metrics functions can now accept UncertainData or Predictions, and operate on multiple states/events [#92]
- Added additional examples demonstrating
prog_algs
features - Add support for Python 3.9
- Added support for prog_models v1.1
- General Bugfixes
State Estimator Improvements
- Particle Filter Sample Vectorization - significantly improves runtime for vectorized models [#76]
- Particle Filter now calculates weights in log-domain (improves numerical stability) [#76]
- Added ability to set initial time in state estimators using the
t0
parameter - Fixed bug where states were being reordered in UKF
- Fixed bug where t wasn't being set each step of PF
Predictor Changes
- New Unscented Transform Predictor [#40, #74]
- Predictors can now predict multiple events. [#81]
- New
Prediction
class to represent predicted future values (e.g., states). Returned from thePredictor.predict
method [#60, #25] - New
ToEPredictionProfile
class to represent and operate on the result of multiple predictions at different times of prediction [#91]
Notes
The changes in this release were produced in part by Northrop Grumman under a contributor license agreement. Thank you NGC!
Bugfixes
Fixed bugs:
- State estimators would sometimes use incorrect ordering in state keys, result was that states would be swapped
- Monte Carlo Predictor multithreading relied on function attributes- this broke down if you have more than one monte carlo running concurrently, and in some complex models (observed in the new EOL/EOD model on prog_models).
This release completely removes multithreading in the monte carlo until a more reliable solution can be identified