oemBasisCalc

Workspace.oemBasisCalc(self, oem: OptimalEstimationData = self.oem, full_matrices: Index = 1) None

Compute matched state and measurement bases and their information spectrum.

Uses oem.measurement_jac, oem.model_state_covmat, and oem.measurement_vec_error_covmat at their current linearization point. With \(\mathbf{S}_a=\mathbf{L}_a\mathbf{L}_a^{\top}\) and \(\mathbf{S}_\epsilon=\mathbf{L}_\epsilon\mathbf{L}_\epsilon^{\top}\), compute

\[\mathbf{L}_\epsilon^{-1}\mathbf{J}\mathbf{L}_a =\mathbf{U}\boldsymbol{\Sigma}\mathbf{V}^{\top},\qquad \mathbf{B}_{\rm full}=\mathbf{L}_a\mathbf{V},\qquad \mathbf{C}_{\rm full}=\mathbf{U}^{\top}\mathbf{L}_\epsilon^{-1}.\]

With full_matrices=1 (the default), both bases are square and invertible, including all null-space directions. This step discards no information: the full prior is \(\mathbf{B}_{\rm full}\mathbf{B}_{\rm full}^{\top}\), and the full measurement noise is \(\mathbf{C}_{\rm full}^{-1}\mathbf{C}_{\rm full}^{-\top}\). oem.basis_singular_values stores the descending singular values of the whitened Jacobian. The bases and spectrum must be kept together; mode signs and rotations within repeated singular values are not unique.

Use oemBasisReduce() afterwards to truncate these basis inputs of oemCalcReduced() in place. Save copies before selection if you need to restore removed modes without repeating the decomposition. Skip selection for a change of coordinates without any reduction.

Set full_matrices=0 for economical bases: both retain min(m,n) singular modes, so their shapes are n by min(m,n) and min(m,n) by m. This avoids square dense bases in the larger dimension. It omits only the additional null-space vectors of the supplied linearization. For m < n, the state basis no longer reconstructs the full prior covariance; omitted state directions retain prior uncertainty. Nonlinear models can acquire sensitivity to omitted directions away from this linearization. oemBasisReduce can further truncate these bases.

This preparation does not run an agenda or change its inputs. Covariance components use diagonal scaling or Cholesky, without forming covariance inverses. The full SVD and bases require dense storage, including a state-square and a measurement-square basis. There is no configured memory cutoff. Recompute all three outputs when the chosen linearization or covariance assumptions change. See Reduced optimal estimation.

Author: Richard Larsson

Parameters:
  • oem (~pyarts3.arts.OptimalEstimationData, optional) – Numerical problem and results for oemCalc() and oemCalcReduced(). Defaults to self.oem. [INOUT]

  • full_matrices (~pyarts3.arts.Index, optional) – Keep both complete null spaces (1), or use economical min(m,n)-mode bases (0). Defaults to 1 [IN]