ARTS  2.3.1285(git:92a29ea9-dirty)
linerecord.h File Reference

LineRecord class for managing line catalog data. More...

#include <cmath>
#include <stdexcept>
#include "array.h"
#include "constants.h"
#include "lineshapemodel.h"
#include "matpackI.h"
#include "messages.h"
#include "mystring.h"
#include "quantum.h"
#include "wigner_functions.h"
#include "zeemandata.h"

Go to the source code of this file.

Classes

class  LineRecord
 

Typedefs

typedef Array< LineRecordArrayOfLineRecord
 Holds a list of spectral line data. More...
 
typedef Array< Array< LineRecord > > ArrayOfArrayOfLineRecord
 Holds a lists of spectral line data for each tag group. More...
 

Enumerations

enum  MirroringType : Index { MirroringType::None, MirroringType::Lorentz, MirroringType::SameAsLineShape, MirroringType::Manual }
 Spectral line catalog data. More...
 
enum  LineNormalizationType : Index { LineNormalizationType::None, LineNormalizationType::VVH, LineNormalizationType::VVW, LineNormalizationType::RosenkranzQuadratic }
 
enum  LinePopulationType : Index { LinePopulationType::ByLTE, LinePopulationType::ByVibrationalTemperatures, LinePopulationType::ByPopulationDistribution }
 

Functions

ostream & operator<< (ostream &os, const LineRecord &lr)
 Output operator for LineRecord. More...
 
LinePopulationType LinePopulationTypeFromString (const String &in)
 
MirroringType MirroringTypeFromString (const String &in)
 
LineNormalizationType LineNormalizationTypeFromString (const String &in)
 

Detailed Description

LineRecord class for managing line catalog data.

Author
Stefan Buehler, Axel von Engeln

Definition in file linerecord.h.

Typedef Documentation

◆ ArrayOfArrayOfLineRecord

Holds a lists of spectral line data for each tag group.

Dimensions: (tag_groups.nelem()) (number of lines for this tag)

Author
Stefan Buehler

Definition at line 1228 of file linerecord.h.

◆ ArrayOfLineRecord

Holds a list of spectral line data.

Author
Stefan Buehler

Definition at line 1223 of file linerecord.h.

Enumeration Type Documentation

◆ LineNormalizationType

Enumerator
None 
VVH 
VVW 
RosenkranzQuadratic 

Definition at line 210 of file linerecord.h.

◆ LinePopulationType

enum LinePopulationType : Index
strong
Enumerator
ByLTE 
ByVibrationalTemperatures 
ByPopulationDistribution 

Definition at line 220 of file linerecord.h.

◆ MirroringType

enum MirroringType : Index
strong

Spectral line catalog data.

Below is a description of the ARTS catalogue format. The file starts with the usual XML header:

    <?xml version="1.0"?>
    <arts format="ascii" version="1">
    <ArrayOfLineRecord version="ARTSCAT-3" nelem="8073">

The ARTSCAT version number is there to keep track of catalogue format changes. The "nelem" tag contains the total number of lines in the file.

The file ends with the usual XML closing tags:

    </ArrayOfLineRecord>
    </arts>

In-between the header and the footer are the actual spectroscopic data. Each new entry, corresponding to one spectral line, starts with the `@' character.

The line catalogue should not have any fixed column widths because the precision of the parameters should not be limited by the format. The catalogue can then be stored as binary or ASCII. In the ASCII version the columns are separated by one or more blanks. The line format is then specified by only the order and the units of the columns. As the catalogue entry for each transition can be quite long, it can be broken across lines in the ASCII file. That is why each new transition is marked with a `@' character.

The first column will contain the species and isotopologue, following the naming scheme described below. Scientific notation is allowed, e.g. 501.12345e9.

Note that starting with ARTSCAT-2, the intensity is per molecule, i.e., it does not contain the isotopologue ratio. This is similar to JPL, but different to HITRAN.

Currently, ARTS is capable of handling ARTSCAT versions 3 and 4. Different versions can be handled simultaneously. The line format of ARTSCAT-3 (for ARTSCAT-4 see further below) is:

    Col  Variable                    Label     Unit    Comment
    ------------------------------------------------------------------      
     0   `@'                         ENTRY        -    marks start of entry
     1    species\&isotopologue tag   NAME        -    e.g. O3-666
     2   center frequency                F       Hz    e.g. 501.12345e9 
     3   pressure shift of F           PSF    Hz/Pa    
     4   line intensity                 I0    Hz*m^2   per isotopologue, not per species
     5   reference temp. for I0       T_I0        K
     6   lower state energy           ELOW        J    
     7   air broadened width          AGAM    Hz/Pa    values around 20000 Hz/Pa
     8   self broadened width         SGAM    Hz/Pa
     9   AGAM temp. exponent          NAIR        -    values around .5
    10   SGAM temp. exponent         NSELF        - 
    11   ref. temp. for AGAM, SGAM   T_GAM        K
    12   number of aux. parameters   N_AUX        -
    13   auxiliary parameter          AUX1        -
    14   ... 
    15   error for F                    DF       Hz
    16   error for I0                  DI0        %
    17   error for AGAM              DAGAM        %
    18   error for SGAM              DSGAM        %
    19   error for NAIR              DNAIR        %
    20   error for NSELF            DNSELF        %
    21   error for PSF                DPSF        %

The parameters 0-12 must be present, the others can be missing, since they are not needed for the calculation.

For the error fields (15-21), a -1 means that no value exist.

A valid ARTS (CAT-3) line file would be:

    <?xml version="1.0"?>
    <arts format="ascii" version="1">
    <ArrayOfLineRecord version="ARTSCAT-3" nelem="2">
    @ O3-676 80015326542.0992 0 3.70209114155527e-19 296 7.73661776567701e-21 21480.3182341969
    28906.7092490501 0.76 0.76 296 0 300000 0.1 0.1 0.1 0.2 -1 -1.24976056865038e-11
    @ O3-676 80015476438.3282 0 3.83245786810611e-19 296 7.73661577919822e-21 21480.3182341969
    28906.7092490501 0.76 0.76 296 0 300000 0.1 0.1 0.1 0.2 -1 -1.24975822742335e-11
    </ArrayOfLineRecord>
    </arts>

Some species need special parameters that are not needed by other species (for example overlap coefficients for O2). In the case of oxygen two parameters are sufficient to describe the overlap, but other species, e.g., methane, may need more coefficients. The default for N_AUX is zero. In that case, no further AUX fields are present. [FIXME: Check Oxygen.]

The line format of ARTSCAT-4 is:

    Col  Variable                    Label        Unit    Comment
    ------------------------------------------------------------------      
    00   `@'                         ENTRY        -       marks start of entry
    01   species\&isotopologue tag   NAME         -       e.g. O3-666
    02   center frequency            F            Hz      e.g. 501.12345e9 
    03   line intensity              I0           Hz*m^2  per isotopologue, not per species
    04   reference temp. for I0      T_I0         K
    05   lower state energy          ELOW         J   
    06   Einstein A-coefficient      A            1/s     where available from HITRAN 
    07   Upper state stat. weight    G_upper      -       where available from HITRAN 
    08   Lower state stat. weight    G_lower      -       where available from HITRAN 

    09   broadening parameter self   GAMMA_self   Hz/Pa   GAM have values around 20000 Hz/Pa
    10   broadening parameter N2     GAMMA_N2     Hz/Pa
    11   broadening parameter O2     GAMMA_O2     Hz/Pa
    12   broadening parameter H2O    GAMMA_H2O    Hz/Pa
    13   broadening parameter CO2    GAMMA_CO2    Hz/Pa
    14   broadening parameter H2     GAMMA_H2     Hz/Pa
    15   broadening parameter He     GAMMA_He     Hz/Pa

    16   GAM temp. exponent self     N_self       -       N have values around .5
    17   GAM temp. exponent N2       N_N2         -       
    18   GAM temp. exponent O2       N_O2         -       
    19   GAM temp. exponent H2O      N_H2O        -       
    20   GAM temp. exponent CO2      N_CO2        -       
    21   GAM temp. exponent H2       N_H2         -       
    22   GAM temp. exponent He       N_He         -       

    23   F pressure shift N2         DELTA_N2     Hz/Pa   DELTA have values around 0 Hz/Pa
    24   F pressure shift O2         DELTA_O2     Hz/Pa    
    25   F pressure shift H2O        DELTA_H2O    Hz/Pa    
    26   F pressure shift CO2        DELTA_CO2    Hz/Pa    
    27   F pressure shift H2         DELTA_H2     Hz/Pa    
    28   F pressure shift He         DELTA_He     Hz/Pa    

    29   Vibrational and rotational  VRA          -       contains (coded) quantum numbers.
         assignments                                     
------------------------------------------------------------------      
Parameters 0-28 must be present.
Coding conventions of parameter 29 are species specific. The definition is
given in arts-xml-data/spectroscopy/perrin/ARTSCAT-4_Col29_Conventions.txt.


The names of the private members and public access functions of
this data structure follow the above table. The only difference is
that underscores are omited and only the first letter of each name
is capitalized. This is for consistency with the notation
elsewhere in the program.

\author Stefan Buehler 
Enumerator
None 
Lorentz 
SameAsLineShape 
Manual 

Definition at line 201 of file linerecord.h.

Function Documentation

◆ LineNormalizationTypeFromString()

LineNormalizationType LineNormalizationTypeFromString ( const String in)

Definition at line 2818 of file linerecord.cc.

References LineRecord::mlinenorm, None, RosenkranzQuadratic, VVH, and VVW.

◆ LinePopulationTypeFromString()

LinePopulationType LinePopulationTypeFromString ( const String in)

◆ MirroringTypeFromString()

MirroringType MirroringTypeFromString ( const String in)

Definition at line 2788 of file linerecord.cc.

References Lorentz, Manual, LineRecord::mmirroring, None, and SameAsLineShape.

◆ operator<<()