The CDF Prerequisites assume that every input product is a complete optimal estimation (OE) product: retrieved state vector, a priori state vector and covariance, averaging kernel matrix (AKM) and total error covariance matrix (CM), all on the full state vector. Many level 2 products do not satisfy this assumption, for one of two reasons. Either the retrieval does not use an a priori covariance: Tikhonov regularisation, Levenberg–Marquardt (LM) minimisation without constraint, or a regularisation applied after convergence. Or the product is incomplete: the file does not report everything the formulas presuppose (AKM and CM of the species block only, diagonal covariances, no reference profile, compressed AKM).

This page states what the CDF actually takes from a product, which relations of the Prerequisites no longer hold for non-OE products, how the missing quantities are reconstructed or replaced, and which tests replace the auto-consistency test of the CDF Tests page. The material was developed on N2O products (MIPAS-ESA v8, TES, IASI-TN2OR, Odin-SMR, IASI-MUSICA, ACE-FTS); all numbers quoted here come from those tests. The notation is that of the CDF Formulas page; the index i is dropped where a single product is concerned.

1. What the CDF takes from a product

The CDF is equivalent to the simultaneous retrieval of all the measurements (Ceccherini et al., 2015). From the i-th product it needs two quantities that belong to the measurement alone: the information matrix \mathbf{F}_{i} = \mathbf{K}_{i}^{T}\mathbf{S}_{yi}^{-1}\mathbf{K}_{i} and the vector \mathbf{b}_{i} = \mathbf{K}_{i}^{T}\mathbf{S}_{yi}^{-1}\mathbf{y}_{i}, where \mathbf{K}_{i} is the Jacobian of the forward model at the solution, \mathbf{y}_{i} the measurement vector (reduced by the forward model at the linearisation point, so that \mathbf{y}_{i} \simeq \mathbf{K}_{i}\mathbf{x} + \boldsymbol{\varepsilon}_{i}) and \mathbf{S}_{yi} its error CM. In Configuration A the fused profile is

\mathbf{x}_{f} = \left( \sum_{i = 1}^{N}{\mathbf{F}_{i}} + \mathbf{S}_{a}^{-1} \right)^{-1}\left( \sum_{i = 1}^{N}{\mathbf{b}_{i}} + \mathbf{S}_{a}^{-1}\mathbf{x}_{a} \right)
(N.1)

which is Eq. (A.1) with \mathbf{F}_{i} = \mathbf{S}_{i}^{-1}\mathbf{A}_{i} and \mathbf{b}_{i} = \mathbf{S}_{i}^{-1}\mathbf{\alpha}_{i}. The product file does not contain \mathbf{K}_{i}, \mathbf{S}_{yi} or \mathbf{y}_{i}: it contains the retrieved profile, the AKM, a reference profile and an error CM, in which the measurement information is mixed with the constraint of the retrieval. For a linear (or linearised at the solution) retrieval that minimises the cost

\left( \mathbf{y}_{i} – \mathbf{K}_{i}\mathbf{x} \right)^{T}\mathbf{S}_{yi}^{-1}\left( \mathbf{y}_{i} – \mathbf{K}_{i}\mathbf{x} \right) + \left( \mathbf{x} – \mathbf{x}_{ri} \right)^{T}\mathbf{R}_{i}\left( \mathbf{x} – \mathbf{x}_{ri} \right)
(N.2)

with \mathbf{R}_{i} a symmetric constraint matrix and \mathbf{x}_{ri} a reference profile, the characterisation of the product is

\mathbf{S}_{i} = \left( \mathbf{F}_{i} + \mathbf{R}_{i} \right)^{-1}, \qquad \mathbf{A}_{i} = \mathbf{S}_{i}\mathbf{F}_{i}, \qquad \mathbf{S}_{ni} = \mathbf{S}_{i}\mathbf{F}_{i}\mathbf{S}_{i} = \mathbf{A}_{i}\mathbf{S}_{i}, \qquad \mathbf{\alpha}_{i} = \widehat{\mathbf{x}}_{i} – \left( \mathbf{I} – \mathbf{A}_{i} \right)\mathbf{x}_{ri}
(N.3)

Here \mathbf{S}_{i} is the total CM (the inverse of the Hessian of the cost) and \mathbf{S}_{ni} the part due to measurement noise. For OE, \mathbf{R}_{i} = \mathbf{S}_{ai}^{-1} and \mathbf{x}_{ri} = \mathbf{x}_{ai}: (N.3) reduces to Eq. (P1) and to the relationship \mathbf{S}_{ni} = \mathbf{A}_{i}\mathbf{S}_{i} of the Prerequisites, and \mathbf{S}_{i} – \mathbf{S}_{ni} = \left( \mathbf{I} – \mathbf{A}_{i} \right)\mathbf{S}_{ai}\left( \mathbf{I} – \mathbf{A}_{i} \right)^{T} is the smoothing error. For a generic symmetric constraint, \mathbf{S}_{ni} = \mathbf{A}_{i}\mathbf{S}_{i} and \mathbf{S}_{i} = \mathbf{S}_{ni} + \mathbf{S}_{i}\mathbf{R}_{i}\mathbf{S}_{i} still hold, without \mathbf{R}_{i} being the inverse of a covariance; the term \mathbf{S}_{i}\mathbf{R}_{i}\mathbf{S}_{i} is not a statistical error. \mathbf{S}_{ni} can be obtained from \mathbf{A}_{i} and \mathbf{S}_{i}; the converse requires \mathbf{R}_{i}.

Reconstructing \mathbf{F}_{i} and \mathbf{b}_{i} means removing \mathbf{S}_{i} from \mathbf{A}_{i} and \mathbf{\alpha}_{i}. The two CDF formulations do it in two ways:

\text{CDF(2015):}\quad \mathbf{F}_{i} = \mathbf{A}_{i}^{T}\mathbf{S}_{ni}^{-1}\mathbf{A}_{i}, \quad \mathbf{b}_{i} = \mathbf{A}_{i}^{T}\mathbf{S}_{ni}^{-1}\mathbf{\alpha}_{i}; \qquad \text{CDF(2022):}\quad \mathbf{F}_{i} = \mathbf{S}_{i}^{-1}\mathbf{A}_{i}, \quad \mathbf{b}_{i} = \mathbf{S}_{i}^{-1}\mathbf{\alpha}_{i}
(N.4)

Both give the same \mathbf{F}_{i}, independent of \mathbf{R}_{i}: when the fusion a priori \left( \mathbf{x}_{a}, \mathbf{S}_{a} \right) is external, neither formulation uses the a priori covariance of the product. What differs is the covariance each one needs, and the pairing is mandatory: the noise CM \mathbf{S}_{ni} with CDF(2015), the total CM \mathbf{S}_{i} = \left( \mathbf{F}_{i} + \mathbf{R}_{i} \right)^{-1} with CDF(2022). \mathbf{S}_{ni} inherits the rank of \mathbf{F}_{i} and is singular when the product has fewer independent pieces of information than levels; the pseudo-inverse keeps \mathbf{F}_{i} exact (Ceccherini et al., 2022) but its threshold acts on \mathbf{b}_{i} where the measurement is weak. \mathbf{S}_{i} has full rank because the constraint keeps it finite in the unmeasured directions, and the inversion is exact. The wrong pairing gives a wrong information matrix without any numerical warning: CDF(2022) with \mathbf{S}_{ni} in place of \mathbf{S}_{i} returns \mathbf{F}_{i} + \mathbf{R}_{i} (the constraint counted as measurement); CDF(2015) with \mathbf{S}_{i} in place of \mathbf{S}_{ni} returns \mathbf{F}_{i}\mathbf{S}_{i}\mathbf{F}_{i}.

Single-level example, information f = 4, constraint r = 1 Measured level (f = 4) Unmeasured level (f = 0)
Quantities in the product: A = f/(f+r), S = 1/(f+r), S_{n} = f/(f+r)^{2} 0.8; 0.2; 0.16 0; 1; 0
CDF(2015): A^{2}/S_{n} 4 (correct) 0/0: decided by the pseudo-inverse threshold
CDF(2022): A/S 4 (correct) 0 (correct)
CDF(2022) with S_{n} instead of S: A/S_{n} 5 = f + r 0/0
CDF(2015) with S instead of S_{n}: A^{2}/S 3.2 = f^{2}/(f+r) 0

Table 1: Effect of the covariance–formula pairing on a single level.

The documentation of a product says which covariance the file contains. The name alone is not sufficient: a covariance called “total” serves CDF(2022) only if it is \left( \mathbf{F}_{i} + \mathbf{R}_{i} \right)^{-1}, that is, if the smoothing error is computed with the same constraint used in the retrieval. A total CM whose smoothing term is computed from a climatology, or which includes systematic errors, is not (TES N2O is a case in point, Section 4).

2. Optimal estimation, Tikhonov and Levenberg–Marquardt

Two levels must be kept apart: the cost and the way it is minimised. OE and Tikhonov define the cost, that is, which constraint is added to the \chi^{2}: statistical (\mathbf{S}_{a}^{-1}) or mathematical (\mathbf{R}, typically \lambda\mathbf{L}^{T}\mathbf{L} with \mathbf{L} a difference operator). Gauss–Newton and LM are iterative strategies to find the minimum of a non-linear cost, with or without a constraint. “Levenberg–Marquardt” in the description of a product therefore says how the iterations were done, not which kind of solution was obtained. When the LM step vanishes, the equation of the minimum does not contain the damping parameter: at convergence a constrained cost minimised with LM gives the OE (or Tikhonov) solution, and AKM and CM are computed with zero damping, as in the MIPAS ESA v8 processor for the species retrieved in OE (Raspollini et al., 2022).

Optimal estimation Tikhonov Unconstrained \chi^{2} minimised with LM
Cost \chi^{2} + \left( \mathbf{x} – \mathbf{x}_{a} \right)^{T}\mathbf{S}_{a}^{-1}\left( \mathbf{x} – \mathbf{x}_{a} \right) \chi^{2} + \left( \mathbf{x} – \mathbf{x}_{r} \right)^{T}\mathbf{R}\left( \mathbf{x} – \mathbf{x}_{r} \right) \chi^{2}; the damping acts on the step
Nature of the constraint statistical: \mathbf{S}_{a} is the expected variability mathematical: \mathbf{R} damps oscillations, is not the inverse of a covariance and is often singular algorithmic: limits the step, vanishes at convergence
Reference profile \mathbf{x}_{a} \mathbf{x}_{r} (a priori, or zero for constraints on derivatives only) initial profile \mathbf{x}_{0}, if the iterations stop before convergence
AKM \left( \mathbf{F} + \mathbf{S}_{a}^{-1} \right)^{-1}\mathbf{F} \left( \mathbf{F} + \mathbf{R} \right)^{-1}\mathbf{F} at convergence \mathbf{I}; after n steps \mathbf{I} – \mathbf{G}^{n} (see below)
Total CM \mathbf{S} \left( \mathbf{I} – \mathbf{A} \right)\mathbf{S}_{a} \left( \mathbf{I} – \mathbf{A} \right)\mathbf{R}^{-1} if \mathbf{R} is invertible; otherwise \left( \mathbf{F} + \mathbf{R} \right)^{-1}, which requires \mathbf{F} and \mathbf{R} at convergence \mathbf{F}^{-1} = \mathbf{S}_{n}

Table 2: The three retrieval types compared on the cost that remains in the solution; \chi^{2} = \left( \mathbf{y} – \mathbf{K}\mathbf{x} \right)^{T}\mathbf{S}_{y}^{-1}\left( \mathbf{y} – \mathbf{K}\mathbf{x} \right).

Which relations of the Prerequisites fall. For a Tikhonov product, requirement 1 (OE) is not met, requirement 5 is met by the reference profile \mathbf{x}_{r} in place of \mathbf{x}_{a}, and requirement 6c has no counterpart: \mathbf{S}_{a} does not exist, and \mathbf{R} is in general singular (a constraint on derivatives does not penalise constant profiles). Equations (P1)–(P3) are replaced by

\mathbf{I} – \mathbf{A}_{i} = \mathbf{S}_{i}\mathbf{R}_{i}, \qquad \mathbf{S}_{i} = \left( \mathbf{I} – \mathbf{A}_{i} \right)\mathbf{R}_{i}^{-1} \quad \text{if } \mathbf{R}_{i} \text{ is invertible}
(N.5)

which generalises (P1). Requirements 6a and 6b (AKM and one of the two CMs on the full state vector) remain, with the pairing of Section 1. The CDF stays exact: with \mathbf{S}_{ni} and CDF(2015), which is the covariance usually present in Tikhonov product files; or with CDF(2022) if \mathbf{R}_{i} is known, through (N.5) or, when \mathbf{R}_{i} is singular, through \mathbf{S}_{i} = \left( \mathbf{F}_{i} + \mathbf{R}_{i} \right)^{-1} with \mathbf{F}_{i} from CDF(2015), where the pseudo-inverse threshold comes back into play.

Levenberg–Marquardt without a constraint. Each LM step linearises the model around the current estimate \mathbf{x}_{k} and solves \mathbf{x}_{k+1} = \mathbf{x}_{k} + \left( \mathbf{F} + \lambda_{k}\mathbf{D} \right)^{-1}\mathbf{K}^{T}\mathbf{S}_{y}^{-1}\left( \mathbf{y}_{obs} – f\left( \mathbf{x}_{k} \right) \right), with \mathbf{D} a scaling matrix. A single step has the form of a Tikhonov solution with \mathbf{R} = \lambda_{k}\mathbf{D} and reference \mathbf{x}_{k}; the difference is that the constraint is centred on the current estimate and vanishes when the step goes to zero. Three situations follow.

  • At convergence the solution is the minimum of the \chi^{2} alone: \mathbf{A} = \mathbf{I} and \mathbf{S} = \mathbf{S}_{n} = \mathbf{F}^{-1}, on the retrieval grid. This is the simplest case for the CDF (both formulations coincide), but \mathbf{F}^{-1} is ill-conditioned and the profile oscillates; for this reason a regularisation is usually added. ACE-FTS N2O belongs here, on the grid of the tangent altitudes.
  • Convergence followed by a regularisation. The MIPAS ESA v8 processor minimises the \chi^{2} with a regularising LM scheme and applies, after convergence, a Tikhonov regularisation with a self-adapting constraint (Raspollini et al., 2022). The product then falls in the Tikhonov case, with the reference profile of that regularisation (Section 3).
  • Iterations stopped with residual damping. In the linear case with constant \lambda, after n steps from the initial profile \mathbf{x}_{0} the AKM is \mathbf{A}_{n} = \mathbf{I} – \mathbf{G}^{n} with \mathbf{G} = \left( \mathbf{F} + \lambda\mathbf{D} \right)^{-1}\lambda\mathbf{D}: well-measured components converge in a few steps, poorly measured ones stay close to \mathbf{x}_{0}. The damping acts as a constraint that depends on the number of iterations, with reference profile \mathbf{x}_{0}; the equivalent constraint \mathbf{R}_{n} = \mathbf{F}\left( \left( \mathbf{I} – \mathbf{G}^{n} \right)^{-1} – \mathbf{I} \right) is in general not symmetric (it is if \mathbf{D} commutes with \mathbf{F}). Ceccherini and Ridolfi (2010) derive AKM and CM of the LM solution accounting for all the iterations, for this reason. For the CDF no exact formula exists when \mathbf{R}_{n} is not symmetric; the symmetry of \mathbf{A}\mathbf{C} (Section 4) measures the departure.
Retrieval type Needed from the file Formula
OE \mathbf{x}_{a}, \mathbf{A}, \mathbf{S} or \mathbf{S}_{n} CDF(2022) (or CDF(2015))
Tikhonov \mathbf{x}_{r}, \mathbf{A}, \mathbf{S}_{n}; \mathbf{R} for CDF(2022) CDF(2015); CDF(2022) if \mathbf{R} is known
OE or Tikhonov cost minimised with LM, at convergence as OE or Tikhonov as OE or Tikhonov
LM at convergence, no regularisation \mathbf{A} = \mathbf{I} on the retrieval grid, full \mathbf{S}_{n} = \mathbf{S} both (they coincide); \mathbf{F}^{-1} ill-conditioned
LM at convergence with a subsequent regularisation as Tikhonov, with the reference profile of the regularisation as Tikhonov
LM stopped with residual damping \mathbf{x}_{0}, AKM and CM that include the iterations none exact if \mathbf{R}_{n} is not symmetric; to be assessed with the symmetry of \mathbf{A}\mathbf{C}

Table 3: Implications for the CDF by retrieval type.

Reference profile and initial profile. The reference profile \mathbf{x}_{r} is part of the problem: it appears in the cost and defines the solution; where the measurement is uninformative the profile stays close to it. The initial profile \mathbf{x}_{0} is part of the algorithm: if the iterations reach the minimum of the cost, the solution does not depend on it. In \mathbf{\alpha}_{i} goes the profile towards which the solution is pulled: \mathbf{x}_{a} for OE, \mathbf{x}_{r} for Tikhonov and for LM at convergence, a combination of \mathbf{x}_{r} and \mathbf{x}_{0} with residual damping, which requires \mathbf{x}_{0} in the file or AKM and CM computed over the iterations.

3. Incomplete products

A product is incomplete for the CDF when the file does not report everything the formula presupposes. Four cases occur in the N2O products considered.

AKM and CM of the species block only. The state vector splits into the species s and the other elements o (other species, temperature, surface, continuum, offsets, pointing). The file reports \mathbf{A}_{ss} and \mathbf{S}_{ss}. If the constraint of the retrieval has no cross terms between the species and the other elements, \mathbf{R}_{so} = 0, from (N.5) it follows that

\mathbf{S}_{ss}^{-1}\mathbf{A}_{ss} = \mathbf{S}_{ss}^{-1} – \mathbf{R}_{ss} = \mathbf{F}_{ss} – \mathbf{F}_{so}\left( \mathbf{F}_{oo} + \mathbf{R}_{oo} \right)^{-1}\mathbf{F}_{os}
(N.6)

The right-hand side is the information of the measurement on the species alone, with the other elements marginalised (constrained by \mathbf{R}_{oo}, or free if \mathbf{R}_{oo} = 0). CDF(2022) applied to the species blocks is therefore exact: the interference of the other elements is inside \mathbf{S}_{ss}, and what is lost is only the possibility of fusing the other elements too. In this case \mathbf{A}_{ss}\mathbf{S}_{ss} is symmetric; if \mathbf{R}_{so} \neq 0 the relation does not hold and the symmetry of the block breaks. With CDF(2015) the block of \mathbf{S}_{n} alone is not sufficient: the error CM including the interference, \mathbf{S}_{n,ss} + \mathbf{A}_{so}\mathbf{S}_{oo}\mathbf{A}_{so}^{T}, is needed. On a synthetic retrieval (10 species levels, 4 other elements, 30 measurements) the asymmetry of \mathbf{A}_{ss}\mathbf{S}_{ss} and the departure of \mathbf{S}_{ss}^{-1}\mathbf{A}_{ss} from the marginal information are both 3 \cdot 10^{-16} with a block-separated constraint and with unconstrained other elements, and the asymmetry is 1.2 \cdot 10^{-2} with cross terms. A block symmetric to the precision of the files authorises the use of the blocks; the block symmetry alone does not distinguish a coupling constraint from other causes (convergence, file precision, form of the regularisation), but bounds its effect.

Diagonal covariances only. CDF(2022) inverts \mathbf{S}_{i}: with the diagonal alone the information recovered is not that of the measurement, and the symmetry of \mathbf{A}\mathbf{C} cannot serve as a check. The fused product remains numerically stable, but the weight given to the product is not controlled by the file. The remedy is the full matrices from the producer or, if the processor is public, the reconstruction of \mathbf{S}_{a} from its configuration: for Odin-SMR, \mathbf{S}_{i} = \left( \mathbf{I} – \mathbf{A}_{i} \right)\mathbf{S}_{ai} with \mathbf{S}_{ai} rebuilt from the configuration of the public processor brings the asymmetry from 0.76 (diagonal total CM of the file, AKM read as relative) to 0.033 and makes CDF(2015) and CDF(2022) equivalent in a limb + TES prototype (median DOF difference 0.001, against 0.9 with the diagonal total CM). For a product at convergence without constraint (ACE-FTS, diagonal \boldsymbol{\sigma} only), the errors of adjacent tangent altitudes are anticorrelated (median correlation −0.63 in a synthetic case built on real tangent altitudes); with a common a priori of 30 % and 6 km correlation the single-product CDF with the diagonal gives 9.79 DOF against 9.90 with the full CM and the profile moves by at most 0.15 \sigma_{f}; with a 5 % a priori the shift reaches 1.8 \sigma_{f}. The diagonal is sufficient when the product dominates the information; where it competes with another product or with a tight a priori the correlations are needed.

Reference profile absent. The MIPAS ESA v8 N2O files have no a priori; the regularisation is applied after convergence, \widehat{\mathbf{x}} = \left( \mathbf{F} + \mathbf{R} \right)^{-1}\mathbf{F}\,\mathbf{x}_{LM}, so the reference consistent with the formula is \mathbf{x}_{r} = 0 (or a profile in the null space of \mathbf{R}). In a limb/nadir prototype (146 MIPAS × IASI-TN2OR coincidences of 24–25 July 2011, common a priori with 30 % standard deviation and 6 km correlation) three choices give, within the limb coverage, a sum of the increases of the profile with altitude (an oscillation index, zero for a monotonic profile) of 72 ppbv with the common a priori as reference, 43 ppbv with \mathbf{x}_{r} = 0 and 3 ppbv with \mathbf{x}_{r} = \widehat{\mathbf{x}}, against 5 ppbv for the native MIPAS profile; DOF and AKM do not change. With the common a priori as reference the term \left( \mathbf{I} – \mathbf{A} \right)\mathbf{x}_{r} is wrong where the a priori is far from the truth (Antarctic vortex). With \mathbf{x}_{r} = 0 the CDF returns \mathbf{F}\,\mathbf{x}_{LM}, the measurement without the Tikhonov regularisation: the fused profile oscillates like \mathbf{x}_{LM} if the fusion a priori is loose, and the regularisation passes to the fusion a priori. With \mathbf{x}_{r} = \widehat{\mathbf{x}} the regularised profile is treated as a measurement with information \mathbf{F}: the smoothing of the product enters the profile twice, while AKM and DOF remain those of the measurement. This is an approximation, adopted in the prototype because it gives profiles as smooth as the native ones.

Relative or compressed AKM. IASI-MUSICA distributes the AKM in SVD form (rank 8–15 on the files of 14 July 2015) and no complete covariances, but it reports the constraint \mathbf{R} of the retrieval, from which \mathbf{S}_{a} = \mathbf{R}^{-1}, \mathbf{S} = \left( \mathbf{I} – \mathbf{A} \right)\mathbf{R}^{-1} and \mathbf{S}_{n} are reconstructed; the Odin-SMR AKM is declared in relative units but, according to the public processor code, is written in VMR/VMR (to be confirmed with the processor team). Every reconstruction is verified with the same symmetry check.

4. Tests that replace the auto-consistency test

The classical auto-consistency test (CDF of the product with its own a priori, which must return the product) requires \mathbf{S}_{ai}. For a product without it the test is not applicable, which is different from failed; on TES N2O no reconstruction of \mathbf{S}_{ai} preserves at the same time total CM, DOF and profile (test on one pixel). The following checks take its place; the symmetry check and tests A and B are computed in variables normalised by the standard deviations of the file, and the thresholds are those of the test scripts.

4.1 Symmetry of the product between AKM and covariance

For every profile, with \mathbf{C} the covariance of the file and \mathbf{D} = \mathrm{diag}\left( \sqrt{\mathrm{diag}\,\mathbf{S}_{i}} \right),

\mathbf{N} = \mathbf{D}^{-1}\mathbf{A}_{i}\mathbf{C}\,\mathbf{D}^{-1}, \qquad r = \frac{\left\| \mathbf{N} – \mathbf{N}^{T} \right\|_{F}}{\left\| \mathbf{N} \right\|_{F}}
(NT.1)

where \left\| \cdot \right\|_{F} is the Frobenius norm; r = 0 if \mathbf{A}_{i}\mathbf{C} is symmetric. The normalisation by \mathbf{D} makes r invariant to the units of each parameter, which is necessary when the state vector mixes a profile with off-grid elements (continuum, offsets): on the MIPAS N2O full state vector the raw metric gives 0.07 %, dominated by the few off-grid elements of large variance, the normalised one 8.1 %. Example: \mathbf{N} with unit diagonal and off-diagonal elements 0.1 and 0.12 gives \left\| \mathbf{N} – \mathbf{N}^{T} \right\|_{F} = 0.028, \left\| \mathbf{N} \right\|_{F} = 1.42, r = 0.020. Calibration on an OE product (MIPAS ozone, 1207 profiles): r = 2 \cdot 10^{-6} in median, the precision with which the files are written. The check is computed for each covariance of the file and says which formula it pairs with: CDF(2015) with \mathbf{S}_{ni} if r\left( \mathbf{A}_{i}\mathbf{S}_{ni} \right) is small, CDF(2022) with \mathbf{S}_{i} if r\left( \mathbf{A}_{i}\mathbf{S}_{i} \right) is small. It is necessary, not sufficient: \mathbf{A}_{i}\mathbf{S}_{ni} and \mathbf{A}_{i}\mathbf{S}_{i} are both symmetric, so the check cannot tell which covariance the file contains, only whether the numbers are consistent with \mathbf{A}_{i}. The same quantity computed with \mathbf{A}_{i}^{T} detects an AKM stored transposed (IASI-TN2OR: 1.41 with the AKM as read, 0.036 transposed).

4.2 Test A: identity with the constraint of the product

The CDF uses the fusion a priori only through \mathbf{S}_{a}^{-1}. In its place one puts the constraint \mathbf{R} of the product, which is never inverted and may be singular, with reference profile \mathbf{x}_{r}:

\mathbf{x}_{f} = \mathbf{x}_{r} + \left( \mathbf{F} + \mathbf{R} \right)^{-1}\mathbf{A}^{T}\mathbf{S}_{n}^{-1}\left( \widehat{\mathbf{x}} – \mathbf{x}_{r} \right), \qquad \mathbf{A}_{f} = \left( \mathbf{F} + \mathbf{R} \right)^{-1}\mathbf{F}, \qquad \mathbf{S}_{nf} = \left( \mathbf{F} + \mathbf{R} \right)^{-1}\mathbf{F}\left( \mathbf{F} + \mathbf{R} \right)^{-1}
(NT.2)

with \mathbf{F} = \mathbf{A}^{T}\mathbf{S}_{n}^{-1}\mathbf{A} (CDF(2015)); pseudo-inverses are used where \mathbf{S}_{n} or \mathbf{F} + \mathbf{R} are singular. If \mathbf{A}, \mathbf{S}_{n}, \mathbf{R} and \mathbf{x}_{r} are consistent, \mathbf{A}^{T}\mathbf{S}_{n}^{-1} = \mathbf{F} + \mathbf{R} and hence \mathbf{x}_{f} = \widehat{\mathbf{x}}, \mathbf{A}_{f} = \mathbf{A}, \mathbf{S}_{nf} = \mathbf{S}_{n}, as for OE with \mathbf{R} = \mathbf{S}_{a}^{-1}. The departure \boldsymbol{\delta} = \mathbf{x}_{f} – \widehat{\mathbf{x}} is measured in units of the error of the re-fused product, z = \max_{k}\left| \delta_{k} \right| / \sigma_{nf,k}. When the file does not report \mathbf{R}, it can be estimated as

\widehat{\mathbf{R}} = \mathrm{sym}\left( \mathbf{S}_{n}^{-1}\mathbf{A}\left( \mathbf{I} – \mathbf{A} \right) \right)
(NT.3)

which for a consistent product with invertible \mathbf{F} coincides with \mathbf{S}^{-1} – \mathbf{F} = \mathbf{R}.

Case Constraint z median z 95th perc. Profiles with z \le 0.1
MIPAS O3 OE (1207 profiles)\mathbf{S}_{a}^{-1} of the file6.7 \cdot 10^{-4}1.8 \cdot 10^{-3}99.2 %
MIPAS O3 OEestimated (NT.3)1.1 \cdot 10^{-4}3.4 \cdot 10^{-4}99.2 %
Synthetic Tikhonov, double precisiontrue2.9 \cdot 10^{-6}9.1 \cdot 10^{-6}100 %
Synthetic Tikhonov, float32true3.3 \cdot 10^{-4}1.4 \cdot 10^{-3}100 %
Synthetic Tikhonov, double precisionestimated (NT.3)2.86.80 %
TES N2O (2603 profiles)estimated (NT.3)9.9370.04 %

Table 4: Test A. The synthetic Tikhonov retrieval has 40 levels between 0 and 40 km, 30 channels with Gaussian weighting functions (6 km standard deviation), a first-derivative constraint with \lambda from 0.01 to 100, 20 noise realisations per configuration and DOF from 1.5 to 6.

With the true constraint the test works also for a singular Tikhonov constraint and at the precision of the files. The constraint cannot be recovered from \mathbf{A} and \mathbf{S}_{n} when \mathbf{F} has reduced rank, that is, when the product has less information than levels: in the unmeasured directions \mathbf{S}_{n} is zero and \widehat{\mathbf{R}} is undetermined (the synthetic case fails already in double precision; on MIPAS OE the estimate works because \mathbf{F} is nearly full rank, DOF 65 on 76 parameters). For TES the test requires the constraint matrix and the mapping from retrieval parameters to levels, which the level 2 file does not contain. The 10 MIPAS profiles that do not pass are all Antarctic and 7 of them have anomalous DOF: the test intercepts degenerate products.

Calibration on OE products (October 2026). The test was run with both constraints on 30 pixels of each OE product tested on this site that passes the classical auto-consistency test, plus synthetic OE and Tikhonov retrievals with the exact constraint. With the estimated constraint (NT.3) the median of z on consistent products goes from 10^{-10} (IASI EUMETSAT in the principal-component space, \mathbf{S}_{n} of full rank) and 6 \cdot 10^{-5} (MIPAS ozone, full rank) to 4.4 (GOME-2), 4.6–8.9 (IASI FORLI ozone, CO, HNO3), 43 (IASI-MUSICA), 333 (OMPS) and about 800–900 (IASI AERIS), as the rank of \mathbf{S}_{n} decreases from the full dimension to 0.05–0.6 of it; the synthetic retrievals with an exact constraint give 2.8 (Tikhonov, double precision), 7.2 (Tikhonov, float32) and 1.2–1.4 (OE). An inconsistent product, Odin-SMR (classical auto-consistency at 4 %), gives 7 and falls among the consistent ones. The test with the estimated constraint therefore separates nothing: it remains a diagnostic, reported without a traffic light. With the true constraint (NT.2) the identity is exact only when \mathbf{S}_{n} has full rank (MIPAS ozone 6 \cdot 10^{-4}; synthetic cases 3 \cdot 10^{-6} in double precision and 3 \cdot 10^{-4} in float32): with a singular \mathbf{S}_{n} the information form depends on its pseudo-inverse and is equivalent to CDF(2015), which the nadir products consistent with CDF(2022) do not pass (GOME-2 z 1.8, IASI AERIS 7–24, OMPS about 10^{3}, with a classical auto-consistency below 0.02 %). The thresholds of Table 7 for test A apply only to the true constraint and to a full-rank \mathbf{S}_{n}.

4.3 Test B: compatibility with a reasonable constraint

If the constraint of the product is not available, the product is fused alone with an a priori chosen by the user: profile \mathbf{x}_{r} and covariance \mathbf{S}_{c} with standard deviation proportional to \mathbf{x}_{r}, diagonal or with correlation \exp\left( -\left| \Delta z \right| / l_{c} \right). The profile does not come back identical, because the constraint changes, but the difference has an exact form. With the gain

\mathbf{P} = \left( \mathbf{F} + \mathbf{S}_{c}^{-1} \right)^{-1}\mathbf{A}^{T}\mathbf{S}_{n}^{-1} \quad \text{(CDF(2015))}, \qquad \mathbf{P} = \left( \mathbf{F} + \mathbf{S}_{c}^{-1} \right)^{-1}\mathbf{S}^{-1} \quad \text{(CDF(2022))}
(NT.4)
\mathbf{x}_{f} = \mathbf{x}_{r} + \mathbf{P}\left( \widehat{\mathbf{x}} – \mathbf{x}_{r} \right), \qquad \boldsymbol{\delta} = \mathbf{x}_{f} – \widehat{\mathbf{x}} = \left( \mathbf{P} – \mathbf{I} \right)\left( \widehat{\mathbf{x}} – \mathbf{x}_{r} \right)
(NT.5)

If the product is consistent and \mathbf{S}_{c} describes the true variability around \mathbf{x}_{r}, then \widehat{\mathbf{x}} – \mathbf{x}_{r} has covariance \mathbf{A}\mathbf{S}_{c}\mathbf{A}^{T} + \mathbf{S}_{e}, with \mathbf{S}_{e} the error of the product (measurement noise, possibly the interfering parameters), and \boldsymbol{\delta} has covariance

\mathbf{C}_{\delta} = \left( \mathbf{P} – \mathbf{I} \right)\left( \mathbf{A}\mathbf{S}_{c}\mathbf{A}^{T} + \mathbf{S}_{e} \right)\left( \mathbf{P} – \mathbf{I} \right)^{T}, \qquad \chi^{2} = \frac{1}{m}\boldsymbol{\delta}^{T}\mathbf{C}_{\delta}^{+}\boldsymbol{\delta}
(NT.6)

where the pseudo-inverse and the number of directions m use the eigenvalues of \mathbf{C}_{\delta} above 10^{-6} of the largest (the float32 precision of the files); the expected value of \chi^{2} is 1. The simpler comparison \left| \delta_{k} \right| \le \sigma_{f,k} is not calibrated, because the total error of the re-fused product is not the expected dispersion of \boldsymbol{\delta}: in the synthetic case, compatible by construction, it is satisfied by 12 % to 53 % of the profiles according to the configuration.

Case \mathbf{S}_{c} \chi^{2} median Profiles with \chi^{2} \le 2
Synthetic Tikhonov, float32all configurations (2–20 %, 0–6 km)0.57–0.9393–100 %
MIPAS O3 OE\mathbf{S}_{a} of the file0.3499 %
MIPAS O3 OE0.25\,\mathbf{S}_{a} of the file, diagonal1.4274 %
TES N2O, VMR, measurement noiseall configurations12–1222–8 %
TES N2O, VMR, observation errorall configurations8.5–456–12 %
TES N2O, ln(VMR), measurement noiseall configurations2.8–5.89–29 %
TES N2O, ln(VMR), observation errorall configurations2.4–4.217–38 %
IASI-MUSICA N2O, ln(VMR), CDF(2022), fit noise plus temperature error (5720 observations)statistical \mathbf{S}_{a} of the product1.2191 %

Table 5: Test B. The TES rows use CDF(2015) with the measurement-noise CM in \mathbf{F}; “observation error” adds the errors due to the interfering parameters to \mathbf{S}_{e}.

On the synthetic Tikhonov case \chi^{2} \approx 1; the MIPAS rows with the a priori covariance of the product are degenerate (\mathbf{P} = \mathbf{I}, \boldsymbol{\delta} = 0 up to rounding, see below) and are not a calibration. TES in VMR does not pass it; the main cause is the space: TES retrieves in ln(VMR) and the linearisation of AKM and covariances in VMR holds only to first order. In ln(VMR) the \chi^{2} decreases by a factor 2 to 32 according to the configuration, and a residual excess of about 3 remains, independent of latitude and not explained (candidates, not verified: systematic errors not included in \mathbf{S}_{e}, non-linearity of the iterative retrieval). The consequence for the CDF is that TES is fused in ln(VMR), the space of its retrieval. For MUSICA the outcome depends on the error put in \mathbf{S}_{e}: with the fit noise alone the median \chi^{2} is between 12 and 32 for every candidate \mathbf{S}_{c}; adding the error due to the a priori temperature it falls to 1.0–1.6.

Calibration and reading (October 2026). Two cases are degenerate and are reported as not applicable. When the product has no a priori profile and the retrieved profile itself is used as \mathbf{x}_{r} (MIPAS N2O, ACE-FTS), \boldsymbol{\delta} = 0 by construction. When \mathbf{S}_{c} is the a priori covariance of the product itself and \mathbf{x}_{c} = \mathbf{x}_{a}, the test is the classical auto-consistency test in another form: for a consistent OE product \mathbf{P} = \mathbf{I}, hence \boldsymbol{\delta} = 0 and \mathbf{C}_{\delta} = 0 up to rounding (largest eigenvalue of \mathbf{C}_{\delta} in normalised variables between 10^{-30} and 3 \cdot 10^{-7} on GOME-2, IASI FORLI, IASI-MUSICA and IASI EUMETSAT; 4 \cdot 10^{-6} on MIPAS ozone), and the \chi^{2} is a ratio of rounding errors on directions selected by the tolerance; for a product that is not consistent (Odin-SMR, with \mathbf{S}_{i} rebuilt from the processor \mathbf{S}_{a}) \boldsymbol{\delta} measures the inconsistency between AKM, total CM and \mathbf{S}_{a}, which the auto-consistency test already reports. The MIPAS rows of Table 5 belong to this case and calibrate nothing.

The calibration proper uses a synthetic OE retrieval (40 levels, 30 Gaussian channels, a priori with 10 % standard deviation and 6 km correlation) with \mathbf{S}_{c} \neq \mathbf{S}_{a}, \mathbf{x}_{c} = \mathbf{x}_{a} and the true state drawn from N\left( \mathbf{x}_{c}, \mathbf{S}_{c} \right): with \mathbf{S}_{c} equal to 0.25, 0.5, 2 and 4 times \mathbf{S}_{a} (100 realisations each, m = 9 directions) the median of \chi^{2} is 0.78–0.93 and the 95th percentile 1.77–1.93, against 0.93 and 1.88 expected for \chi^{2}_{9}/9; the fraction of realisations with p < 0.05[/katex] is 0.02–0.08. Since m\,\chi^{2} follows a \chi^{2} distribution with m degrees of freedom, a fixed threshold on \chi^{2} would depend on m: the outcome is read through the p-value p = P\left( \chi^{2}_{m} \ge m\,\chi^{2} \right), with provisional thresholds green p \ge 0.05, orange 0.01 \le p < 0.05, red p < 0.01. The dispersion between pixels is that of a \chi^{2} variable, so the test is read on many pixels. Its limit: \chi^{2} grows both when the product is inconsistent and when the real variability around \mathbf{x}_{c} is not \mathbf{S}_{c}; in the synthetic case (300 realisations, \mathbf{S}_{c} = 0.5\,\mathbf{S}_{a}) a noise CM halved in the file gives p < 0.05 in 27 % of the realisations, a true variability equal to \mathbf{S}_{a} instead of \mathbf{S}_{c} in 20 %, against 6 % for the consistent case. On real data the two effects are not separable. On files written in float32 \mathbf{S}_{n} can have small negative eigenvalues, which a pseudo-inverse turns into a negative \chi^{2}: the statistic is computed on the positive eigenvalues only, and it is reported as not applicable when the ratio of the most negative to the largest eigenvalue of the re-fused covariance exceeds 10^{-3}.</p> <p>An open case: IASI EUMETSAT water vapour and ozone in the principal-component space of the file (consistent with the auto-consistency test to 10^{-13}</span>) give, with the a priori of the file, <span class="katex-eq" data-katex-display="false">\chi^{2}</span> of the order of <span class="katex-eq" data-katex-display="false">10^{2}</span>–<span class="katex-eq" data-katex-display="false">10^{3}</span>. The decomposition by direction shows that the excess comes from directions that, according to the matrices of the file, are not measured (AKM eigenvalues down to <span class="katex-eq" data-katex-display="false">10^{-6}</span>) but in which <span class="katex-eq" data-katex-display="false">\widehat{\mathbf{x}} - \mathbf{x}_{a}</span> has components. Whether this reflects the product or its representation in the file is a question for those who know the product; it is not a defect of the test.</p> <h3>4.4 Single-product CDF with a common a priori</h3> <p>Each profile is fused alone with an a priori <span class="katex-eq" data-katex-display="false">\left( \mathbf{x}_{c}, \mathbf{S}_{c} \right)</span> common to all the profiles,</p> <div class="equations-wrapper" style="margin: 2em 0;"> <div class="equation-container" style="display: flex; align-items: center; justify-content: space-between; margin: 1em 0;"> <div class="equation" style="flex-grow: 1; text-align: center;"><span class="katex-eq" data-katex-display="false">\mathbf{x}_{f} = \left( \mathbf{F} + \mathbf{S}_{c}^{-1} \right)^{-1}\left( \mathbf{b} + \mathbf{S}_{c}^{-1}\mathbf{x}_{c} \right), \qquad \mathbf{A}_{f} = \left( \mathbf{F} + \mathbf{S}_{c}^{-1} \right)^{-1}\mathbf{F}</span></div> <span class="equation-number" style="margin-left: 1em; font-weight: bold; white-space: nowrap;">(NT.7)</span> </div> </div> <p>with <span class="katex-eq" data-katex-display="false">\mathbf{F}</span> and <span class="katex-eq" data-katex-display="false">\mathbf{b}</span> from (N.4). Two indicators: the DOF (trace of <span class="katex-eq" data-katex-display="false">\mathbf{A}_{f}</span>), which must grow with the width of <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c}</span> because a looser a priori lets more measurement through; and the fraction of profiles with negative VMR values, which signals a wrong <span class="katex-eq" data-katex-display="false">\mathbf{F}</span>. On TES N<sub>2</sub>O (2603 profiles, DOF 1.30 in the file; <span class="katex-eq" data-katex-display="false">\mathbf{x}_{c}</span> the median of the TES a priori profiles, <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c}</span> with relative standard deviation 2–20 % and 6 km correlation):</p> <table style="border-collapse: collapse; width: 100%; margin: 1.5em 0; font-size: 0.95em;"> <thead> <tr style="background-color: #f2f2f2;"> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: left;">Common a priori standard deviation</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">2 %</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">5 %</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">10 %</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">20 %</th> </tr> </thead> <tbody> <tr><td style="border: 1px solid #ccc; padding: 8px 12px;">Median DOF, CDF(2015) with <span class="katex-eq" data-katex-display="false">\mathbf{S}_{n}</span></td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">1.04</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">1.57</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">2.18</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">2.90</td></tr> <tr><td style="border: 1px solid #ccc; padding: 8px 12px;">Profiles with negative values, CDF(2015) with <span class="katex-eq" data-katex-display="false">\mathbf{S}_{n}</span></td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">0</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">0</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">0</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">0.1 %</td></tr> <tr><td style="border: 1px solid #ccc; padding: 8px 12px;">Median DOF, CDF(2022) with the "total" CM of the file</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">1.33</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">2.83</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">3.74</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">4.50</td></tr> <tr><td style="border: 1px solid #ccc; padding: 8px 12px;">Profiles with negative values, CDF(2022) with the "total" CM of the file</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">87 %</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">98 %</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">99.6 %</td><td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">99.96 %</td></tr> </tbody> </table> <p style="margin-top: 0.5em; font-size: 0.9em; color: #666;"><em>Table 6: Single-product CDF on TES N<sub>2</sub>O in VMR with the two pairings.</em></p> <p>With CDF(2015) the DOF grow with the a priori width as expected and no negative values appear up to 10 %. With CDF(2022) and the "total" CM of the file almost all profiles have negative values: the effect of a covariance inconsistent with <span class="katex-eq" data-katex-display="false">\mathbf{A}</span> (its symmetry metric is 72 % in VMR, against 2.5 % for the measurement-noise CM). The test shows that the fusion is stable, not that the fused profile is closer to the truth; that requires independent measurements.</p> <h3>4.5 Reading the outcomes</h3> <table style="border-collapse: collapse; width: 100%; margin: 1.5em 0; font-size: 0.95em;"> <thead> <tr style="background-color: #f2f2f2;"> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: left;">Check</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: left;">Metric</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: center; background-color: #c8f0c8;">Green</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: center; background-color: #ffe0a0;">Orange</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: center; background-color: #f0b0b0;">Red</th> <th style="border: 1px solid #ccc; padding: 8px 12px; text-align: left;">What it establishes</th> </tr> </thead> <tbody> <tr> <td style="border: 1px solid #ccc; padding: 8px 12px;">Symmetry (4.1)</td> <td style="border: 1px solid #ccc; padding: 8px 12px;"><span class="katex-eq" data-katex-display="false">r</span> of (NT.1), per covariance of the file</td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">< 0.01</td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">< 0.1</td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">≥ 0.1</td> <td style="border: 1px solid #ccc; padding: 8px 12px;">which covariance is consistent with the AKM, hence which formula; a transposed AKM</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 12px;">Test A, true constraint (4.2, NT.2)</td> <td style="border: 1px solid #ccc; padding: 8px 12px;"><span class="katex-eq" data-katex-display="false">z = \max\left| \delta_{k} \right| / \sigma_{nf,k}</span></td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">< 0.1</td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">< 1</td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;">≥ 1</td> <td style="border: 1px solid #ccc; padding: 8px 12px;">AKM, noise CM, constraint and reference profile are mutually consistent; traffic light only when <span class="katex-eq" data-katex-display="false">\mathbf{S}_{n}</span> has full rank, otherwise the identity is not exact and no light is assigned</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 12px;">Test A, estimated constraint (4.2, NT.3)</td> <td style="border: 1px solid #ccc; padding: 8px 12px;"><span class="katex-eq" data-katex-display="false">z</span> as above, with <span class="katex-eq" data-katex-display="false">\widehat{\mathbf{R}}</span></td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;" colspan="3">no threshold: diagnostic only</td> <td style="border: 1px solid #ccc; padding: 8px 12px;"><span class="katex-eq" data-katex-display="false">z</span> depends on the rank of <span class="katex-eq" data-katex-display="false">\mathbf{S}_{n}</span> more than on the consistency of the product (from <span class="katex-eq" data-katex-display="false">10^{-10}</span> to about 900 on consistent products)</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 12px;">Test B (4.3)</td> <td style="border: 1px solid #ccc; padding: 8px 12px;">p-value of <span class="katex-eq" data-katex-display="false">m\,\chi^{2}</span> of (NT.6) against <span class="katex-eq" data-katex-display="false">\chi^{2}_{m}</span>, on the positive eigenvalues</td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;"><span class="katex-eq" data-katex-display="false">p \ge 0.05</span></td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;"><span class="katex-eq" data-katex-display="false">0.01 \le p < 0.05</span></td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;"><span class="katex-eq" data-katex-display="false">p < 0.01</span></td> <td style="border: 1px solid #ccc; padding: 8px 12px;">the departure from the product under an a priori different from its own is the one predicted by AKM and error CM, read on many pixels; not applicable when the a priori profile coincides with the product, when <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c}</span> is the a priori covariance of the product, or when the re-fused covariance is indefinite; an inconsistent product and a wrong <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c}</span> are not separable; thresholds provisional</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 12px;">Single-product CDF (4.4)</td> <td style="border: 1px solid #ccc; padding: 8px 12px;">DOF versus a priori width; negative values</td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;" colspan="3">no threshold</td> <td style="border: 1px solid #ccc; padding: 8px 12px;">the pairing gives a physically sensible information matrix; the DOF depends on the a priori width and does not measure a gain</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 12px;">Classical auto-consistency</td> <td style="border: 1px solid #ccc; padding: 8px 12px;">see <a href="/elementor-1286/">CDF Tests</a></td> <td style="border: 1px solid #ccc; padding: 8px 12px; text-align: center;" colspan="3">"not applicable" when <span class="katex-eq" data-katex-display="false">\mathbf{S}_{ai}</span> is not in the file</td> <td style="border: 1px solid #ccc; padding: 8px 12px;">not applicable is not failed: the a priori covariance of the retrieval is missing</td> </tr> </tbody> </table> <p style="margin-top: 0.5em; font-size: 0.9em; color: #666;"><em>Table 7: Traffic lights of the checks as implemented in the test scripts (October 2026). The thresholds are heuristic, as those of the auto-consistency test; those of test B are provisional.</em></p> <p>For every non-OE product the acceptance sequence is: covariance–formula pairing from the documentation; symmetry of <span class="katex-eq" data-katex-display="false">\mathbf{A}\mathbf{C}</span>; test A if the constraint is available and test B in every case, in the space in which the product was retrieved; then the control of the output as for ozone (DOF, negative values, spikes, departure from the native product) and the comparison with independent measurements.</p> <h2>5. Evidence from the N<sub>2</sub>O products</h2> <table style="border-collapse: collapse; width: 100%; margin: 1.5em 0; font-size: 0.92em;"> <thead> <tr style="background-color: #f2f2f2;"> <th style="border: 1px solid #ccc; padding: 8px 10px; text-align: left;">Product</th> <th style="border: 1px solid #ccc; padding: 8px 10px; text-align: left;">Retrieval</th> <th style="border: 1px solid #ccc; padding: 8px 10px; text-align: left;">In the file</th> <th style="border: 1px solid #ccc; padding: 8px 10px; text-align: left;">Symmetry <span class="katex-eq" data-katex-display="false">r</span> (median)</th> <th style="border: 1px solid #ccc; padding: 8px 10px; text-align: left;">Formula</th> <th style="border: 1px solid #ccc; padding: 8px 10px; text-align: left;">Classical auto-consistency</th> </tr> </thead> <tbody> <tr> <td style="border: 1px solid #ccc; padding: 8px 10px;">MIPAS-ESA v8 (calibration: O<sub>3</sub> in OE)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">OE</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">AKM, total CM, <span class="katex-eq" data-katex-display="false">\mathbf{S}_{a}</span></td> <td style="border: 1px solid #ccc; padding: 8px 10px;"><span class="katex-eq" data-katex-display="false">2 \cdot 10^{-6}</span></td> <td style="border: 1px solid #ccc; padding: 8px 10px;">CDF(2022)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">applicable, passed</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 10px;">MIPAS-ESA v8 N<sub>2</sub>O</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">LM, Tikhonov regularisation after convergence</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">AKM and CM on the full state vector; no a priori</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">0.056 (profile block), 0.081 (full vector)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">CDF(2022) with the file CM taken as total (to be confirmed with the processor team), external reference profile</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">not applicable</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 10px;">TES N<sub>2</sub>O</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">Tikhonov, in ln(VMR)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">AKM, noise, observation and total CMs, reference profile</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">0.036 (noise CM), 1.18 (total CM), in ln(VMR)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">CDF(2015) with the noise CM, in ln(VMR)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">not applicable</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 10px;">IASI-TN2OR</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">OE minimised with LM</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">AKM (stored transposed), total CM, a priori profile; N<sub>2</sub>O block of a multi-parameter retrieval; no <span class="katex-eq" data-katex-display="false">\mathbf{S}_{a}</span></td> <td style="border: 1px solid #ccc; padding: 8px 10px;">0.036</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">CDF(2022) with the total CM</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">not applicable</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 10px;">Odin-SMR</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">OE with a fixed <span class="katex-eq" data-katex-display="false">\mathbf{S}_{a}</span>, minimised with LM</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">AKM, a priori profile, diagonal errors only; <span class="katex-eq" data-katex-display="false">\mathbf{S}_{a}</span> rebuilt from the public processor configuration</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">0.033 (rebuilt total CM); 0.76 (diagonal CM of the file, AKM read as relative)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">CDF(2022) with the rebuilt total CM</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">with the rebuilt <span class="katex-eq" data-katex-display="false">\mathbf{S}_{a}</span>: profile within 6.1 %, DOF within 0.004 %</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 10px;">IASI-MUSICA</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">OE in ln(VMR) with the constraint <span class="katex-eq" data-katex-display="false">\mathbf{R}</span> in the file</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">AKM in SVD form, diagonal errors, <span class="katex-eq" data-katex-display="false">\mathbf{R}</span>; CMs rebuilt from <span class="katex-eq" data-katex-display="false">\mathbf{R}</span></td> <td style="border: 1px solid #ccc; padding: 8px 10px;"><span class="katex-eq" data-katex-display="false">9 \cdot 10^{-4}</span></td> <td style="border: 1px solid #ccc; padding: 8px 10px;">CDF(2022) in ln(VMR)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">applicable with <span class="katex-eq" data-katex-display="false">\mathbf{S}_{a} = \mathbf{R}^{-1}</span>: CDF(2022) returns the profile within 0.001 %, CDF(2015) within 4.8 % (<span class="katex-eq" data-katex-display="false">\mathbf{S}_{n}</span> of rank 18 on 28)</td> </tr> <tr> <td style="border: 1px solid #ccc; padding: 8px 10px;">ACE-FTS (tangent-altitude grid)</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">LM without constraint, at convergence</td> <td style="border: 1px solid #ccc; padding: 8px 10px;"><span class="katex-eq" data-katex-display="false">\mathbf{A} = \mathbf{I}</span> (not in the file), diagonal <span class="katex-eq" data-katex-display="false">\boldsymbol{\sigma}</span> only, no a priori</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">0 by construction</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">CDF(2015) and CDF(2022) coincide</td> <td style="border: 1px solid #ccc; padding: 8px 10px;">not applicable; test A an identity by construction</td> </tr> </tbody> </table> <p style="margin-top: 0.5em; font-size: 0.9em; color: #666;"><em>Table 8: Pairing and consistency of the N<sub>2</sub>O products tested (all pixels of the test days, normalised metric). None of the N<sub>2</sub>O products reaches the OE calibration; MUSICA, with the covariances rebuilt from the constraint of the file, is the closest and the only one for which the classical auto-consistency test is applicable and passed.</em></p> <h2>6. What is established and what remains open</h2> <p><strong>Established by the tests.</strong></p> <ul style="line-height: 1.8; margin: 1em 0;"> <li>Relations (N.3)–(N.5) hold for any symmetric constraint (algebra; synthetic Tikhonov retrieval; test A at <span class="katex-eq" data-katex-display="false">z \sim 10^{-6}</span> in double precision and <span class="katex-eq" data-katex-display="false">3 \cdot 10^{-4}</span> in float32).</li> <li>The species block alone is exact for CDF(2022) when the constraint does not couple the species to the other elements (synthetic check at <span class="katex-eq" data-katex-display="false">3 \cdot 10^{-16}</span>).</li> <li>The wrong covariance–formula pairing produces a wrong information matrix: on TES, CDF(2022) with the "total" CM of the file gives negative values in 87–99.96 % of the fused profiles, CDF(2015) with the noise CM in 0–0.1 %.</li> <li>Test B is calibrated on a synthetic OE retrieval with <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c} \neq \mathbf{S}_{a}</span> and the truth drawn from <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c}</span>: <span class="katex-eq" data-katex-display="false">m\,\chi^{2}</span> follows <span class="katex-eq" data-katex-display="false">\chi^{2}_{m}</span> (median 0.78–0.93 and 95th percentile 1.77–1.93 against 0.93 and 1.88 expected, <span class="katex-eq" data-katex-display="false">p</span> uniform), hence the reading through the p-value; with <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c} = \mathbf{S}_{a}</span> the test is degenerate and is not applicable. The symmetry metric is calibrated at <span class="katex-eq" data-katex-display="false">2 \cdot 10^{-6}</span> on an OE product.</li> <li>The constraint cannot be estimated from AKM and noise CM when <span class="katex-eq" data-katex-display="false">\mathbf{F}</span> has reduced rank (synthetic case, TES); on the OE products of this site test A with the estimated constraint gives <span class="katex-eq" data-katex-display="false">z</span> from <span class="katex-eq" data-katex-display="false">10^{-10}</span> to about 900 according to the rank of <span class="katex-eq" data-katex-display="false">\mathbf{S}_{n}</span>, and an inconsistent product falls among the consistent ones: it has no discriminating power.</li> <li>Test A with the true constraint is exact only when <span class="katex-eq" data-katex-display="false">\mathbf{S}_{n}</span> has full rank; with a singular <span class="katex-eq" data-katex-display="false">\mathbf{S}_{n}</span> it reduces to CDF(2015) and fails on nadir products that pass the classical auto-consistency test with CDF(2022).</li> <li>Test B does not separate an inconsistent product from a wrong <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c}</span>: in the synthetic case a halved noise CM and a true variability different from <span class="katex-eq" data-katex-display="false">\mathbf{S}_{c}</span> both raise the fraction of <span class="katex-eq" data-katex-display="false">p < 0.05 (27 % and 20 % against 6 %).</li> </ul> <p><strong>Open (hypotheses to be verified).</strong></p> <ul style="line-height: 1.8; margin: 1em 0;"> <li>Origin of the 5–8 % asymmetry of MIPAS N<sub>2</sub>O, on the full state vector as on the profile block: residual LM damping, or a form of the a posteriori regularisation other than \left( \mathbf{F} + \mathbf{R} \right)^{-1}\mathbf{F} with symmetric \mathbf{R}; whether the file CM is the total CM; which reference profile to use (\mathbf{x}_{r} = 0 is consistent with the regularisation, \mathbf{x}_{r} = \widehat{\mathbf{x}} is the approximation adopted). To be confirmed with the processor team.

  • Origin of the residual 3.6 % asymmetry of the IASI-TN2OR N2O block (LM convergence, file precision, or a coupling constraint).
  • The residual excess of test B on TES in ln(VMR) (\chi^{2} \approx 3).
  • LM products stopped with residual damping: no exact CDF formula when the equivalent constraint is not symmetric; the symmetry metric bounds the departure but does not correct it.
  • Diagonal covariances (ACE-FTS): sufficient when the product dominates the information, not where it competes with a tight a priori or another product; the correlations between tangent altitudes are not distributed.
  • The thresholds of Table 7 are heuristic, and those on the p-value of test B are provisional (set in October 2026); the single-product CDF and the tests show that the fusion is stable, not that the fused profile is closer to the truth.
  • IASI EUMETSAT water vapour and ozone in the principal-component space: large \chi^{2} of test B from directions unmeasured according to the file matrices but present in \widehat{\mathbf{x}} - \mathbf{x}_{a}; to be verified with the product team.
  • References: Ceccherini et al. (2015, 2022) for the two CDF formulations; Ceccherini and Ridolfi (2010) for AKM and CM of the Levenberg–Marquardt solution; Raspollini et al. (2022) for the MIPAS ESA v8 processor. See the Annotated bibliography.