oemCalcReduced

Workspace.oemCalcReduced(self, oem: OptimalEstimationData = self.oem, atm_field: AtmField = self.atm_field, abs_bands: AbsorptionBands = self.abs_bands, measurement_sensor: ArrayOfSensorObsel = self.measurement_sensor, surf_field: SurfaceField = self.surf_field, subsurf_field: SubsurfaceField = self.subsurf_field, jac_targets: JacobianTargets = self.jac_targets, inversion_iterate_agenda: Agenda = self.inversion_iterate_agenda, settings: OptimalEstimationSettings = OptimalEstimationSettings(method=gn, max_iter=10, stop_dx=0.01, max_start_cost=inf, cg_tolerance=1e-10, cg_max_iter=0, lm=LevenbergMarquardtSettings(initial_damping=10, decrease_factor=2, increase_factor=2, maximum_damping=100, damping_threshold=1, convergence_damping_limit=0, maximum_trials=100), display_progress=0, clear_matrices=false)) None

Run oemCalc in reduced state and measurement coordinates.

Unchecked OEM data is validated before covariance preparation or output changes. Successful validation is reused on subsequent calls. Call oemCheck() to force revalidation after in-place edits.

Supply both model_state_basis_mat \(\mathbf{B}\) (full states by reduced states) and measurement_basis_mat \(\mathbf{C}\) (reduced measurements by full measurements). Columns of \(\mathbf{B}\) and rows of \(\mathbf{C}\) must respectively be linearly independent. Use an identity matrix to leave either space unchanged. The physical agenda and its real targets operate on the full state \(\vec{x}=\vec{x}_a+\mathbf{B}\vec{z}\). Only the solver uses \(\mathbf{J}_r=\mathbf{C}\mathbf{J}\mathbf{B}\), prior covariance \((\mathbf{B}^{\top}\mathbf{S}_a^{-1}\mathbf{B})^{-1}\), and measurement covariance \(\mathbf{C}\mathbf{S}_\epsilon\mathbf{C}^{\top}\). The starting state must lie in this affine subspace, or be empty to start at the prior. Full-size input fit/Jacobian caches must describe that start.

All oemCalc methods are available. LM damping is \(\mathbf{B}^{\top}\operatorname{diag}(\mathbf{S}_a^{-1})\mathbf{B}\). stop_dx uses the reduced state dimension. Normalization vectors, when supplied, must have reduced dimensions; the same method restrictions as oemCalc apply. Full forward simulations and Jacobians are still computed. Returned state, fit and Jacobian remain full-size; the gain is \(\mathbf{B}\mathbf{G}_r\mathbf{C}\). Initial/final diagnostic costs and max_start_cost use the full residual and original measurement count, including discarded measurements. Iteration progress and convergence use the reduced objective. Errors during iteration or final-state restoration appear in oem_diagnostics with status Error.

pyarts3.retrieval.information_from_workspace(...).reduction(...) supplies both matrices from leading singular modes. Its loss estimates and posterior covariance are local linear quantities. Reduction can discard information; discarded state modes retain prior uncertainty, not zero uncertainty. See Reduced optimal estimation for the mathematics and limits of lossless reduction.

Warning

Automatic size constraints are not checked for this method. Group-invariant checks on read-only inputs still apply.

Author: Patrick Eriksson

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

  • atm_field (~pyarts3.arts.AtmField, optional) – An atmospheric field in ARTS, this is the main atmospheric data structure in ARTS. Defaults to self.atm_field. [INOUT]

  • abs_bands (~pyarts3.arts.AbsorptionBands, optional) – Bands of absorption lines for line-by-line (LBL) calculations. Defaults to self.abs_bands. [INOUT]

  • measurement_sensor (~pyarts3.arts.ArrayOfSensorObsel, optional) – A list of sensor elements that fully describe one or more observing sensor(s). Defaults to self.measurement_sensor. [INOUT]

  • surf_field (~pyarts3.arts.SurfaceField, optional) – The surface field. Defaults to self.surf_field. [INOUT]

  • subsurf_field (~pyarts3.arts.SubsurfaceField, optional) – The sub-surface field. Defaults to self.subsurf_field. [INOUT]

  • jac_targets (~pyarts3.arts.JacobianTargets, optional) – A list of targets for the Jacobian Matrix calculations. Defaults to self.jac_targets. [IN]

  • inversion_iterate_agenda (~pyarts3.arts.Agenda, optional) – Evaluate a retrieval state. See oemCalc(). Defaults to self.inversion_iterate_agenda. [IN]

  • settings (~pyarts3.arts.OptimalEstimationSettings, optional) – Algorithm, limits, tolerances, LM damping and output controls. Defaults to OptimalEstimationSettings(method=gn, max_iter=10, stop_dx=0.01, max_start_cost=inf, cg_tolerance=1e-10, cg_max_iter=0, lm=LevenbergMarquardtSettings(initial_damping=10, decrease_factor=2, increase_factor=2, maximum_damping=100, damping_threshold=1, convergence_damping_limit=0, maximum_trials=100), display_progress=0, clear_matrices=false) [IN]