PyHydroGeophysX.assimilation package#

Submodules#

PyHydroGeophysX.assimilation.enkf module#

Ensemble-based hydro-geophysical data assimilation tools.

class PyHydroGeophysX.assimilation.enkf.ESMDA(obs_operator: HydroGeophysObsOperator, obs_cov: ndarray, n_steps: int = 4, inflation_factors: List[float] | None = None)[source]#

Bases: object

Ensemble Smoother with Multiple Data Assimilation (ES-MDA).

Performs multiple smoother updates with inflated observation covariance.

update(ensemble: ndarray, observations: ndarray, rng: Generator | None = None) Dict[str, ndarray][source]#

Run ES-MDA updates and return final ensemble with history.

class PyHydroGeophysX.assimilation.enkf.EnsembleKalmanFilter(obs_operator: HydroGeophysObsOperator, obs_cov: ndarray, inflation: float = 1.0)[source]#

Bases: object

Classic stochastic Ensemble Kalman Filter.

forecast(ensemble: ndarray, model_step: Callable[[ndarray], ndarray], **kwargs) ndarray[source]#

Propagate each ensemble member through the hydro model step.

update(ensemble: ndarray, observations: ndarray, rng: Generator | None = None) ndarray[source]#

Assimilate observations into a hydro-state ensemble.

class PyHydroGeophysX.assimilation.enkf.HydroGeophysObsOperator(petro_transform: Callable[[ndarray], ndarray], forward_operator: Callable[[ndarray], ndarray])[source]#

Bases: object

Observation operator: hydro state -> geophysical prediction.

Parameters:
  • petro_transform (Callable[[numpy.ndarray], numpy.ndarray]) – Callable mapping hydro state to geophysical property model.

  • forward_operator (Callable[[numpy.ndarray], numpy.ndarray]) – Callable mapping geophysical property model to predicted data.

forward_operator: Callable[[ndarray], ndarray]#
petro_transform: Callable[[ndarray], ndarray]#

Module contents#

Data assimilation utilities.

class PyHydroGeophysX.assimilation.ESMDA(obs_operator: HydroGeophysObsOperator, obs_cov: ndarray, n_steps: int = 4, inflation_factors: List[float] | None = None)[source]#

Bases: object

Ensemble Smoother with Multiple Data Assimilation (ES-MDA).

Performs multiple smoother updates with inflated observation covariance.

update(ensemble: ndarray, observations: ndarray, rng: Generator | None = None) Dict[str, ndarray][source]#

Run ES-MDA updates and return final ensemble with history.

class PyHydroGeophysX.assimilation.EnsembleKalmanFilter(obs_operator: HydroGeophysObsOperator, obs_cov: ndarray, inflation: float = 1.0)[source]#

Bases: object

Classic stochastic Ensemble Kalman Filter.

forecast(ensemble: ndarray, model_step: Callable[[ndarray], ndarray], **kwargs) ndarray[source]#

Propagate each ensemble member through the hydro model step.

update(ensemble: ndarray, observations: ndarray, rng: Generator | None = None) ndarray[source]#

Assimilate observations into a hydro-state ensemble.

class PyHydroGeophysX.assimilation.HydroGeophysObsOperator(petro_transform: Callable[[ndarray], ndarray], forward_operator: Callable[[ndarray], ndarray])[source]#

Bases: object

Observation operator: hydro state -> geophysical prediction.

Parameters:
  • petro_transform (Callable[[numpy.ndarray], numpy.ndarray]) – Callable mapping hydro state to geophysical property model.

  • forward_operator (Callable[[numpy.ndarray], numpy.ndarray]) – Callable mapping geophysical property model to predicted data.

forward_operator: Callable[[ndarray], ndarray]#
petro_transform: Callable[[ndarray], ndarray]#