Correlated Observation Error Covariance with Diffusion

The diffusion-based correlated R operator in UFO applies the oops::Diffusion capability similar to how it is implemented in SABER by the Explicit Diffusion block. Both operators use a forward stepping finite-difference method to propagate error covariances to nearby locations (see [WCMP21] for more details of the implementation, though the paper discusses implicit diffusion the calibration process discussed in the reference is implemented by this operator).

When initialized, the UFO operator constructs a mesh from the observation locations read from the observations’ ioda::ObsSpace (see figure below). Diffusion will occur along edges that connect observation locations.

../../../../_images/mesh.png

Fig. 26 Meshing produced from a thinned set of geostationary brightnessTemperature observations. See figure below for the spatial locations of the observations

The result of the application of the operator to a single observation (but with the mesh produced from the full set of observations shown in figure below) is shown below:

../../../../_images/diffusionDirac.png

Fig. 27 The result of the diffusion operator being applied to a ‘dirac’ obsVector (a vector of all zero except for a single one) using the mesh from above.

The options for the operator include:

  • correlation variable names: the names of variables to which the operator will be applied. Currently, this operator is only supported for use with a single variable.

  • correlation lengthscale: length scale corresponding to the standard deviation of the guassian profile this operator will emulate applying.

  • normalization iterations: number of iterations used to calculate the set of grid-dependent normalization coefficients. See the documentation of the SABER Explicit Diffusion block for more details on the normalization procedure. For an operational/scientifically valid situation a value of at least ~10000 is recommended.

Below is an example of a YAML configuration of the diffusion-based R operator:

obs error:
  covariance model: diffusion
  correlation variable names: [brightnessTemperature]
  obs channels: [11]  #redundant with channels in obsSpace parameters
  correlation lengthscale: 200000. # meters
  normalization iterations: 10000