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

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  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