Spectral File Format

RFM File Formats

09JUN24

Description
Structure of RFM spectral files (i.e., main RFM output files).

Structure
There are two formats, depending on whether the output is on a regular spectral grid on an irregular grid. In the first case the spectral axis can be represented by three numbers in the header, in the second case each data point requires its own associate spectral axis value. The header sections are identical for both formats, the difference being the wavenumber increment (WNOD) being set to zero for the irregular grid.
File Structure
Header Section
!HEADER1 Single record
!HEADER2 Single record
!HEADER3 Single record
NPNT     WNO1     WNOD     WNO2     'LABSPC' Single record
Data Section (Regular Grid)
SPC(1) SPC(2) ... Multiple records
... SPC(NPNT)
Data Section (Irregular Grid)
WNO(1) SPC(1) NPNT records
WNO(2) SPC(2)
...
WNO(NPNT) SPC(NPNT)

Fields
FieldTypeDescription Units Range
!HEADER1 C80 Spectrum type, ray-path and RFM version ID
!HEADER2 C80 Text from *HDR section of Driver Table
!HEADER3 C80 Captions for next record, or additional info.
NPNT I No. spectral points in file[1] ≠ 0
WNO1 D Lower limit of spectrum cm-1 or GHz[1] > 0
WNOD D Spectral grid interval (0=irregular grid) cm-1 or GHz[1] ≥ 0
WNO2 D Upper limit of spectrum cm-1 or GHz[1] > 0
LABSPC C* Spectral Label or type of spectrum[2], in single quotes
WNO(:) D (NPNT) Wavenumber or Frequency of spectral point cm-1 or GHz[1] > 0
SPC(:) R/D[3] (NPNT) Spectral data value
Type: I=Integer; R=Real; D=Double Precision; Cn=character string, length n.

Notes
  1. NPNT: a negative value indicates that the spectral axis is GHz (set by GHZ Flag) rather than cm-1.

  2. LABSPC: this is set by LABSPC specified in the *SPC section or, if no label specified, then by the type of spectrum as a left-justified C13 field eg 'Absorption   '. The field is enclosed in single quotes to make reading simpler (if actually required).

  3. Output spectral values are Single precision by default, Double precision with DBL flag. Internally, these are always represented as Double precision.

  4. The RFM outputs the complete spectrum in one WRITE statement. For binary files this will be a single record of NPNT values

  5. Two separate Python modules are available for reading either ASCII (text) spectra, rfmrd.py, or binary files rfmrd_bin.py.

Example
Below is an example of a spectral file used to establish the irregular grid, either for RFM output (*SPC section) or for internal calculation (*GRD section). In this case, only the wavenumber points are read so it is not necessary to specify any 'data' values. The header has to contain the number of points (326 in this example), the lowest (1st) point (1400.0), the increment (set to 0.0 for irregular grid) and the highest (326th) point (1410.0), followed by the spectral points themselves, one value per record.
! Basic irregular grid
! Npts, WNO1, WNOD, WNO2
326 1400.0000 0.0000 1410.0000
1400.0000
1400.0810
...
1410.0000