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

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.

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

Requirements#

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

obsvect

ObsVect

False

True

standard

std

controlvect

ControlVect

True

True

standard

std

obsoperator

ObsOperator

True

True

standard

std

platform

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    serial_optimization: XXXXX  # bool
15    window_length: XXXXX  # str
16    nlag: XXXXX  # int
17    mean_propagwgt: XXXXX  # any
18    localization:
19      decay_func: XXXXX  # exponential|normal
20      decay_length: XXXXX  # float
21    restart_format: XXXXX  # str
22    seed: XXXXX  # bool
23    seed_id: XXXXX  # int
24    unbias_ensemble: XXXXX  # bool
25    set_deviations_equal: XXXXX  # bool
26    level_metrics: XXXXX  # int