ewatercycle_DA.data_assimilation_schemes.EnKF

Module Contents

class ewatercycle_DA.data_assimilation_schemes.EnKF.EnsembleKalmanFilter

Bases: pydantic.BaseModel

Implementation of an Ensemble Kalman filter scheme to be applied to the Ensemble.

Note

The EnsembleKalmanFilter is controlled by the Ensemble and thus has no time reference itself. No DA method should need to know where in time it is (for now). Currently assumed 1D grid.

Parameters:

hyperparameters (dict) –

Combination of many different parameters: like_sigma_weights (float): scale/sigma of logpdf when generating particle weights

like_sigma_state_vector (float): scale/sigma of noise added to each value in state vector

obs

observation value of the current model timestep, set in due course thus optional

Type:

float

state_vectors

state vector per ensemble member [N x len(z)]

Type:

np.ndarray

predictions

contains prior modeled values per ensemble member [N x 1]

Type:

np.ndarray

new_state_vectors

updated state vector per ensemble member [N x len(z)]

Type:

np.ndarray

All are :obj:`None` by default
hyperparameters: dict
N: int
obs: Any | None | None
state_vectors: Any | None | None
predictions: Any | None | None
new_state_vectors: Any | None | None
logger: list = []
update()

Takes current state vectors of ensemble and returns updated state vectors ensemble

TODO: refactor to be more readable