-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from cgrudz/master
Update c-merchant branch
- Loading branch information
Showing
10 changed files
with
982 additions
and
303 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,38 @@ | ||
# SmootherExps | ||
|
||
|
||
## SmootherExps API | ||
|
||
The `SmootherExps.jl` sub-module configures twin experiments using a stored time series as generated by | ||
[GenerateTimeSeries](@ref) to generate hyper-parameter configurations for the estimtor with the same | ||
underlying observation generating process. | ||
Experiment configurations are generated by function calls as with the filter experiments, but with the additional | ||
options of how the outer-loop is configured with a classic, single-iteration or the fully iterative Gauss-Newton style smoother. | ||
The parameters `lag` and `shift` specify how the data assimilation windows are translated in over the observation | ||
and analysis times. The `mda` parameter is only applicable to the single-iteration and Gauss-Newton style smoothers, | ||
utlizing sequential multiple data assimilation. Note, the single-iteration and fully iterative Gauss-Newton style smoothers are | ||
only defined for MDA compatible values of lag and shift where the lag is an integer multiple of the shift. | ||
|
||
Currently debugged and validated smoother experiment configurations include | ||
The `SmootherExps.jl` sub-module contains methods to configure filter twin experiments, | ||
using a stored time series as generated by [GenerateTimeSeries](@ref) as the underlying | ||
observation generating process. The frequency of observations in continuous time is defined | ||
by the frequency of data saved in the time series and is inferred by the experiment | ||
when reading in the data. | ||
|
||
```@raw html | ||
<div sytle="float:left; width:100%;"> | ||
<img style="width:95%" src="../cyclingSDA.png" alt="Observation analysis forecast cycle over multiple data assimilation windows"> | ||
</div> | ||
``` | ||
classic_state -- classic EnKS style state estimation | ||
classic_param -- classic EnKS style state-parameter estimation | ||
single_iteration_state -- single-iteration EnKS state estimation | ||
single_iteration_param -- single-iteration EnKS state-parameter estimation | ||
iterative_state -- Gauss-Newton style state estimation | ||
iterative_param -- Gauss-Newton style state-parameter estimation | ||
``` | ||
Other techniques are still in debugging and validation. Each of these takes an analysis type as used in the | ||
`transform` function in the `EnsembleKalmanSchemes.jl` sub-module, like the filter analyses in the filter experiments. | ||
|
||
Smoother experiment configurations are generated by supplying a | ||
[NamedTuple](https://docs.julialang.org/en/v1/base/base/#Core.NamedTuple) | ||
with the required fields as specified in the experiment method. Conventions for | ||
these arguments are the same as with the [FilterExps](@ref), with the additional options | ||
that configure the data assimilation window (DAW) and how this is shifted in time: | ||
* `lag` - the number of past observation / analysis times to reanalyze in a DAW, corresponding to ``L`` in the figure above; | ||
* `shift`- the nunber of observation / analysis times to shift the DAW, corresponding to ``S`` in the figure above; | ||
* `mda` - (__Multiple Data Assimilation__), type `Bool`, determines whether the technique of multiple data assimilation is used (only compatible with `single_iteration` and `iterative` smoothers. | ||
|
||
All experiments are funcitonalized so that they can be called from an array of parameter | ||
values which will typically be varied with naive parallelism. Relevant arguments and | ||
experimental results are dumped as a side effect to a dictionary in a JLD2. | ||
Experiments return their runtime in minutes. | ||
Currently debugged and validated smoother experiment configurations include | ||
* `classic_state` - classic ETKS style state estimation | ||
* `classic_param` - classic ETKS style state-parameter estimation | ||
* `single_iteration_state` - SIEnKS state estimation | ||
* `single_iteration_param` - SIEnKS state-parameter estimation | ||
* `iterative_state` - IEnKS Gauss-Newton style state estimation | ||
* `iterative_param` - IEnKS Gauss-Newton style state-parameter estimation | ||
|
||
Note, the single-iteration and fully iterative Gauss-Newton style smoothers are only defined | ||
for MDA compatible values of lag and shift where the lag is an integer multiple of the shift. | ||
|
||
## Docstrings | ||
## Smoother Experiment Methods | ||
```@autodocs | ||
Modules = [DataAssimilationBenchmarks.SmootherExps] | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.