dubfi.fluxes.localization

Localization utilities.

Added in version 0.1.1.

Changed in version 0.1.2: (renamed some methods)

Attributes

GASPARI_COHN_CUTOFF

Cutoff scale of gaspari_cohn().

GASPARI_COHN_GAUSS_CUTOFF

Cutoff scale of gaspari_cohn_gauss().

LOCALIZATION_FUNCTIONS

Access localization functions by (lower case) name.

Classes

Localization

Localization class for in-situ observations.

Functions

gaspari_cohn(→ numpy.ndarray)

Gaspari-Cohn function.

gaspari_cohn_gauss(→ numpy.ndarray)

Gaspari-Cohn with scale adjusted to match Gaussian.

gauss(→ numpy.ndarray)

Gaussian, \(\exp(-\tfrac{1}{2} x^2)\).

Module Contents

dubfi.fluxes.localization.gaspari_cohn(x: numpy.ndarray) numpy.ndarray

Gaspari-Cohn function.

This function has compact support on [-2, 2].

dubfi.fluxes.localization.GASPARI_COHN_CUTOFF = 2.0

Cutoff scale of gaspari_cohn().

gaspari_cohn(x) == 0 for abs(x) > GASPARI_COHN_CUTOFF.

dubfi.fluxes.localization.gaspari_cohn_gauss(x: numpy.ndarray) numpy.ndarray

Gaspari-Cohn with scale adjusted to match Gaussian.

This function has compact support on [-2/sqrt(0.3), 2/sqrt(0.3)] and is guaranteed to be zero for |x| >= 3.6515.

dubfi.fluxes.localization.GASPARI_COHN_GAUSS_CUTOFF = 3.6514837167011076

Cutoff scale of gaspari_cohn_gauss().

gaspari_cohn_gauss(x) == 0 for abs(x) > GASPARI_COHN_GAUSS_CUTOFF.

dubfi.fluxes.localization.gauss(x: numpy.ndarray) numpy.ndarray

Gaussian, \(\exp(-\tfrac{1}{2} x^2)\).

dubfi.fluxes.localization.LOCALIZATION_FUNCTIONS

Access localization functions by (lower case) name.

class dubfi.fluxes.localization.Localization(func: Callable | str, hscale: float, vscale: float, tscale: numpy.timedelta64)

Localization class for in-situ observations.

Localization object allows creating localization matrices.

Parameters:
  • func (callable | {"Gauss", "Gaspari-Cohn", "Gaspari-Cohn-scaled"}) – localization function. This must take an array as argument and describe a positive, symmetric function f(x) that decreases monotonically from |x| from f(0)=1 to f(x)=0 (at least asymptotically) for large x. Names for known localization functions are allowed. Note that “Gaspari-Cohn-scaled” is an approximation of a Gaussian with compact support, see gaspari_cohn_gauss().

  • hscale (float) – horizontal scale in meters

  • vscale (float) – vertical scale in meters

  • tscale (np.timedelta64) – temporal scale

classmethod from_config(config: dict)

Construct Localization from configuration.

property function

Localization function, requires normalized input.

rel_dist_horizontal(lon: numpy.ndarray, lat: numpy.ndarray, lon2: numpy.ndarray | None = None, lat2: numpy.ndarray | None = None) numpy.ndarray

Matrix of normalized horizontal distances.

Changed in version 0.1.2: (renamed, added optional variables)

weights_spatial(lon: numpy.ndarray, lat: numpy.ndarray, height: numpy.ndarray, lon2: numpy.ndarray | None = None, lat2: numpy.ndarray | None = None, height2: numpy.ndarray | None = None) numpy.ndarray

Spatial weights (localization) matrix.

Changed in version 0.1.2: (added optional variables)

weights_time(time: numpy.ndarray, time2: numpy.ndarray | numpy.datetime64 | None = None) numpy.ndarray

Temporal weights (localization) matrix.

Changed in version 0.1.2: (added optional variables)

rel_dist_horizontal_unique(lon: numpy.ndarray, lat: numpy.ndarray) tuple[numpy.ndarray, numpy.ndarray]

Return normalized horizontal distance matrix for unique coordinates.

Returns:

  • dist (np.ndarray) – distance matrix

  • indices (np.ndarray) – indices into dist along lon, lat coordinates

  • .. versionchanged:: 0.1.2 (renamed)

matrix(lon: numpy.ndarray, lat: numpy.ndarray, height: numpy.ndarray, time: numpy.ndarray) numpy.ndarray

Construct localization matrix based on coordinates.

All input arrays must be one-dimensional and aligned.

Parameters:
  • lon (np.ndarray) – longitude (degrees east)

  • lat (np.ndarray) – latitude (degrees east)

  • height (np.ndarray) – vertical coordinate in meters

  • time (np.ndarray) – time relative to localization time scale with arbitrary offset

Returns:

localization_weights – localization matrix specifying weights between each combination of coordiniates

Return type:

np.ndarray

matrix_sparse(lon: numpy.ndarray, lat: numpy.ndarray, height: numpy.ndarray, time: numpy.ndarray, threshold: float = 1e-05, chunk: int = 500) scipy.sparse.csc_array

Construct localization matrix based on coordinates, see matrix().