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: (mandatory)
Number of random samples in the ensemble
accepted type: int
Optional arguments¶
reload_results: (optional): False
Reload results from previous simulations
accepted type: bool
batch_sampling: (optional): False
Compute samples into a single observation operator or as separate jobs if False
accepted type: bool
batch_subjob: (optional): False
Force submittting the batch sampling inside a separate job. Otherwise, run as a sub-instance of python
accepted type: bool
moving_window: (optional)
Assimilate observations using a moving assimilation window, i.e. with multiple segments/cycles.A segment consists of multiple windows. In CTDAS, a segment is called a cycle.
- accepted structure:
length_window: (mandatory)
Length of each assimilation window
accepted type: str
windows_per_segment: (mandatory)
Number of windows in each segment.In CTDAS, this parameter is called nlag.
accepted type: int
propagation_weight: (optional): 0
When starting a new segment/cycle, posterior information from last window is propagated with these weights
- accepted structure:
component: (optional): 0
Weight for this specific component
accepted type: float
localization: (optional)
Apply localization to every assimilated observation.
- accepted structure:
sigma: (mandatory)
Correlation length to apply when localizing an observation.
accepted type: float
decay_function: (optional): normal
Type of decay function to apply to the gain matrix.
accepted values: [‘exponential’, ‘normal’]
restart_format: (optional): restart_%Y%m%d%H.nc
Format of the restart file to fetch after a posterior forward simulation.
accepted type: str
seed: (optional): False
Use a seed to generate random samples.
accepted type: bool
seed_id: (optional): 0
ID of the numpy seed to use.
accepted type: int
compute_dof: (optional): False
Compute degrees of freedom for each assimilation steps
accepted type: bool
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 moving_window:
15 length_window: XXXXX # str
16 windows_per_segment: XXXXX # int
17 propagation_weight:
18 component: XXXXX # float
19 localization:
20 sigma: XXXXX # float
21 decay_function: XXXXX # exponential|normal
22 restart_format: XXXXX # str
23 seed: XXXXX # bool
24 seed_id: XXXXX # int
25 compute_dof: XXXXX # bool