.svd File

RFM File Formats: SVD-compressed LUT

26DEC23

Type
Input(s), mandatory if SVD Flag enabled.

Description
SVD (Singular Vector Decomposition)-compressed Look Up Tables of absorption coefficient [m2/mole] for particular spectral range and absorber, generated for the MIPAS/Envisat instrument.

Filename(s)
Specified in *SVD section of Driver Table

Structure
(also described in ESA document PO-TN-OXF-GS-0011.txt)
File Structure
File Header
DATE TIME Single record
#CMNT Single record
MWCODE ID[.ISO] TAB Single record
NL NV V1 NP P1 DP NT T1 DT Single record
U matrix
For IV = 1, NV Loop over wavenumber
    U(IV,1) U(IV,2) ... NL values for each wavenumber
    ... U(IV,NL)
K matrix
For IX = 1, NP×NT Loop over p,T grid points
    K(1,IX) K(2,IX) ... NL values for each p,T grid point
    ... K(NL,IX)
[eof]

Fields
FieldTypeDescription Units Range
DATE C11 File creation Date (DD-MMM-YYYY) [2] (ignored)
TIME C15 File creation Time (HH:MM:SS.MMMMMM) [2] (ignored)
#CMNT C80 Comment record (starts with '#') [2]
MWCODE C8 Microwindow Label Matches LABSPC
IDX I HITRAN Index of absorber ∈ {List of Absorbers}
.ISO I (optional) '.' then HITRAN Local Isotope# 1:12
TAB C3 Tabulation Function ∈{'LIN', '4RT','LOG'}
NL I No. of Singular Values >0
NV I No. of Wavenumber Points >0
V1 D Lowest Wavenumber cm-1 >0
DV D Wavenumber Increment cm-1 >0
NP I No. of −ln(p) Points >0
P1 R Lowest −ln(p) p in hPa
DP R −ln(p) increment p in hPa >0
NT I No. of Temperature Points >0
T1 R Lowest Temperature K ≥0
DT R Temperature increment K >0
U(:,:) R (NV,NL) U Matrix
K(:,:) R (NL,NX) K Matrix (NX=NP×NT)
Type: I=Integer; R=Real; D=Double Precision; Cn=character string, length n.

Notes
  1. These files are generated for MIPAS. for other purposes, the .tab format look-up tables are recommended instead.

  2. The File Header (ESA rather than RFM format) consists of 2 records, the first of which is the 'time stamp' and the second is equivalent to an RFM comment record. For this reason, the first two records of any .lut files are written to the rfm.log file rather than just the usual first (comment) record.
  3. The MWCODE ... record is read with specific formats:
    • (A8,X,I2,X,A3) (not isotopic)
    • (A8,X,I2,X,I1,X,A3) (isotopic)
    Which of these two formats is used depends on whether there is a '.' character in position 12
  4. The value NL > 0 is actually what is used to determine that this is a SVD-compressed LUT, a value 0 would indicate a .tab file.
  5. The absorption coefficient is intrinsically a 3 dimensional table with wavenumber, pressure and temperature axes. However for the purposes of Singular Value Decomposition the p,T indices are combined into a single X index: (P1,T1), (P1+DP,T1), ... (P1+(NP-1)*DP,T1+(NT-1)*DT)
  6. To reconstruct the absorption coefficient first the matrix is reconstructed as
    F(IV,IX) = SUM ( U(IV,IL) * K(IL,IX) )
    The relationship between F and the absorption coefficient is determined by TAB (for MIPAS, TAB is usually LOG so Abs.Coeff = exp(F))
  7. The K Matrix is actually written in the file in the natural form for the transpose of K - this has the minor advantage of maintaining a constant length (NL) for each 'row' of both the U and K matrices.

Example
01-NOV-2002 12:00:00.000000
# MIPAS SVD-compressed LUT created by LUTINI v.16MAR02
PT__0001  1 LOG
    7 6701   686.225    0.0005    9  -3.40120   1.00080    9   180.000    16.000
 -1.4469028E-02  1.5561746E-02 -1.6158378E-03 -7.6377830E-05  6.6569343E-04
 -1.3192989E-03 -2.3304068E-03
 -1.4468588E-02  1.5558815E-02 -1.6167151E-03 -7.6754986E-05  6.6715060E-04
 -1.3191579E-03 -2.3323591E-03
.... 
[eof]