RFM File Formats

Output Spectral File Format

08OCT18

Description
Generic format of all RFM spectral output files.

Structure
ASCII files, regular grid
!HEADER1
!HEADER2
!HEADER3
NPNT WNO1 WNOD WNO2 LABSPC
SPC(1) SPC(2)
... SPC(NPNT)
[eof]
ASCII files, irregular grid
!HEADER1
!HEADER2
!HEADER3
NPNT WNO1 WNOD WNO2 LABSPC
WNO(1) SPC(1)
WNO(2) SPC(2)
...
WNO(NPNT) SPC(NPNT)
[eof]
Binary files (BIN Flag), regular grid,
!HEADER1
!HEADER2
!HEADER3
NPNT WNO1 WNOD WNO2 LABSPC
SPC(1) ... SPC(NPNT)
[eof]
Binary files, irregular grid
!HEADER1
!HEADER2
!HEADER3
NPNT WNO1 WNOD WNO2 LABSPC
WNO(1) SPC(1)
WNO(2) SPC(2)
...
WNO(NPNT) SPC(NPNT)
[eof]

Fields
FieldTypeDescriptionVariations
!HEADER1 C*80 Spectrum type, ray-path and RFM version ID
!HEADER2 C*80 Text read from *HDR section of Driver Table
!HEADER3 C*80 Captions for next record JAC Flag: Jacobian info
NPNT I No. spectral points in file -ve if GHz spectrum
WNO1 R*8 Lower limit [cm-1] of spectrum GHZ Flag: [GHz]
WNOD R*8 Resolution [cm-1] of spectrum GHZ Flag: [GHz]
WNO2 R*8 Upper limit [cm-1] of spectrum GHZ Flag: [GHz]
LABSPC C*(*) Spectral Label or (if no label) Type
NPTREC I No.spectral points in record BIN Flag only
SPC R*4 Spectral Data DBL Flag: R*8
Notes
  1. Reg/Irreg file headers are the same, the regular grid has WNOD > 0 while the irregular grid as WNOD=0
  2. Since spectral files can also be RFM input data, it is necessary to distinguish whether the spectral axis is [cm-1] or [GHz], hence -ve NPNT for [GHz] (same convention as for other spectral input files)
  3. If no spectral range label is supplied in the *SPC section, then the type of spectrum is inserted in LABSPC (eg 'Absorption')
  4. The RFM outputs the complete spectrum in one WRITE statement. For binary files this will be a single record of NPNT values
  5. An simple IDL procedure rfmrd.pro is available for reading ASCII regular grid output, and a more complicated version rfmrd2.pro

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