Static Background Error Covariance

General B Design

The multivariate background error covariance \(\mathbf{B}\) is designed primarily to follow that of the Weather Research and Forecasting (WRF) model Data Assimilation system (WRFDA) and the Gridpoint Statistical Interpolation (GSI). It uses both a generic component from the SABER repository and a model-specific compoment from the MPAS-JEDI repository. It is implemented as a set of linear variable changes to a block-diagonal correlation matrix \(\mathbf{C}\).

\[\mathbf{B}=\mathbf{K}_{1}\mathbf{K}_{2}\mathbf{\Sigma}\mathbf{C}\mathbf{\Sigma}^{T}\mathbf{K}_{2}^{T}\mathbf{K}_{1}^{T}\]

The set of linear variable changes includes: (1) a linear variable change \(\mathbf{K}_{1}\), control2analysis in the MPAS-JEDI repository, (2) a linear variable change \(\mathbf{K}_{2}\), BUMP Vertical BALance (VBAL) in the SABER repository, and (3) a linear variable change \(\mathbf{\Sigma}\), BUMP VARiance (VAR) in the SABER repository.

\(\mathbf{K}_{1}\) transforms stream_function and velocity_potential to uReconstructZonal and uReconstructMeridional. If users choose the pseudo relative humidity, relhum, as the moisture control variable, \(\mathbf{K}_{1}\) will also transform relhum to spechum. Please refer to Control2Analysis for explanation of control2analysis.

\(\mathbf{K}_{2}\) and \(\mathbf{\Sigma}\) depend on a decomposition of velocity_potential, temperature, and surface_pressure into a “balanced” component that is predictable from stream_function and a residual, “unbalanced” component that is independent of streamfunction.

\(\mathbf{K}_{2}\) calculates the the balanced parts of velocity_potential, temperature, and surface_pressure from stream_function, and returns the full code:velocity_potential, temperature, and surface_pressure, that is, the sum of the balanced and unbalanced parts for each variable. The balanced parts are calculated via linear regression with pre-diagnosed coefficients. No balance is applied to spechum or relhum with other variables.

\(\mathbf{\Sigma}\) is a diagonal matrix with pre-diagnosed error standard deviations for stream_function, spechum (or relhum), and the unbalanced parts of [velocity_potential, temperature, surface_pressure].

The block-diagonal correlation matrix \(\mathbf{C}\) consists of univariate correlation matrices that define the spatial autocorrelations of stream_function, spechum (or relhum), and the unbalanced parts of [velocity_potential, temperature, surface_pressure]. The application of these univariate correlation matrices is implemented using BUMP Normalized Interpolated Convolution from an Adaptive Subgrid (NICAS) with pre-diagnosed horizontal and vertical correlation length scales.

B Estimation

Please see the operators-generation section in SABER’s Getting started to generate various BUMP statistics in general.

One missing operation in MPAS-JEDI is an inverse operation of control2analysis (i.e., from zonal and meridional winds to stream_function and velocity_potential) because solving the Poisson’s equation on the unstructured grid efficiently is not straightforward. Thus a spherical harmonics-based NCL (NCAR Command Language) function is used on an intermediate lat/lon grid, then the stream_function and velocity_potential fields on the lat/lon grids are interpolated back to the MPAS native mesh.

With the samples of [stream_function, velocity_potential, temperature, spechum or relhum, surface_pressure], we diagnose the following B statistics: the regression coefficients defining the balanced components by using the BUMP VBAL driver, the error standard deviations by using BUMP VAR driver, and the horizontal and vertical correlation length scales by using the BUMP Hybrid DIAGnostics driver. Finally, given the diagnosed length scales, various quantities used in the BUMP NICAS operations can be pre-calculated. When we run the variational applications, we need to specify the location of saved netcdf output files from BUMP VBAL, BUMP VAR, and BUMP NICAS.

If users want to diagnose the B statistics for hydrometeors, the variables names [qc, qi, qr, qs, qg] need to be added to input variables yaml key in the parameter estimation application together with [stream_function, velocity_potential, temperature, spechum or relhum, surface_pressure].