dubfi.fluxes.dataprovider_dense

Module providing flux inversion data for dense matrix inversion.

Changed in version 0.1.2: (renamed module)

Changed in version 0.1.1.

Added in version 0.1.0: (initial release)

Classes

DataProvider

Abstract data provider for dense and CSC sparse implementation.

DenseDataProvider

Data provider for dense linear algebra implementation.

DiagonalDataProvider

Data provider for diagonal R matrix with dense linear algebra implementation.

Functions

_count_same_site_obs(time, idx_bnds, ssh_lst)

Count observations at same time and station.

Module Contents

class dubfi.fluxes.dataprovider_dense.DataProvider(config, apply_inflation=True)

Bases: dubfi.fluxes.dataprovider.InsituDataProvider

Abstract data provider for dense and CSC sparse implementation.

Construct instance based on configuration file and data in files.

Parameters:
  • config (str | dict)

  • apply_inflation (bool)

property config: dict

Inversion configuration.

Return type:

dict

property coords: dict

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

Return type:

dict

read_data()

Read data from files.

Note

Data are read and interpreted without checking the units.

get_Y()

Get Y vector (observation minus model prior).

Return type:

dubfi.linalg.types.Vector

get_H()

Get H parametrized vector (observation operator).

Return type:

dubfi.linalg.dense.LinParamVector

class dubfi.fluxes.dataprovider_dense.DenseDataProvider(config, apply_inflation=True)

Bases: DataProvider

Data provider for dense linear algebra implementation.

Added in version 0.1.1.

Construct instance based on configuration file and data in files.

Parameters:
  • config (str | dict)

  • apply_inflation (bool)

get_R()

Get R parametrized operator (error covariance matrix).

Return type:

dubfi.linalg.dense.DenseEnsLinPostR

class dubfi.fluxes.dataprovider_dense.DiagonalDataProvider(config, apply_inflation=False)

Bases: DataProvider

Data provider for diagonal R matrix with dense linear algebra implementation.

Added in version 0.1.1.

Construct instance based on configuration file and data in files.

Parameters:
  • config (str | dict)

  • apply_inflation (bool)

get_R(apply_inflation=True)

Get diagonal R parametrized operator (error covariance matrix).

Estimate a diagonal R matrix. The configuration entries uncertainty.diag_R_… define whether ensemble information is used.

This diagonal R matrix has the same uncertainty inflation and outlier weighting applied as any the non-diagonal R matrices.

Parameters:

apply_inflation (bool)

Return type:

dubfi.linalg.dense.DiagonalEnsLinPostR

dubfi.fluxes.dataprovider_dense._count_same_site_obs(time, idx_bnds, ssh_lst)

Count observations at same time and station.

Count number of observations at same station and same time, irrespective of the sampling height. Return this number as an array alinged with the observations.

This is a helper function for DataProvider.read_data().

Scientific reasoning: Multiple observations at the same station and time have a strongly correlated model uncertainty. The inversion will assume that the model data mismatch at different sampling heights should agree up to the baseline uncertainty. This will in general underestimate the representativity error. Furthermore, it will give more weights to stations with more sampling heights. Both problems are mitigated by increasing the baseline uncertainty when multiple sampling heights are in use.

Parameters:
  • time (numpy.ndarray)

  • idx_bnds (numpy.ndarray)

  • ssh_lst (list[str] | numpy.ndarray)

Return type:

numpy.ndarray