Assimilation

Assimilation is a means by which you can update the state of a model with a set of observations so that the model is a better match to the observed data.

The updated state can be used as the starting point of a forecast or to propagate to the next set of observations.

Assimilation may prove useful when the model results and observations do not match. This may occur as a result of the following:

The implementation uses the Ensemble Kalman Filter (EnKF) algorithms for state updating. A number of error terms are introduced through the use of observation variance and boundary condition variance:

In order to update the state of a model, an assimilation object, which contains the assimilation parameters, must be created. See Assimilate the State of a Model for details of how to update the state of a model.

Temporary perturbed simulations

A large number of temporary perturbed simulations are required to produce the final assimilation result. The number of temporary perturbed simulations is calculated by the following formula:

number_perturbed_sims = ensemble_size * generations;

The ensemble size variable is specified by the user, and represents the number of times the boundary condition data is initially perturbed. The generations variable is inferred from the number of observation timesteps. The number of generations is calculated as follows:

generations = number_of_time_steps – 1;

A number of additional temporary runs and simulations are also required. The end result is a simulation that can be used as an initial state to another simulation. The initial state should be a better representation of the observed data than before assimilation took place.

Note

Assimilation cannot currently be performed on 2D models.

Assimilation cannot be performed on runoff only runs.

Assimilation can only be performed when the observed data is held in a TSDB, rather than in event files.

Assimilation runs must produce a saved state.


Assimilation Objects

Assimilation Dialog

Assimilate the State of a Model