PyOED Models#

This package provides the three pillars of the forward problem in optimal experimental design and data assimilation:

Simulation Models define the forward map from parameters/states to observable quantities. PyOED provides both time-independent models (e.g., tomography, parameter-to-observable) and time-dependent dynamical models (e.g., Lorenz-63, advection-diffusion).

Observation Operators transform model states into observations. They encapsulate the mapping \(\mathcal{H}: \mathbb{R}^{n_x} \to \mathbb{R}^{n_y}\) and support experimental design (binary sensor on/off).

Error Models represent observation noise distributions (e.g., Gaussian, Laplacian). They provide methods for noise generation, density evaluation, and gradient computation used in variational and Bayesian methods.

These three components are composed together in an inverse problem or OED formulation via the assimilation and OED modules.

Abstract Base Classes#

The following table lists the abstract base classes that all concrete models, operators, and error models inherit from.

pyoed.models.SimulationModel

Abstract class (following Python's abc convention) for Simulation models (both time-dependent and time-independent)' (wrappers') implementation.

pyoed.models.TimeIndependentModel

Base class for time-independent models (such as tomography, ptychography, etc.)

pyoed.models.TimeDependentModel

Abstract base class for time-dependent (dynamical) simulation models.

pyoed.models.ObservationOperator

Abstract base class for observation operators.

pyoed.models.TimeDependentObservationOperator

This class provides a general implementation for time-dependent observation operators.

pyoed.models.ErrorModel

Abstract base class for error/noise models.

pyoed.models.TimeDependentErrorModel

This class provides a general implementation for time-dependent error models.

Class Hierarchy#

Inheritance diagram of pyoed.models.core.simulation_models.SimulationModel, pyoed.models.core.simulation_models.TimeIndependentModel, pyoed.models.core.simulation_models.TimeDependentModel, pyoed.models.core.observation_operators.ObservationOperator, pyoed.models.core.observation_operators.TimeDependentObservationOperator, pyoed.models.core.error_models.ErrorModel, pyoed.models.core.error_models.TimeDependentErrorModel

Models abstract base class hierarchy#