#include <stdexcept>
#include "matpackI.h"
#include "array.h"
#include "mystring.h"
#include "make_array.h"
Go to the source code of this file.
Classes | |
class | LineshapeRecord |
Lineshape related information. More... | |
class | LineshapeNormRecord |
Lineshape related normalization function information. More... | |
class | LineshapeSpec |
Lineshape related specification like which lineshape to use, the normalizationfactor, and the cutoff. More... | |
class | IsotopeRecord |
Contains the lookup data for one isotope. More... | |
class | SpeciesRecord |
Contains the lookup data for one species. More... | |
class | LineRecord |
Spectral line catalog data. More... | |
class | SpecIsoMap |
class | OneTag |
A tag group can consist of the sum of several of these. More... | |
Typedefs | |
typedef void(* | lsf_type )(Vector &, Vector &, Numeric, Numeric, Numeric, VectorView, const Index) |
The type that is used to store pointers to lineshape functions. | |
typedef void(* | lsnf_type )(Vector &, Numeric, VectorView, const Numeric, const Index) |
The type that is used to store pointers to lineshape normalization functions. | |
typedef Array< LineshapeSpec > | ArrayOfLineshapeSpec |
Holds a list of lineshape specifications: function, normalization, cutoff. | |
typedef Array< LineRecord > | ArrayOfLineRecord |
Holds a list of spectral line data. | |
typedef Array< Array < LineRecord > > | ArrayOfArrayOfLineRecord |
Holds a lists of spectral line data for each tag group. | |
typedef Array< Array< OneTag > > | TagGroups |
Contains the available tag groups. | |
Functions | |
ostream & | operator<< (ostream &os, const LineRecord &lr) |
Output operator for LineRecord. | |
void | define_species_map () |
Define the species data map. | |
ostream & | operator<< (ostream &os, const OneTag &ot) |
Output operator for OneTag. | |
void | get_tagindex_for_Strings (ArrayOfIndex &tags1_index, const TagGroups &tags1, const ArrayOfString &tags2_Strings) |
Returns the index among some tag groups for an array of tag Strings. | |
void | get_tag_group_index_for_tag_group (Index &tags1_index, const TagGroups &tags1, const Array< OneTag > &tags2) |
Returns the index of the tag group tg2 within the array of tag groups tgs1. | |
String | get_tag_group_name (const Array< OneTag > &tg) |
Print the name of a tag group. | |
void | write_lines_to_stream (ostream &os, const ArrayOfLineRecord &lines) |
void | xsec_species (MatrixView xsec, ConstVectorView f_mono, ConstVectorView p_abs, ConstVectorView t_abs, ConstVectorView h2o_abs, ConstVectorView vmr, const ArrayOfLineRecord &lines, const Index ind_ls, const Index ind_lsn, const Numeric cutoff) |
Numeric | wavenumber_to_joule (Numeric e) |
A little helper function to convert energy from units of wavenumber (cm^-1) to Joule (J). | |
void | refr_index_BoudourisDryAir (Vector &refr_index, ConstVectorView p_abs, ConstVectorView t_abs) |
Calculates the refractive index for dry air at microwave frequncies following Boudouris 1963. | |
void | refr_index_Boudouris (Vector &refr_index, ConstVectorView p_abs, ConstVectorView t_abs, ConstVectorView h2o_abs) |
Calculates the refractive index at microwave frequncies following Boudouris 1963. | |
void | convHitranIERF (Numeric &mdf, const Index &df) |
void | convHitranIERSH (Numeric &mdh, const Index &dh) |
void | convMytranIER (Numeric &mdh, const Index &dh) |
Definition in file absorption.h.
typedef Array< Array<LineRecord> > ArrayOfArrayOfLineRecord |
Holds a lists of spectral line data for each tag group.
Dimensions: (tag_groups.nelem()) (number of lines for this tag)
Definition at line 1037 of file absorption.h.
typedef Array<LineRecord> ArrayOfLineRecord |
typedef Array<LineshapeSpec> ArrayOfLineshapeSpec |
Holds a list of lineshape specifications: function, normalization, cutoff.
Definition at line 162 of file absorption.h.
The type that is used to store pointers to lineshape functions.
Definition at line 38 of file absorption.h.
The type that is used to store pointers to lineshape normalization functions.
Definition at line 80 of file absorption.h.
Contains the available tag groups.
Contrary to the Bredbeck definition, tag groups may only consist of tags belonging to the same species. The reason for this is that there is one VMR profile associated with each tag group.
Definition at line 1126 of file absorption.h.
Definition at line 2901 of file absorption.cc.
Definition at line 2948 of file absorption.cc.
Definition at line 3007 of file absorption.cc.
void define_species_map | ( | ) |
void get_tag_group_index_for_tag_group | ( | Index & | tgs1_index, | |
const TagGroups & | tgs1, | |||
const Array< OneTag > & | tg2 | |||
) |
Returns the index of the tag group tg2 within the array of tag groups tgs1.
Slightly modified copy of get_tagindex_for_Strings.
runtime_error | Could not find tg2 in tgs1. |
tgs1_index | Index in tgs1 for tg2 |
tgs1 | The tags groups to search in. | |
tg2 | The tag group for which the index shall be found. |
Definition at line 2233 of file absorption.cc.
Print the name of a tag group.
A tag group consists of several elementary OneTags. This functions returns a String with the name of the entire tag group. This is nice for informational output messages, for example in the absorption routines.
tg | The tag group in question. |
Definition at line 2286 of file absorption.cc.
void get_tagindex_for_Strings | ( | ArrayOfIndex & | tags1_index, | |
const TagGroups & | tags1, | |||
const ArrayOfString & | tags2_Strings | |||
) |
Returns the index among some tag groups for an array of tag Strings.
{verbatim} For example, if tags1 correspond to the definition ["O3","H2O-161,H2O-162"] and the tag Strings are ["H2O-161,H2O-162","O3"] the tags1_index becomes [2,1] {verbatim}
runtime_error | Some String is not a valid tag item. | |
runtime_error | Not all Strings are not found among the tags. |
tags1_index | Index in tags1 for tags2_Strings |
tags1 | The tags to search in. | |
tags2_Strings | The tag Strings for which indeces shall be found. |
Definition at line 2176 of file absorption.cc.
ostream& operator<< | ( | ostream & | os, | |
const OneTag & | ot | |||
) |
ostream& operator<< | ( | ostream & | os, | |
const LineRecord & | lr | |||
) |
Output operator for LineRecord.
The result should look like a catalogue line.
Definition at line 76 of file absorption.cc.
void refr_index_Boudouris | ( | Vector & | refr_index, | |
ConstVectorView | p_abs, | |||
ConstVectorView | t_abs, | |||
ConstVectorView | h2o_abs | |||
) |
Calculates the refractive index at microwave frequncies following Boudouris 1963.
The expression is also found in Chapter 5 of the Janssen book.
refr_index | refractive index |
p_abs | absorption pressure grid | |
t_abs | temperatures at p_abs | |
h2o_abs | H2O vmr at p_abs |
Definition at line 2842 of file absorption.cc.
void refr_index_BoudourisDryAir | ( | Vector & | refr_index, | |
ConstVectorView | p_abs, | |||
ConstVectorView | t_abs | |||
) |
Calculates the refractive index for dry air at microwave frequncies following Boudouris 1963.
The expression is also found in Chapter 5 of the Janssen book.
The atmosphere is assumed to have no water vapour.
refr_index | refractive index |
p_abs | absorption pressure grid | |
t_abs | temperatures at p_abs |
Definition at line 2810 of file absorption.cc.
A little helper function to convert energy from units of wavenumber (cm^-1) to Joule (J).
This is used when reading HITRAN or JPL catalogue files, which have the lower state energy in cm^-1.
e | Energy in cm^-1. |
Definition at line 2879 of file absorption.cc.
void write_lines_to_stream | ( | ostream & | os, | |
const ArrayOfLineRecord & | lines | |||
) |
void xsec_species | ( | MatrixView | xsec, | |
ConstVectorView | f_mono, | |||
ConstVectorView | p_abs, | |||
ConstVectorView | t_abs, | |||
ConstVectorView | h2o_abs, | |||
ConstVectorView | vmr, | |||
const ArrayOfLineRecord & | lines, | |||
const Index | ind_ls, | |||
const Index | ind_lsn, | |||
const Numeric | cutoff | |||
) |