#include <absorption.h>
Public Member Functions | |
LineRecord () | |
Default constructor. | |
LineRecord (Index species, Index isotope, Numeric f, Numeric psf, Numeric i0, Numeric ti0, Numeric elow, Numeric agam, Numeric sgam, Numeric nair, Numeric nself, Numeric tgam, const ArrayOfNumeric &aux, Numeric, Numeric, Numeric, Numeric, Numeric, Numeric, Numeric) | |
Constructor that sets all data elements explicitly. | |
String | Version () const |
Return the version String. | |
Index | Species () const |
The index of the molecular species that this line belongs to. | |
Index | Isotope () const |
The index of the isotopic species that this line belongs to. | |
String | Name () const |
The full name of the species and isotope. | |
const SpeciesRecord & | SpeciesData () const |
The matching SpeciesRecord from species_data. | |
const IsotopeRecord & | IsotopeData () const |
The matching IsotopeRecord from species_data. | |
Numeric | F () const |
The line center frequency in Hz. | |
void | setF (Numeric new_mf) |
Set the line center frequency in Hz. | |
Numeric | Psf () const |
The pressure shift parameter in Hz/Pa. | |
void | setPsf (Numeric new_mpsf) |
Set the pressure shift parameter in Hz/Pa. | |
Numeric | I0 () const |
The line intensity in m^2*Hz at the reference temperature Ti0 . | |
void | setI0 (Numeric new_mi0) |
Set Intensity. | |
Numeric | Ti0 () const |
Reference temperature for I0 in K:. | |
Numeric | Elow () const |
Lower state energy in cm^-1:. | |
Numeric | Agam () const |
Air broadened width in Hz/Pa:. | |
void | setAgam (Numeric new_agam) |
Set Air broadened width in Hz/Pa:. | |
Numeric | Sgam () const |
Self broadened width in Hz/Pa:. | |
void | setSgam (Numeric new_sgam) |
Set Self broadened width in Hz/Pa:. | |
Numeric | Nair () const |
AGAM temperature exponent (dimensionless):. | |
void | setNair (Numeric new_mnair) |
Set AGAM temperature exponent (dimensionless):. | |
Numeric | Nself () const |
SGAM temperature exponent (dimensionless):. | |
void | setNself (Numeric new_mnself) |
Set SGAM temperature exponent (dimensionless):. | |
Numeric | Tgam () const |
Reference temperature for AGAM and SGAM in K:. | |
Index | Naux () const |
Number of auxiliary parameters. | |
const ArrayOfNumeric & | Aux () const |
Auxiliary parameters. | |
Numeric | dF () const |
Accuracy for line position in Hz :. | |
Numeric | dI0 () const |
Accuracy for line intensity in relative value :. | |
Numeric | dAgam () const |
Accuracy for air broadened width in relative value :. | |
Numeric | dSgam () const |
Accuracy for self broadened width in relative value :. | |
Numeric | dNair () const |
Accuracy for AGAM temperature exponent in relative value :. | |
Numeric | dNself () const |
Accuracy for SGAM temperature exponent in relative value:. | |
Numeric | dPsf () const |
Accuracy for pressure shift in relative value :. | |
bool | ReadFromHitranStream (istream &is) |
Read one line from a stream associated with a HITRAN 1986-2001 file. | |
bool | ReadFromHitran2004Stream (istream &is) |
Read one line from a stream associated with a HITRAN 2004 file. | |
bool | ReadFromMytran2Stream (istream &is) |
Read one line from a stream associated with a MYTRAN2 file. | |
bool | ReadFromJplStream (istream &is) |
Read one line from a stream associated with a JPL file. | |
bool | ReadFromArtsStream (istream &is) |
Read one line from a stream associated with an Arts file. | |
Private Attributes | |
Index | mspecies |
Index | misotope |
Numeric | mf |
Numeric | mpsf |
Numeric | mi0 |
Numeric | mti0 |
Numeric | melow |
Numeric | magam |
Numeric | msgam |
Numeric | mnair |
Numeric | mnself |
Numeric | mtgam |
ArrayOfNumeric | maux |
Numeric | mdf |
Numeric | mdi0 |
Numeric | mdagam |
Numeric | mdsgam |
Numeric | mdnair |
Numeric | mdnself |
Numeric | mdpsf |
Static Private Attributes | |
static const Index | mversion = 3 |
Friends | |
void | linesElowToJoule (Array< LineRecord > &abs_lines) |
Make the helper function linesElowToJoule a friend, so that it can change the lower state energy. |
Here is a description of the ARTS catalogue format:
To keep track of changes in the catalog format, every catalogue file must start with ARTSCAT-x. The current version is x=2. Files with different or missing version will be rejected. The current version is stored in the private member variable mversion. It can be read with member function Version, which returns a String `ARTSCAT-x'.
After the version tag (ARTSCAT-x), ARTS outputs the number of lines when catalogue files are written. This number is not used by reading routines, though.
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. Each new transition is marked with a `@' character.
The first column will contain the species and isotope, 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 isotope ratio. This is similar to JPL, but different to HITRAN.
The line format is:
Col Variable Label Unit Comment ------------------------------------------------------------------ 0 `@' ENTRY - marks start of entry 1 name 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 m^2/Hz per isotope, 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 line file would be:
ARTSCAT-2 2 @ CH4-211 1011349857.063 0 2.96070344144819e-27 296 2183.6851 13314.2468393782 21302.7949430052 0.75 0.75 296 0 @ O3-666 1088246622.54 0 2.82913939200384e-22 296 522.5576 21361.9693734024 27723.2206411054 0.76 0.76 296 0
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 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.
Definition at line 462 of file absorption.h.
LineRecord::LineRecord | ( | ) | [inline] |
Default constructor.
Initialize to default values. The indices are initialized to large numbers, so that we at least get range errors when we try to used un-initialized data.
Definition at line 473 of file absorption.h.
LineRecord::LineRecord | ( | Index | species, | |
Index | isotope, | |||
Numeric | f, | |||
Numeric | psf, | |||
Numeric | i0, | |||
Numeric | ti0, | |||
Numeric | elow, | |||
Numeric | agam, | |||
Numeric | sgam, | |||
Numeric | nair, | |||
Numeric | nself, | |||
Numeric | tgam, | |||
const ArrayOfNumeric & | aux, | |||
Numeric | , | |||
Numeric | , | |||
Numeric | , | |||
Numeric | , | |||
Numeric | , | |||
Numeric | , | |||
Numeric | ||||
) | [inline] |
Constructor that sets all data elements explicitly.
If assertions are not disabled (i.e., if NDEBUG is not #defined), assert statements check that the species and isotope data exists.
Definition at line 500 of file absorption.h.
String LineRecord::Version | ( | ) | const [inline] |
Return the version String.
Definition at line 552 of file absorption.h.
References mversion.
Referenced by abs_linesReadFromArtsObsolete(), and xml_read_from_stream().
Index LineRecord::Species | ( | ) | const [inline] |
The index of the molecular species that this line belongs to.
The species data can be accessed by species_data[Species()].
Definition at line 561 of file absorption.h.
References mspecies.
Referenced by abs_lines_per_speciesCreateFromLines().
Index LineRecord::Isotope | ( | ) | const [inline] |
The index of the isotopic species that this line belongs to.
The isotopic species data can be accessed by species_data[Species()].Isotope()[Isotope()].
Definition at line 566 of file absorption.h.
References misotope.
Referenced by abs_lines_per_speciesCreateFromLines().
String LineRecord::Name | ( | ) | const |
The full name of the species and isotope.
E.g., `O3-666'. The name is found by looking up the information in species_data, using the species and isotope index.
Definition at line 164 of file absorption.cc.
References SpeciesRecord::Isotope(), misotope, mspecies, SpeciesRecord::Name(), and species_data.
Referenced by operator<<(), and xsec_species().
const SpeciesRecord & LineRecord::SpeciesData | ( | ) | const |
The matching SpeciesRecord from species_data.
To get at the species data of a LineRecord lr, you can use:
Definition at line 181 of file absorption.cc.
References mspecies, and species_data.
Referenced by abs_lines_per_speciesCreateFromLines().
const IsotopeRecord & LineRecord::IsotopeData | ( | ) | const |
The matching IsotopeRecord from species_data.
The IsotopeRecord is a subset of the SpeciesRecord. To get at the isotope data of a LineRecord lr, you can use:
Definition at line 199 of file absorption.cc.
References misotope, mspecies, and species_data.
Referenced by xsec_species().
Numeric LineRecord::F | ( | ) | const [inline] |
The line center frequency in Hz.
Definition at line 575 of file absorption.h.
References mf.
Referenced by abs_lines_per_speciesAddMirrorLines(), abs_lines_per_speciesCreateFromLines(), abs_linesReadFromArtsObsolete(), abs_linesReadFromHitran(), abs_linesReadFromHitran2004(), abs_linesReadFromJpl(), abs_linesReadFromMytran2(), operator<<(), xml_read_from_stream(), and xsec_species().
void LineRecord::setF | ( | Numeric | new_mf | ) | [inline] |
Set the line center frequency in Hz.
Definition at line 578 of file absorption.h.
References mf.
Referenced by abs_lines_per_speciesAddMirrorLines().
Numeric LineRecord::Psf | ( | ) | const [inline] |
The pressure shift parameter in Hz/Pa.
Definition at line 581 of file absorption.h.
References mpsf.
Referenced by operator<<(), and xsec_species().
void LineRecord::setPsf | ( | Numeric | new_mpsf | ) | [inline] |
Set the pressure shift parameter in Hz/Pa.
Definition at line 584 of file absorption.h.
References mpsf.
Numeric LineRecord::I0 | ( | ) | const [inline] |
The line intensity in m^2*Hz at the reference temperature Ti0
.
The line intensity is defined by:
where is the absorption coefficient (in m^-1),
is frequency,
is the total number density,
is the volume mixing ratio, and
is the lineshape function.
Definition at line 598 of file absorption.h.
References mi0.
Referenced by operator<<(), and xsec_species().
void LineRecord::setI0 | ( | Numeric | new_mi0 | ) | [inline] |
Numeric LineRecord::Ti0 | ( | ) | const [inline] |
Reference temperature for I0 in K:.
Definition at line 604 of file absorption.h.
References mti0.
Referenced by operator<<(), and xsec_species().
Numeric LineRecord::Elow | ( | ) | const [inline] |
Lower state energy in cm^-1:.
Definition at line 607 of file absorption.h.
References melow.
Referenced by operator<<(), and xsec_species().
Numeric LineRecord::Agam | ( | ) | const [inline] |
Air broadened width in Hz/Pa:.
Definition at line 610 of file absorption.h.
References magam.
Referenced by operator<<(), and xsec_species().
void LineRecord::setAgam | ( | Numeric | new_agam | ) | [inline] |
Numeric LineRecord::Sgam | ( | ) | const [inline] |
Self broadened width in Hz/Pa:.
Definition at line 616 of file absorption.h.
References msgam.
Referenced by operator<<(), and xsec_species().
void LineRecord::setSgam | ( | Numeric | new_sgam | ) | [inline] |
Numeric LineRecord::Nair | ( | ) | const [inline] |
AGAM temperature exponent (dimensionless):.
Definition at line 622 of file absorption.h.
References mnair.
Referenced by operator<<(), and xsec_species().
void LineRecord::setNair | ( | Numeric | new_mnair | ) | [inline] |
Set AGAM temperature exponent (dimensionless):.
Definition at line 625 of file absorption.h.
References mnair.
Numeric LineRecord::Nself | ( | ) | const [inline] |
SGAM temperature exponent (dimensionless):.
Definition at line 628 of file absorption.h.
References mnself.
Referenced by operator<<(), and xsec_species().
void LineRecord::setNself | ( | Numeric | new_mnself | ) | [inline] |
Set SGAM temperature exponent (dimensionless):.
Definition at line 631 of file absorption.h.
References mnself.
Numeric LineRecord::Tgam | ( | ) | const [inline] |
Reference temperature for AGAM and SGAM in K:.
Definition at line 634 of file absorption.h.
References mtgam.
Referenced by operator<<(), and xsec_species().
Index LineRecord::Naux | ( | ) | const [inline] |
Number of auxiliary parameters.
This function is actually redundant, since the number of auxiliary parameters can also be obtained directly with Aux.nelem(). I just added the function in order to have consistency of the interface with the catalgue format.
Definition at line 641 of file absorption.h.
References maux, and Array< base >::nelem().
Referenced by operator<<(), and xsec_species().
const ArrayOfNumeric& LineRecord::Aux | ( | ) | const [inline] |
Auxiliary parameters.
Definition at line 644 of file absorption.h.
References maux.
Referenced by operator<<(), and xsec_species().
Numeric LineRecord::dF | ( | ) | const [inline] |
Accuracy for line position in Hz :.
Definition at line 648 of file absorption.h.
References mdf.
Referenced by operator<<().
Numeric LineRecord::dI0 | ( | ) | const [inline] |
Accuracy for line intensity in relative value :.
Definition at line 651 of file absorption.h.
References mdi0.
Referenced by operator<<().
Numeric LineRecord::dAgam | ( | ) | const [inline] |
Accuracy for air broadened width in relative value :.
Definition at line 654 of file absorption.h.
References mdagam.
Referenced by operator<<().
Numeric LineRecord::dSgam | ( | ) | const [inline] |
Accuracy for self broadened width in relative value :.
Definition at line 657 of file absorption.h.
References mdsgam.
Referenced by operator<<().
Numeric LineRecord::dNair | ( | ) | const [inline] |
Accuracy for AGAM temperature exponent in relative value :.
Definition at line 660 of file absorption.h.
References mdnair.
Referenced by operator<<().
Numeric LineRecord::dNself | ( | ) | const [inline] |
Accuracy for SGAM temperature exponent in relative value:.
Definition at line 663 of file absorption.h.
References mdnself.
Referenced by operator<<().
Numeric LineRecord::dPsf | ( | ) | const [inline] |
Accuracy for pressure shift in relative value :.
Definition at line 666 of file absorption.h.
References mdpsf.
Referenced by operator<<().
bool LineRecord::ReadFromHitranStream | ( | istream & | is | ) |
Read one line from a stream associated with a HITRAN 1986-2001 file.
The HITRAN format is as follows (directly from the HITRAN documentation):
Each line consists of 100 bytes of ASCII text data, followed by a line feed (ASCII 10) and carriage return (ASCII 13) character, for a total of 102 bytes per line. Each line can be read using the following READ and FORMAT statement pair (for a FORTRAN sequential access read): READ(3,800) MO,ISO,V,S,R,AGAM,SGAM,E,N,d,V1,V2,Q1,Q2,IERF,IERS, * IERH,IREFF,IREFS,IREFH 800 FORMAT(I2,I1,F12.6,1P2E10.3,0P2F5.4,F10.4,F4.2,F8.6,2I3,2A9,3I1,3I2) Each item is defined below, with its format shown in parenthesis. MO (I2) = molecule number ISO (I1) = isotope number (1 = most abundant, 2 = second, etc) V (F12.6) = frequency of transition in wavenumbers (cm-1) S (E10.3) = intensity in cm-1/(molec * cm-2) at 296 Kelvin R (E10.3) = transition probability squared in Debyes**2 AGAM (F5.4) = air-broadened halfwidth (HWHM) in cm-1/atm at 296 Kelvin SGAM (F5.4) = self-broadened halfwidth (HWHM) in cm-1/atm at 296 Kelvin E (F10.4) = lower state energy in wavenumbers (cm-1) N (F4.2) = coefficient of temperature dependence of air-broadened halfwidth d (F8.6) = shift of transition due to pressure (cm-1) V1 (I3) = upper state global quanta index V2 (I3) = lower state global quanta index Q1 (A9) = upper state local quanta Q2 (A9) = lower state local quanta IERF (I1) = accuracy index for frequency reference IERS (I1) = accuracy index for intensity reference IERH (I1) = accuracy index for halfwidth reference IREFF (I2) = lookup index for frequency IREFS (I2) = lookup index for intensity IREFH (I2) = lookup index for halfwidth The molecule numbers are encoded as shown in the table below: 0= Null 1= H2O 2= CO2 3= O3 4= N2O 5= CO 6= CH4 7= O2 8= NO 9= SO2 10= NO2 11= NH3 12= HNO3 13= OH 14= HF 15= HCl 16= HBr 17= HI 18= ClO 19= OCS 20= H2CO 21= HOCl 22= N2 23= HCN 24=CH3Cl 25= H2O2 26= C2H2 27= C2H6 28= PH3 29= COF2 30= SF6 31= H2S 32=HCOOH
The function attempts to read a line of data from the catalogue. It returns false if it succeeds. Otherwise, if eof is reached, it returns true. If an error occurs, a runtime_error is thrown. When the function looks for a data line, comment lines are automatically skipped. It is checked if the data record has the right number of characters. If not, a runtime_error is thrown.
is | Stream from which to read |
runtime_error | Some error occured during the read |
Definition at line 212 of file absorption.cc.
References arts_exit(), ATM2PA, convHitranIERF(), convHitranIERSH(), extract(), iso(), SpeciesRecord::Isotope(), magam, max, mdagam, mdf, mdi0, mdpsf, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, my_basic_string< charT >::nelem(), Array< base >::nelem(), out0, out3, species_data, SPEED_OF_LIGHT, and wavenumber_to_joule().
Referenced by abs_linesReadFromHitran().
bool LineRecord::ReadFromHitran2004Stream | ( | istream & | is | ) |
Read one line from a stream associated with a HITRAN 2004 file.
The HITRAN format is as follows:
Each line consists of 160 ASCII characters, followed by a line feed (ASCII 10) and carriage return (ASCII 13) character, for a total of 162 bytes per line. Each item is defined below, with its Fortran format shown in parenthesis. (I2) molecule number (I1) isotopologue number (1 = most abundant, 2 = second, etc) (F12.6) vacuum wavenumbers (cm-1) (E10.3) intensity in cm-1/(molec * cm-2) at 296 Kelvin (E10.3) Einstein-A coefficient (s-1) (F5.4) air-broadened halfwidth (HWHM) in cm-1/atm at 296 Kelvin (F5.4) self-broadened halfwidth (HWHM) in cm-1/atm at 296 Kelvin (F10.4) lower state energy (cm-1) (F4.2) coefficient of temperature dependence of air-broadened halfwidth (F8.6) air-broadened pressure shift of line transition at 296 K (cm-1) (A15) upper state global quanta (A15) lower state global quanta (A15) upper state local quanta (A15) lower state local quanta (I1) uncertainty index for wavenumber (I1) uncertainty index for intensity (I1) uncertainty index for air-broadened half-width (I1) uncertainty index for self-broadened half-width (I1) uncertainty index for temperature dependence (I1) uncertainty index for pressure shift (I2) index for table of references correspond. to wavenumber (I2) index for table of references correspond. to intensity (I2) index for table of references correspond. to air-broadened half-width (I2) index for table of references correspond. to self-broadened half-width (I2) index for table of references correspond. to temperature dependence (I2) index for table of references correspond. to pressure shift (A1) flag (*) for lines supplied with line-coupling algorithm (F7.1) upper state statistical weight (F7.1) lower state statistical weight The molecule numbers are encoded as shown in the table below: 0= Null 1= H2O 2= CO2 3= O3 4= N2O 5= CO 6= CH4 7= O2 8= NO 9= SO2 10= NO2 11= NH3 12= HNO3 13= OH 14= HF 15= HCl 16= HBr 17= HI 18= ClO 19= OCS 20= H2CO 21= HOCl 22= N2 23= HCN 24=CH3Cl 25= H2O2 26= C2H2 27= C2H6 28= PH3 29= COF2 30= SF6 31= H2S 32=HCOOH 33= HO2 34= O 35=ClONO2 36= NO+ 37= HOBr 38= C2H4
CH3OH is not included in ARTS because its total internal partition sum is not known yet.
The function attempts to read a line of data from the catalogue. It returns false if it succeeds. Otherwise, if eof is reached, it returns true. If an error occurs, a runtime_error is thrown. When the function looks for a data line, comment lines are automatically skipped. It is checked if the data record has the right number of characters (comment lines are ignored). If not, a runtime_error is thrown. If the molecule is unknown to ARTS, a warning is prompted but the program continues (ignoring this record). For CH3OH this warning will be issued even when using the regular Hitran 2004 data base (see above).
is | Stream from which to read |
runtime_error | Some error occured during the read |
Definition at line 662 of file absorption.cc.
References ATM2PA, convHitranIERF(), convHitranIERSH(), extract(), iso(), SpeciesRecord::Isotope(), magam, max, mdagam, mdf, mdi0, mdnair, mdnself, mdpsf, mdsgam, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, my_basic_string< charT >::nelem(), Array< base >::nelem(), out1, out3, species_data, SPEED_OF_LIGHT, and wavenumber_to_joule().
Referenced by abs_linesReadFromHitran2004().
bool LineRecord::ReadFromMytran2Stream | ( | istream & | is | ) |
Read one line from a stream associated with a MYTRAN2 file.
The MYTRAN2 format is as follows (directly taken from the abs_my.c documentation):
The MYTRAN format is as follows (FORTRAN notation): FORMAT(I2,I1,F13.4,1PE10.3,0P2F5.2,F10.4,2F4.2,F8.6,F6.4,2I3,2A9,4I1,3I2) Each item is defined below, with its FORMAT String shown in parenthesis. MO (I2) = molecule number ISO (I1) = isotope number (1 = most abundant, 2 = second, etc) * F (F13.4) = frequency of transition in MHz * errf (F8.4) = error in f in MHz S (E10.3) = intensity in cm-1/(molec * cm-2) at 296 K * AGAM (F5.4) = air-broadened halfwidth (HWHM) in MHz/Torr at Tref * SGAM (F5.4) = self-broadened halfwidth (HWHM) in MHz/Torr at Tref E (F10.4) = lower state energy in wavenumbers (cm-1) N (F4.2) = coefficient of temperature dependence of air-broadened halfwidth * N_self (F4.2) = coefficient of temperature dependence of self-broadened halfwidth * Tref (F7.2) = reference temperature for AGAM and SGAM * d (F9.7) = shift of transition due to pressure (MHz/Torr) V1 (I3) = upper state global quanta index V2 (I3) = lower state global quanta index Q1 (A9) = upper state local quanta Q2 (A9) = lower state local quanta IERS (I1) = accuracy index for S IERH (I1) = accuracy index for AGAM * IERN (I1) = accuracy index for N The asterisks mark entries that are different from HITRAN. Note that AGAM and SGAM are for the temperature Tref, while S is still for 296 K! The molecule numbers are encoded as shown in the table below: 0= Null 1= H2O 2= CO2 3= O3 4= N2O 5= CO 6= CH4 7= O2 8= NO 9= SO2 10= NO2 11= NH3 12= HNO3 13= OH 14= HF 15= HCl 16= HBr 17= HI 18= ClO 19= OCS 20= H2CO 21= HOCl 22= N2 23= HCN 24=CH3Cl 25= H2O2 26= C2H2 27= C2H6 28= PH3 29= COF2 30= SF6 31= H2S 32=HCOOH 33= HO2 34= O 35= CLONO2 36= NO+ 37= Null 38= Null 39= Null 40=H2O_L 41= Null 42= Null 43= OCLO 44= Null 45= Null 46=BRO 47= Null 48= H2SO4 49=CL2O2 All molecule numbers are from HITRAN, except for species with id's greater or equals 40, which are not included in HITRAN. (E.g.: For BrO, iso=1 is Br-79-O,iso=2 is Br-81-O.)
The function attempts to read a line of data from the catalogue. It returns false if it succeeds. Otherwise, if eof is reached, it returns true. If an error occurs, a runtime_error is thrown. When the function looks for a data line, comment lines are automatically skipped.
is | Stream from which to read |
runtime_error | Some error occured during the read |
Definition at line 1128 of file absorption.cc.
References arts_exit(), convMytranIER(), extract(), iso(), SpeciesRecord::Isotope(), magam, max, mdagam, mdf, mdi0, mdnair, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, my_basic_string< charT >::nelem(), Array< base >::nelem(), out0, out3, species_data, SPEED_OF_LIGHT, TORR2PA, and wavenumber_to_joule().
Referenced by abs_linesReadFromMytran2().
bool LineRecord::ReadFromJplStream | ( | istream & | is | ) |
Read one line from a stream associated with a JPL file.
The JPL format is as follows (directly taken from the jpl documentation):
The catalog line files are composed of 80-character lines, with one line entry per spectral line. The format of each line is: \label{lfmt} \begin{tabular}{@{}lccccccccr@{}} FREQ, & ERR, & LGINT, & DR, & ELO, & GUP, & TAG, & QNFMT, & QN${'}$, & QN${''}$\\ (F13.4, & F8.4, & F8.4, & I2, & F10.4, & I3, & I7, & I4, & 6I2, & 6I2)\\ \end{tabular} \begin{tabular}{lp{4.5in}} FREQ: & Frequency of the line in MHz.\\ ERR: & Estimated or experimental error of FREQ in MHz.\\ LGINT: &Base 10 logarithm of the integrated intensity in units of \linebreak nm$^2$$\cdot$MHz at 300 K. (See Section 3 for conversions to other units.)\\ DR: & Degrees of freedom in the rotational partition function (0 for atoms, 2 for linear molecules, and 3 for nonlinear molecules).\\ ELO: &Lower state energy in cm$^{-1}$ relative to the lowest energy spin--rotation level in ground vibronic state.\\ GUP: & Upper state degeneracy.\\ TAG: & Species tag or molecular identifier. A negative value flags that the line frequency has been measured in the laboratory. The absolute value of TAG is then the species tag and ERR is the reported experimental error. The three most significant digits of the species tag are coded as the mass number of the species, as explained above.\\ QNFMT: &Identifies the format of the quantum numbers given in the field QN. These quantum number formats are given in Section 5 and are different from those in the first two editions of the catalog.\\ QN${'}$: & Quantum numbers for the upper state coded according to QNFMT.\\ QN${''}$: & Quantum numbers for the lower state.\\ \end{tabular}
The function attempts to read a line of data from the catalogue. It returns false if it succeeds. Otherwise, if eof is reached, it returns true. If an error occurs, a runtime_error is thrown. When the function looks for a data line, comment lines are automatically skipped (unused in jpl).
is | Stream from which to read |
runtime_error | Some error occured during the read |
Definition at line 1527 of file absorption.cc.
References extract(), SpeciesRecord::Isotope(), magam, mdf, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, my_basic_string< charT >::nelem(), Array< base >::nelem(), out3, species_data, and wavenumber_to_joule().
Referenced by abs_linesReadFromJpl().
bool LineRecord::ReadFromArtsStream | ( | istream & | is | ) |
Read one line from a stream associated with an Arts file.
Format: see Documentation of class LineRecord
The function attempts to read a line of data from the catalogue. It returns false if it succeeds. Otherwise, if eof is reached, it returns true. If an error occurs, a runtime_error is thrown. When the function looks for a data line, comment lines are automatically skipped.
is | Stream from which to read |
runtime_error | Some error occured during the read |
Definition at line 1771 of file absorption.cc.
References extract(), SpeciesRecord::Isotope(), magam, maux, mdagam, mdf, mdi0, mdnair, mdnself, mdpsf, mdsgam, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, SpeciesRecord::Name(), my_basic_string< charT >::nelem(), Array< base >::nelem(), out3, and species_data.
Referenced by abs_linesReadFromArtsObsolete(), and xml_read_from_stream().
void linesElowToJoule | ( | Array< LineRecord > & | abs_lines | ) | [friend] |
Make the helper function linesElowToJoule a friend, so that it can change the lower state energy.
FIXME: Remove this when we don't need the helper function anymore.
const Index LineRecord::mversion = 3 [static, private] |
Index LineRecord::mspecies [private] |
Definition at line 959 of file absorption.h.
Referenced by IsotopeData(), Name(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), Species(), and SpeciesData().
Index LineRecord::misotope [private] |
Definition at line 961 of file absorption.h.
Referenced by Isotope(), IsotopeData(), Name(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), and ReadFromMytran2Stream().
Numeric LineRecord::mf [private] |
Definition at line 963 of file absorption.h.
Referenced by F(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setF().
Numeric LineRecord::mpsf [private] |
Definition at line 965 of file absorption.h.
Referenced by Psf(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setPsf().
Numeric LineRecord::mi0 [private] |
Definition at line 967 of file absorption.h.
Referenced by I0(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setI0().
Numeric LineRecord::mti0 [private] |
Definition at line 969 of file absorption.h.
Referenced by ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and Ti0().
Numeric LineRecord::melow [private] |
Definition at line 971 of file absorption.h.
Referenced by Elow(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), and ReadFromMytran2Stream().
Numeric LineRecord::magam [private] |
Definition at line 973 of file absorption.h.
Referenced by Agam(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setAgam().
Numeric LineRecord::msgam [private] |
Definition at line 975 of file absorption.h.
Referenced by ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), setSgam(), and Sgam().
Numeric LineRecord::mnair [private] |
Definition at line 977 of file absorption.h.
Referenced by Nair(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setNair().
Numeric LineRecord::mnself [private] |
Definition at line 979 of file absorption.h.
Referenced by Nself(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setNself().
Numeric LineRecord::mtgam [private] |
Definition at line 981 of file absorption.h.
Referenced by ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and Tgam().
ArrayOfNumeric LineRecord::maux [private] |
Numeric LineRecord::mdf [private] |
Definition at line 988 of file absorption.h.
Referenced by dF(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), and ReadFromMytran2Stream().
Numeric LineRecord::mdi0 [private] |
Definition at line 990 of file absorption.h.
Referenced by dI0(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), and ReadFromMytran2Stream().
Numeric LineRecord::mdagam [private] |
Definition at line 992 of file absorption.h.
Referenced by dAgam(), ReadFromArtsStream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), and ReadFromMytran2Stream().
Numeric LineRecord::mdsgam [private] |
Definition at line 994 of file absorption.h.
Referenced by dSgam(), ReadFromArtsStream(), and ReadFromHitran2004Stream().
Numeric LineRecord::mdnair [private] |
Definition at line 996 of file absorption.h.
Referenced by dNair(), ReadFromArtsStream(), ReadFromHitran2004Stream(), and ReadFromMytran2Stream().
Numeric LineRecord::mdnself [private] |
Definition at line 998 of file absorption.h.
Referenced by dNself(), ReadFromArtsStream(), and ReadFromHitran2004Stream().
Numeric LineRecord::mdpsf [private] |
Definition at line 1000 of file absorption.h.
Referenced by dPsf(), ReadFromArtsStream(), ReadFromHitran2004Stream(), and ReadFromHitranStream().