dubfi.fluxes.dataprovider

Abstract data provider interface.

Added in version 0.1.1.

Classes

AbstractDataProvider

Abstract base class for data providers for inversion.

InsituDataProvider

Abstract base class for data providers for inversion.

Functions

reduce_ds_read_aux(→ xarray.Dataset)

Reduce dataset to given keys, read additional data if necessary.

read_aux(→ xarray.Dataset)

Read additional data for given dataset.

Module Contents

class dubfi.fluxes.dataprovider.AbstractDataProvider

Bases: abc.ABC

Abstract base class for data providers for inversion.

property config: dict[str, Any]
Abstractmethod:

Inversion configuration.

property coords: dict[str, Any]
Abstractmethod:

Data coordinates, see dubfi.fluxes.readobs.coordinates_from_config().

abstractmethod get_R() dubfi.linalg.generic.ParametrizedOperator

Get R parametrized operator (error covariance matrix).

For the ensemble flux inversion, this operator is constructed as described in R-matrix and uncertainties.

abstractmethod get_H() dubfi.linalg.generic.ParametrizedVector

Get H parametrized vector (observation operator).

For the flux inversion, this is just a linear operator (i.e., a matrix). A possible offset or background concentration in the model prediction should be directly subtracted from the vector returned by get_Y().

abstractmethod get_Y() dubfi.linalg.types.AbstractVector

Get Y vector (observation minus model prior).

This is usually the vector of observations minus the model prior, or the observations minus the model background.

get_mdm_eigenbasis_size() int

Get size of self.get_R().validate_uncertainty_statistics(mdm) output.

class dubfi.fluxes.dataprovider.InsituDataProvider

Bases: AbstractDataProvider

Abstract base class for data providers for inversion.

get_mdm_eigenbasis_size() int

Get size of self.get_R().validate_uncertainty_statistics(mdm) output.

weight_outliers() None

Inflate uncertainty for outliers.

Raises:

RuntimeError – if called a second time

apply_global_inflation() None

Apply global uncertainty inflation in-place.

Raises:

RuntimeError – if called a second time

abstractmethod read_data()

Read data from files.

_read_ens(fname: str, times: numpy.ndarray, obsidcs: numpy.ndarray | slice, **netcdf_kw) None

Read ensemble data, helper for read_data().

_read_det(fname: str, times: numpy.ndarray, obsidcs: numpy.ndarray | slice, ssh: str, same_site_count: numpy.ndarray, **netcdf_kw) None

Read deterministic data, helper for read_data().

dubfi.fluxes.dataprovider.reduce_ds_read_aux(ds: xarray.Dataset, keys: list[str]) xarray.Dataset

Reduce dataset to given keys, read additional data if necessary.

dubfi.fluxes.dataprovider.read_aux(ds: xarray.Dataset, keys: list[str] | None = None) xarray.Dataset

Read additional data for given dataset.

If dataset has attribute “is_auxiliary_to_data_in”, read additional data from that location. If keys are given, read only the given keys from additional data. Otherwise, read all additional data.