Ensemble Square-Root Filter EnSRF/std
#
Description#
Compute an Ensemble Square Root Filter (EnSRF) based on CTDAS implementation (Peters et al., 2005).
YAML arguments#
The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:
Mandatory arguments#
- nsample : int, mandatory
Number of random samples in the ensemble
Optional arguments#
- reload_results : bool, optional, default False
Reload results from previous simulations
- batch_sampling : bool, optional, default True
Compute samples into a single observation operator or as separate jobs if False.
- batch_subjob : bool, optional, default False
Force submitting the batch sampling inside a separate job. Otherwise, run as a sub-instance of python
- max_nsamples_per_run : int, optional, default 5
If separate sampling (batch_sampling`=`False), set the number of samples run as part of a single observation operator.
- include_system_samples : bool, optional, default True
If separate sampling (batch_sampling`=`False), include the three system-bound samples as part of each observation operator in addition to the other samples. This is strongly recommended because the samples cannot be reset to the mean of the ensemble after a restart if this option is set to ‘False’. It is also necessary if the model needs scaling factors as inputs. If True, the three system-bound samples are accounted as part of the max_nsamples_per_run limit.
- serial_optimization : bool, optional, default True
Assimilate the observations sequentially. If False, assimilate the observations in bulk (matrix operations).
- window_length : str, optional
Time length of each assimilation window
- nlag : int, optional, default 1
Number of windows in each segment.
- mean_propagwgt : optional, default 0
The propagation weight to use When a new assimilation segment begins and a new window is included. Either a general weight to apply to all components or a mapper (component -> value) can be provided. This parameter is taken into account only if nlag >= 2.
- localization : optional
Apply localization to every assimilated observation.
- Argument structure:
- decay_length : float, mandatory
Correlation length to apply.
- decay_func : “exponential” or “normal”, optional, default “normal”
Correlation function to apply.
- full_localization : bool, optional, default False
Apply both space-obs localization and obs-obs localization. If False, apply only space-obs localization.
- restart_format : str, optional, default “restart_%Y%m%d%H.nc”
Format of the restart file to fetch after a posterior forward simulation.
- seed : bool, optional, default False
Use a seed to generate random samples.
- seed_id : int, optional, default 0
ID of the numpy seed to use.
- unbias_ensemble : bool, optional, default False
Force the ensemble to have a mean and a standard deviation consistent with the distribution modes.
- set_deviations_equal : bool, optional, default False
During the generation of samples, ensure each window contains the same deviations from the mean to reduce noise cancellation.
- level_metrics : int, optional, default 1
Level which defines the number of metrics to compute:” 0. No metrics computed. 1. Only metrics not involving the calculation of the posterior matrix’s eigenvalues. 2. All metrics
- flushrun : bool, optional, default False
Removes the unnecessary directories in the sampling.
Requirements#
The current plugin requires the present plugins to run properly:
Requirement name |
Requirement type |
Explicit definition |
Any valid |
Default name |
Default version |
---|---|---|---|---|---|
obsvect |
False |
True |
standard |
std |
|
controlvect |
True |
True |
standard |
std |
|
obsoperator |
True |
True |
standard |
std |
|
platform |
True |
True |
None |
None |
YAML template#
Please find below a template for a YAML configuration:
1mode:
2 plugin:
3 name: EnSRF
4 version: std
5 type: mode
6
7 # Mandatory arguments
8 nsample: XXXXX # int
9
10 # Optional arguments
11 reload_results: XXXXX # bool
12 batch_sampling: XXXXX # bool
13 batch_subjob: XXXXX # bool
14 max_nsamples_per_run: XXXXX # int
15 include_system_samples: XXXXX # bool
16 serial_optimization: XXXXX # bool
17 window_length: XXXXX # str
18 nlag: XXXXX # int
19 mean_propagwgt: XXXXX # any
20 localization:
21 decay_func: XXXXX # exponential|normal
22 decay_length: XXXXX # float
23 full_localization: XXXXX # bool
24 restart_format: XXXXX # str
25 seed: XXXXX # bool
26 seed_id: XXXXX # int
27 unbias_ensemble: XXXXX # bool
28 set_deviations_equal: XXXXX # bool
29 level_metrics: XXXXX # int
30 flushrun: XXXXX # bool