API Reference#

PyOED consists of several modular subpackages which can be employed with great flexibility. An important aspect of PyOED’s design is that every class is associated with a validated, introspectable configurations dataclass — see Key Concepts for details.

Find What You Need — by Workflow#

Not sure where to start in the API? Use the table below to jump directly to the relevant subpackage for the task you want to perform.

Task

Primary subpackage

Supporting subpackage

Define a forward (simulation) model

Models

Configs

Define observation noise / prior distribution

Models — Error Models

Stats

Define an observation operator (sensor map)

Models — Observation Operators

Models

Solve an inverse problem (3D-Var, Kalman, etc.)

Data Assimilation

Models

Run sensor-placement OED (A/D-optimal)

OED — Sensor Placement

OED Criteria

Run robust OED (uncertain hyperparameters)

OED — Robust OED

OED

Optimise a design (SciPy, binary, REINFORCE)

Optimization

OED

Time-dependent inversion (4D-Var, smoothing)

Data Assimilation — Smoothing

Models

Sample from a distribution / run MCMC

Statistics

Models — Error Models

Extend PyOED (add a new model or criterion)

Architecture

Configs

Add a custom error model or prior

Models — Error Models

Configs

Add a custom observation operator

Models — Observation Operators

Models Core

Add a custom sampler or proposal

Statistics — Sampling

Statistics Core

PyOED Subpackages & Modules#

Glossary#

A definition of all key terms (OED, A-optimality, EIG, 3D-Var, sensor placement, REINFORCE, …) is available in the Glossary.