ARTS
2.0.49
|
Spectral line catalog data. More...
#include <absorption.h>
Public Member Functions | |
LineRecord () | |
Default constructor. More... | |
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. More... | |
String | VersionString () const |
Return the version String. More... | |
Index | Version () const |
Return the version number. More... | |
Index | Species () const |
The index of the molecular species that this line belongs to. More... | |
Index | Isotope () const |
The index of the isotopic species that this line belongs to. More... | |
String | Name () const |
The full name of the species and isotope. More... | |
const SpeciesRecord & | SpeciesData () const |
The matching SpeciesRecord from species_data. More... | |
const IsotopeRecord & | IsotopeData () const |
The matching IsotopeRecord from species_data. More... | |
Numeric | F () const |
The line center frequency in Hz. More... | |
void | setF (Numeric new_mf) |
Set the line center frequency in Hz. More... | |
Numeric | Psf () const |
The pressure shift parameter in Hz/Pa. More... | |
void | setPsf (Numeric new_mpsf) |
Set the pressure shift parameter in Hz/Pa. More... | |
Numeric | I0 () const |
The line intensity in m^2*Hz at the reference temperature Ti0 . More... | |
void | setI0 (Numeric new_mi0) |
Set Intensity. More... | |
Numeric | Ti0 () const |
Reference temperature for I0 in K: More... | |
Numeric | Elow () const |
Lower state energy in cm^-1: More... | |
Numeric | Agam () const |
Air broadened width in Hz/Pa: More... | |
void | setAgam (Numeric new_agam) |
Set Air broadened width in Hz/Pa: More... | |
Numeric | Sgam () const |
Self broadened width in Hz/Pa: More... | |
void | setSgam (Numeric new_sgam) |
Set Self broadened width in Hz/Pa: More... | |
Numeric | Nair () const |
AGAM temperature exponent (dimensionless): More... | |
void | setNair (Numeric new_mnair) |
Set AGAM temperature exponent (dimensionless): More... | |
Numeric | Nself () const |
SGAM temperature exponent (dimensionless): More... | |
void | setNself (Numeric new_mnself) |
Set SGAM temperature exponent (dimensionless): More... | |
Numeric | Tgam () const |
Reference temperature for AGAM and SGAM in K: More... | |
Index | Naux () const |
Number of auxiliary parameters. More... | |
const ArrayOfNumeric & | Aux () const |
Auxiliary parameters. More... | |
Numeric | dF () const |
Accuracy for line position in Hz : More... | |
Numeric | dI0 () const |
Accuracy for line intensity in relative value : More... | |
Numeric | dAgam () const |
Accuracy for air broadened width in relative value : More... | |
Numeric | dSgam () const |
Accuracy for self broadened width in relative value : More... | |
Numeric | dNair () const |
Accuracy for AGAM temperature exponent in relative value : More... | |
Numeric | dNself () const |
Accuracy for SGAM temperature exponent in relative value: More... | |
Numeric | dPsf () const |
Accuracy for pressure shift in relative value : More... | |
Numeric | A () const |
Einstein A-coefficient in 1/s : More... | |
Numeric | G_upper () const |
Upper state stat. More... | |
Numeric | G_lower () const |
Lower state stat. More... | |
Numeric | Gamma_self () const |
Broadening parameter self in Hz/Pa : More... | |
Numeric | Gamma_N2 () const |
Broadening parameter N2 in Hz/Pa : More... | |
Numeric | Gamma_O2 () const |
Broadening parameter O2 in Hz/Pa : More... | |
Numeric | Gamma_H2O () const |
Broadening parameter H2O in Hz/Pa : More... | |
Numeric | Gamma_CO2 () const |
Broadening parameter CO2 in Hz/Pa : More... | |
Numeric | Gamma_H2 () const |
Broadening parameter H2 in Hz/Pa : More... | |
Numeric | Gamma_He () const |
Broadening parameter He in Hz/Pa : More... | |
Numeric | Gam_N_self () const |
GAM temp. More... | |
Numeric | Gam_N_N2 () const |
GAM temp. More... | |
Numeric | Gam_N_O2 () const |
GAM temp. More... | |
Numeric | Gam_N_H2O () const |
GAM temp. More... | |
Numeric | Gam_N_CO2 () const |
GAM temp. More... | |
Numeric | Gam_N_H2 () const |
GAM temp. More... | |
Numeric | Gam_N_He () const |
GAM temp. More... | |
Numeric | Delta_N2 () const |
F Pressure shift N2 in Hz/Pa : More... | |
Numeric | Delta_O2 () const |
F Pressure shift O2 in Hz/Pa : More... | |
Numeric | Delta_H2O () const |
F Pressure shift H2O in Hz/Pa : More... | |
Numeric | Delta_CO2 () const |
F Pressure shift CO2 in Hz/Pa : More... | |
Numeric | Delta_H2 () const |
F Pressure shift H2 in Hz/Pa : More... | |
Numeric | Delta_He () const |
F Pressure shift He in Hz/Pa : More... | |
bool | ReadFromHitranStream (istream &is, const Verbosity &verbosity) |
Read one line from a stream associated with a HITRAN 1986-2001 file. More... | |
bool | ReadFromHitran2004Stream (istream &is, const Verbosity &verbosity) |
Read one line from a stream associated with a HITRAN 2004 file. More... | |
bool | ReadFromMytran2Stream (istream &is, const Verbosity &verbosity) |
Read one line from a stream associated with a MYTRAN2 file. More... | |
bool | ReadFromJplStream (istream &is, const Verbosity &verbosity) |
Read one line from a stream associated with a JPL file. More... | |
bool | ReadFromArtscat3Stream (istream &is, const Verbosity &verbosity) |
Read one line from a stream associated with an ARTSCAT-3 file. More... | |
bool | ReadFromArtscat4Stream (istream &is, const Verbosity &verbosity) |
Read one line from a stream associated with an ARTSCAT-4 file. More... | |
Friends | |
void | linesElowToJoule (Array< LineRecord > &abs_lines) |
Make the helper function linesElowToJoule a friend, so that it can change the lower state energy. More... | |
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 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 Hz*m^2 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:
<?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 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 481 of file absorption.h.
|
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 492 of file absorption.h.
|
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 520 of file absorption.h.
|
inline |
Einstein A-coefficient in 1/s :
Definition at line 693 of file absorption.h.
References ma.
Referenced by operator<<().
|
inline |
Air broadened width in Hz/Pa:
Definition at line 634 of file absorption.h.
References magam.
Referenced by operator<<(), and xsec_species().
|
inline |
Auxiliary parameters.
Definition at line 668 of file absorption.h.
References maux.
Referenced by operator<<(), and xsec_species().
|
inline |
Accuracy for air broadened width in relative value :
Definition at line 678 of file absorption.h.
References mdagam.
Referenced by operator<<().
|
inline |
F Pressure shift CO2 in Hz/Pa :
Definition at line 753 of file absorption.h.
References mdelta_co2.
Referenced by operator<<().
|
inline |
F Pressure shift H2 in Hz/Pa :
Definition at line 756 of file absorption.h.
References mdelta_h2.
Referenced by operator<<().
|
inline |
F Pressure shift H2O in Hz/Pa :
Definition at line 750 of file absorption.h.
References mdelta_h2o.
Referenced by operator<<().
|
inline |
F Pressure shift He in Hz/Pa :
Definition at line 759 of file absorption.h.
References mdelta_he.
Referenced by operator<<().
|
inline |
F Pressure shift N2 in Hz/Pa :
Definition at line 744 of file absorption.h.
References mdelta_n2.
Referenced by operator<<().
|
inline |
F Pressure shift O2 in Hz/Pa :
Definition at line 747 of file absorption.h.
References mdelta_o2.
Referenced by operator<<().
|
inline |
Accuracy for line position in Hz :
Definition at line 672 of file absorption.h.
References mdf.
Referenced by operator<<().
|
inline |
Accuracy for line intensity in relative value :
Definition at line 675 of file absorption.h.
References mdi0.
Referenced by operator<<().
|
inline |
Accuracy for AGAM temperature exponent in relative value :
Definition at line 684 of file absorption.h.
References mdnair.
Referenced by operator<<().
|
inline |
Accuracy for SGAM temperature exponent in relative value:
Definition at line 687 of file absorption.h.
References mdnself.
Referenced by operator<<().
|
inline |
Accuracy for pressure shift in relative value :
Definition at line 690 of file absorption.h.
References mdpsf.
Referenced by operator<<().
|
inline |
Accuracy for self broadened width in relative value :
Definition at line 681 of file absorption.h.
References mdsgam.
Referenced by operator<<().
|
inline |
Lower state energy in cm^-1:
Definition at line 631 of file absorption.h.
References melow.
Referenced by operator<<(), and xsec_species().
|
inline |
The line center frequency in Hz.
Definition at line 599 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().
|
inline |
Lower state stat.
weight:
Definition at line 699 of file absorption.h.
References mglower.
Referenced by operator<<().
|
inline |
Upper state stat.
weight:
Definition at line 696 of file absorption.h.
References mgupper.
Referenced by operator<<().
|
inline |
GAM temp.
exponent N CO2:
Definition at line 735 of file absorption.h.
References mn_co2.
Referenced by operator<<().
|
inline |
GAM temp.
exponent N H2:
Definition at line 738 of file absorption.h.
References mn_h2.
Referenced by operator<<().
|
inline |
GAM temp.
exponent N H2O:
Definition at line 732 of file absorption.h.
References mn_h2o.
Referenced by operator<<().
|
inline |
GAM temp.
exponent N He:
Definition at line 741 of file absorption.h.
References mn_he.
Referenced by operator<<().
|
inline |
GAM temp.
exponent N N2:
Definition at line 726 of file absorption.h.
References mn_n2.
Referenced by operator<<().
|
inline |
GAM temp.
exponent N O2:
Definition at line 729 of file absorption.h.
References mn_o2.
Referenced by operator<<().
|
inline |
GAM temp.
exponent N self:
Definition at line 723 of file absorption.h.
References mn_self.
Referenced by operator<<().
|
inline |
Broadening parameter CO2 in Hz/Pa :
Definition at line 714 of file absorption.h.
References mgamma_co2.
Referenced by operator<<().
|
inline |
Broadening parameter H2 in Hz/Pa :
Definition at line 717 of file absorption.h.
References mgamma_h2.
Referenced by operator<<().
|
inline |
Broadening parameter H2O in Hz/Pa :
Definition at line 711 of file absorption.h.
References mgamma_h2o.
Referenced by operator<<().
|
inline |
Broadening parameter He in Hz/Pa :
Definition at line 720 of file absorption.h.
References mgamma_he.
Referenced by operator<<().
|
inline |
Broadening parameter N2 in Hz/Pa :
Definition at line 705 of file absorption.h.
References mgamma_n2.
Referenced by operator<<().
|
inline |
Broadening parameter O2 in Hz/Pa :
Definition at line 708 of file absorption.h.
References mgamma_o2.
Referenced by operator<<().
|
inline |
Broadening parameter self in Hz/Pa :
Definition at line 702 of file absorption.h.
References mgamma_self.
Referenced by operator<<().
|
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 622 of file absorption.h.
References mi0.
Referenced by operator<<(), and xsec_species().
|
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 590 of file absorption.h.
References misotope.
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:
The last option is clearly the shortest, and has the advantage that you don't have to declare the external variable species_data.
Definition at line 242 of file absorption.cc.
References misotope, mspecies, and species_data.
Referenced by xsec_species().
|
inline |
AGAM temperature exponent (dimensionless):
Definition at line 646 of file absorption.h.
References mnair.
Referenced by operator<<(), and xsec_species().
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 207 of file absorption.cc.
References SpeciesRecord::Isotope(), misotope, mspecies, SpeciesRecord::Name(), and species_data.
Referenced by operator<<().
|
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 665 of file absorption.h.
References maux, and Array< base >::nelem().
Referenced by operator<<(), and xsec_species().
|
inline |
SGAM temperature exponent (dimensionless):
Definition at line 652 of file absorption.h.
References mnself.
Referenced by operator<<(), and xsec_species().
|
inline |
The pressure shift parameter in Hz/Pa.
Definition at line 605 of file absorption.h.
References mpsf.
Referenced by operator<<(), and xsec_species().
bool LineRecord::ReadFromArtscat3Stream | ( | istream & | is, |
const Verbosity & | verbosity | ||
) |
Read one line from a stream associated with an ARTSCAT-3 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 1825 of file absorption.cc.
References CREATE_OUT3, extract(), SpeciesRecord::Isotope(), magam, maux, mdagam, mdf, mdi0, mdnair, mdnself, mdpsf, mdsgam, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, mversion, SpeciesRecord::Name(), my_basic_string< charT >::nelem(), species_data, and SpecIsoMap::Speciesindex().
Referenced by abs_linesReadFromArtsObsolete(), and xml_read_from_stream().
bool LineRecord::ReadFromArtscat4Stream | ( | istream & | is, |
const Verbosity & | verbosity | ||
) |
Read one line from a stream associated with an ARTSCAT-4 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 2020 of file absorption.cc.
References CREATE_OUT3, extract(), SpeciesRecord::Isotope(), ma, maux, mdagam, mdelta_co2, mdelta_h2, mdelta_h2o, mdelta_he, mdelta_n2, mdelta_o2, mdf, mdi0, mdnair, mdnself, mdpsf, mdsgam, melow, mf, mgamma_co2, mgamma_h2, mgamma_h2o, mgamma_he, mgamma_n2, mgamma_o2, mgamma_self, mglower, mgupper, mi0, misotope, mn_co2, mn_h2, mn_h2o, mn_he, mn_n2, mn_o2, mn_self, mspecies, mti0, mversion, SpeciesRecord::Name(), my_basic_string< charT >::nelem(), species_data, and SpecIsoMap::Speciesindex().
Referenced by xml_read_from_stream().
bool LineRecord::ReadFromHitran2004Stream | ( | istream & | is, |
const Verbosity & | verbosity | ||
) |
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 708 of file absorption.cc.
References ATM2PA, convHitranIERF(), convHitranIERSH(), CREATE_OUT1, CREATE_OUT3, extract(), iso(), SpeciesRecord::Isotope(), magam, max, mdagam, mdf, mdi0, mdnair, mdnself, mdpsf, mdsgam, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, Array< base >::nelem(), my_basic_string< charT >::nelem(), species_data, SPEED_OF_LIGHT, and wavenumber_to_joule().
Referenced by abs_linesReadFromHitran2004().
bool LineRecord::ReadFromHitranStream | ( | istream & | is, |
const Verbosity & | verbosity | ||
) |
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 255 of file absorption.cc.
References arts_exit(), ATM2PA, convHitranIERF(), convHitranIERSH(), CREATE_OUT0, CREATE_OUT3, extract(), iso(), SpeciesRecord::Isotope(), magam, max, mdagam, mdf, mdi0, mdpsf, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, Array< base >::nelem(), my_basic_string< charT >::nelem(), species_data, SPEED_OF_LIGHT, and wavenumber_to_joule().
Referenced by abs_linesReadFromHitran().
bool LineRecord::ReadFromJplStream | ( | istream & | is, |
const Verbosity & | verbosity | ||
) |
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 1579 of file absorption.cc.
References CREATE_OUT3, extract(), SpeciesRecord::Isotope(), magam, mdf, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, my_basic_string< charT >::nelem(), species_data, SpecIsoMap::Speciesindex(), and wavenumber_to_joule().
Referenced by abs_linesReadFromJpl().
bool LineRecord::ReadFromMytran2Stream | ( | istream & | is, |
const Verbosity & | verbosity | ||
) |
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 1177 of file absorption.cc.
References arts_exit(), convMytranIER(), CREATE_OUT0, CREATE_OUT3, extract(), iso(), SpeciesRecord::Isotope(), magam, max, mdagam, mdf, mdi0, mdnair, melow, mf, mi0, misotope, mnair, mnself, mpsf, msgam, mspecies, mtgam, mti0, Array< base >::nelem(), my_basic_string< charT >::nelem(), species_data, SPEED_OF_LIGHT, TORR2PA, and wavenumber_to_joule().
Referenced by abs_linesReadFromMytran2().
|
inline |
|
inline |
Set the line center frequency in Hz.
Definition at line 602 of file absorption.h.
References mf.
Referenced by abs_lines_per_speciesAddMirrorLines().
|
inline |
|
inline |
Set AGAM temperature exponent (dimensionless):
Definition at line 649 of file absorption.h.
References mnair.
|
inline |
Set SGAM temperature exponent (dimensionless):
Definition at line 655 of file absorption.h.
References mnself.
|
inline |
Set the pressure shift parameter in Hz/Pa.
Definition at line 608 of file absorption.h.
References mpsf.
|
inline |
|
inline |
Self broadened width in Hz/Pa:
Definition at line 640 of file absorption.h.
References msgam.
Referenced by operator<<(), and xsec_species().
|
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 585 of file absorption.h.
References mspecies.
Referenced by abs_lines_per_speciesCreateFromLines().
const SpeciesRecord & LineRecord::SpeciesData | ( | ) | const |
The matching SpeciesRecord from species_data.
To get at the species data of a LineRecord lr, you can use:
The only advantages of the latter are that the notation is slightly nicer and that you don't have to declare the external variable species_data.
Definition at line 224 of file absorption.cc.
References mspecies, and species_data.
Referenced by abs_lines_per_speciesCreateFromLines().
|
inline |
Reference temperature for AGAM and SGAM in K:
Definition at line 658 of file absorption.h.
References mtgam.
Referenced by operator<<(), and xsec_species().
|
inline |
Reference temperature for I0 in K:
Definition at line 628 of file absorption.h.
References mti0.
Referenced by operator<<(), and xsec_species().
|
inline |
Return the version number.
Definition at line 581 of file absorption.h.
References mversion.
Referenced by abs_linesReadFromArtsObsolete(), operator<<(), and xml_write_to_stream().
|
inline |
Return the version String.
Definition at line 573 of file absorption.h.
References mversion.
Referenced by abs_linesReadFromArtsObsolete().
|
friend |
|
private |
Definition at line 1116 of file absorption.h.
Referenced by A(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1084 of file absorption.h.
Referenced by Agam(), ReadFromArtscat3Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setAgam().
|
private |
Definition at line 1094 of file absorption.h.
Referenced by Aux(), Naux(), ReadFromArtscat3Stream(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1103 of file absorption.h.
Referenced by dAgam(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), and ReadFromMytran2Stream().
|
private |
Definition at line 1159 of file absorption.h.
Referenced by Delta_CO2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1161 of file absorption.h.
Referenced by Delta_H2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1157 of file absorption.h.
Referenced by Delta_H2O(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1163 of file absorption.h.
Referenced by Delta_He(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1153 of file absorption.h.
Referenced by Delta_N2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1155 of file absorption.h.
Referenced by Delta_O2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1099 of file absorption.h.
Referenced by dF(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), and ReadFromMytran2Stream().
|
private |
Definition at line 1101 of file absorption.h.
Referenced by dI0(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), and ReadFromMytran2Stream().
|
private |
Definition at line 1107 of file absorption.h.
Referenced by dNair(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), and ReadFromMytran2Stream().
|
private |
Definition at line 1109 of file absorption.h.
Referenced by dNself(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), and ReadFromHitran2004Stream().
|
private |
Definition at line 1111 of file absorption.h.
Referenced by dPsf(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), and ReadFromHitranStream().
|
private |
Definition at line 1105 of file absorption.h.
Referenced by dSgam(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), and ReadFromHitran2004Stream().
|
private |
Definition at line 1082 of file absorption.h.
Referenced by Elow(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), and ReadFromMytran2Stream().
|
private |
Definition at line 1074 of file absorption.h.
Referenced by F(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setF().
|
private |
Definition at line 1131 of file absorption.h.
Referenced by Gamma_CO2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1133 of file absorption.h.
Referenced by Gamma_H2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1129 of file absorption.h.
Referenced by Gamma_H2O(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1135 of file absorption.h.
Referenced by Gamma_He(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1125 of file absorption.h.
Referenced by Gamma_N2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1127 of file absorption.h.
Referenced by Gamma_O2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1123 of file absorption.h.
Referenced by Gamma_self(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1120 of file absorption.h.
Referenced by G_lower(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1118 of file absorption.h.
Referenced by G_upper(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1078 of file absorption.h.
Referenced by I0(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setI0().
|
private |
Definition at line 1072 of file absorption.h.
Referenced by Isotope(), IsotopeData(), Name(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), and ReadFromMytran2Stream().
|
private |
Definition at line 1146 of file absorption.h.
Referenced by Gam_N_CO2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1148 of file absorption.h.
Referenced by Gam_N_H2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1144 of file absorption.h.
Referenced by Gam_N_H2O(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1150 of file absorption.h.
Referenced by Gam_N_He(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1140 of file absorption.h.
Referenced by Gam_N_N2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1142 of file absorption.h.
Referenced by Gam_N_O2(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1138 of file absorption.h.
Referenced by Gam_N_self(), and ReadFromArtscat4Stream().
|
private |
Definition at line 1088 of file absorption.h.
Referenced by Nair(), ReadFromArtscat3Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setNair().
|
private |
Definition at line 1090 of file absorption.h.
Referenced by Nself(), ReadFromArtscat3Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setNself().
|
private |
Definition at line 1076 of file absorption.h.
Referenced by Psf(), ReadFromArtscat3Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and setPsf().
|
private |
Definition at line 1086 of file absorption.h.
Referenced by ReadFromArtscat3Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), setSgam(), and Sgam().
|
private |
Definition at line 1070 of file absorption.h.
Referenced by IsotopeData(), Name(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), Species(), and SpeciesData().
|
private |
Definition at line 1092 of file absorption.h.
Referenced by ReadFromArtscat3Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and Tgam().
|
private |
Definition at line 1080 of file absorption.h.
Referenced by ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromHitran2004Stream(), ReadFromHitranStream(), ReadFromJplStream(), ReadFromMytran2Stream(), and Ti0().
|
private |
Definition at line 1068 of file absorption.h.
Referenced by ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), Version(), and VersionString().