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, andoem.measurement_vec_error_covmatat 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_valuesstores 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 ofoemCalcReduced()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()andoemCalcReduced(). Defaults toself.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]