idaholab / raven

RAVEN is a flexible and multi-purpose probabilistic risk analysis, validation and uncertainty quantification, parameter optimization, model reduction and data knowledge-discovering framework.
https://raven.inl.gov/
Apache License 2.0
217 stars 133 forks source link

Multi-Resolution Time Series Analysis #2345

Open GabrielSoto-INL opened 1 month ago

GabrielSoto-INL commented 1 month ago

Pull Request Description

What issue does this change request address? (Use "#" before the issue to link it, i.e., #42.)

2128

What are the significant changes in functionality due to this change request?

Replaces #2129 .

New changes include introduction of multi-resolution time series analysis capabilities to RAVEN, particularly incorporated within the ROMCollection , SyntheticHistory and TSA module infrastructure. Multiresolution (MR) time series analysis algorithms are capable of investigating the inherent dynamics of time series at multiple timescales or frequencies. Decomposition of time series at multiple levels is a typical MR algorithm. These changes add the capability of decomposing time series signal(s) at different levels via a MR algorithm while still leveraging characterization, additional transformation, and generative algorithms within the current TSA library.

A new algorithm was added to the TSA module which is a modified wavelet transform: FilterBankDWT. This algorithm (and more in the future) will be compatible with a new MultiResolutionTSA ROM subtype and a Decomposition ROMCollection subtype. An example input script is shown below to help walk through the new additions:

PR

  1. A new ROM subtype called MultiResolutionTSA has been added.
    • It inherits the SupervisedLearning ROM class.
    • It serves the role of the _interfaceROM (for example, when using the standard TSA module, the _interfaceROM is the SyntheticHistory class).
  2. A new algorithm FilterBankDWT, using the PyWavelets python package, uses a filter bank discrete wavelet transform to decompose the original signal into various levels.
    • Note that other TSA algorithms can be used to modify or learn characteristics of the signal prior to this algorithm being used.
    • It accepts a wavelet family and an integer number of decomposition levels.
    • After this algorithm is applied (the last applied within this node before the SegmentROM), the signal is split into multiple instances, one per decomposition level.
  3. Another new class within the ROMCollection architecture is a Decomposition class which inherits the SupervisedLearning ROM class.
    • It serves the role of the _segmentROM (for example, previous instances use Segment, Clusters, or Interpolated classes).
    • This class handles training and evaluation of algorithms for the time series before and after decomposition.
    • Each decomposition gets assigned to a new instance of a SyntheticHistory object. Any algorithms within the <Segment> node of this input will be applied to each decomposition level (e.g., here, an ARMA model is trained per decomposition level).

Other notes:


For Change Control Board: Change Request Review

The following review must be completed by an authorized member of the Change Control Board.

moosebuild commented 1 month ago

Job Mingw Test on c2e8911 : invalidated by @GabrielSoto-INL

Segmentation fault when activating raven_libraries, trying again?