Skip to content

Releases: nasa/prog_algs

Release v1.5.1 Hotfix

18 Aug 23:49
Compare
Choose a tag to compare

Fixes 2 issues:

  1. Horizon doesn't work properly in monte carlo for multi-event models
    2.States are shuffled in particle filter if initial state is provided as a dictionary and keys are in a different order than model.states

prog_algs v1.5

29 Jun 15:24
Compare
Choose a tag to compare

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

28 Oct 16:08
b077d65
Compare
Choose a tag to compare

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

24 May 19:18
4c4def4
Compare
Choose a tag to compare

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

14 May 00:18
cedf132
Compare
Choose a tag to compare

Release v1.3.0

  • New State Estimator Added KalmanFilter State estimator. Works with models derived from prog_models.LinearModel. See examples.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(). See examples.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

22 Dec 16:59
a15b0ff
Compare
Choose a tag to compare

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

01 Dec 15:56
6c404f3
Compare
Choose a tag to compare

prog_algs v1.2.2

The only changes in this release are the added support for Python 3.10

prog_algs v1.2.1

17 Nov 02:55
Compare
Choose a tag to compare

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

12 Nov 20:07
Compare
Choose a tag to compare

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
  • 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.
  • 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:
    • Scatter plot for an UncertainData object (e.g., states at a point in time) [#24]
    • Histogram for an UncertainData object [#37]
  • Updates to UncertainData
    • Added method for median [#75]
    • Added percentage_in_bounds and metrics metrics as UncertainData methods [#92]
    • Added scatter and histogram charts as UncertainData methods
    • Added the 'key' method to get all samples for a specific key
  • 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 the Predictor.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

19 May 19:28
96a1e01
Compare
Choose a tag to compare

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