ARTS  2.3.1285(git:92a29ea9-dirty)
CIARecord Class Reference

CIA data for a single pair of molecules. More...

#include <cia.h>

Public Member Functions

String MoleculeName (const Index i) const
 Return each molecule name (as a string) that is associated with this CIARecord. More...
 
void SetMoleculeName (const Index i, const String &name)
 Set each molecule name (from a string) that is associated with this CIARecord. More...
 
Index Species (const Index i) const
 Return CIA species index. More...
 
Index DatasetCount () const
 Return number of datasets in this record. More...
 
ConstVectorView FrequencyGrid (Index dataset) const
 Return frequency grid for given dataset. More...
 
ConstVectorView TemperatureGrid (Index dataset) const
 Return temperatur grid for given dataset. More...
 
const GriddedField2Dataset (Index dataset) const
 Return CIA dataset. More...
 
const ArrayOfGriddedField2Data () const
 Return CIA data. More...
 
ArrayOfGriddedField2Data ()
 Return CIA data. More...
 
void SetSpecies (const Index first, const Index second)
 Set CIA species. More...
 
void Extract (VectorView result, ConstVectorView f_grid, const Numeric &temperature, const Index &dataset, const Numeric &T_extrapolfac, const Index &robust, const Verbosity &verbosity) const
 Vector version of extract. More...
 
Numeric Extract (const Numeric &frequency, const Numeric &temperature, const Index &dataset, const Numeric &T_extrapolfac, const Index &robust, const Verbosity &verbosity) const
 Scalar version of extract. More...
 
void ReadFromCIA (const String &filename, const Verbosity &verbosity)
 Read CIA catalog file. More...
 
void AppendDataset (const CIARecord &c2)
 Append other CIARecord to this. More...
 

Private Member Functions

void AppendDataset (const Vector &freq, const ArrayOfNumeric &temp, const ArrayOfVector &cia)
 Append dataset to mdata. More...
 

Private Attributes

ArrayOfGriddedField2 mdata
 The data itself, directly from the HITRAN file. More...
 
Index mspecies [2]
 The pair of molecules associated with these CIA data. More...
 

Friends

void xml_read_from_stream (istream &is_xml, CIARecord &cr, bifstream *pbifs, const Verbosity &verbosity)
 Reads CIARecord from XML input stream. More...
 

Detailed Description

CIA data for a single pair of molecules.

A variable of this class can hold the complete information from one HITRAN CIA file. A HITRAN CIA data file can hold several datasets (data for different temperatures but fixed frequency range). But all datasets are for the same pair of molecules.

Author
Stefan Buehler
Date
2000-08-21

Definition at line 67 of file cia.h.

Member Function Documentation

◆ AppendDataset() [1/2]

void CIARecord::AppendDataset ( const CIARecord c2)

Append other CIARecord to this.

Definition at line 495 of file cia.cc.

References Dataset(), DatasetCount(), and mdata.

Referenced by Extract(), and ReadFromCIA().

◆ AppendDataset() [2/2]

void CIARecord::AppendDataset ( const Vector freq,
const ArrayOfNumeric temp,
const ArrayOfVector cia 
)
private

Append dataset to mdata.

Append data dataset to mdata.

Definition at line 477 of file cia.cc.

References GriddedField2::data, joker, mdata, Array< base >::nelem(), ConstVectorView::nelem(), GriddedField2::resize(), GriddedField::set_grid(), GriddedField::set_grid_name(), and temp.

◆ Data() [1/2]

const ArrayOfGriddedField2& CIARecord::Data ( ) const
inline

Return CIA data.

Definition at line 137 of file cia.h.

References mdata.

Referenced by xml_write_to_stream().

◆ Data() [2/2]

ArrayOfGriddedField2& CIARecord::Data ( )
inline

Return CIA data.

Definition at line 141 of file cia.h.

References mdata.

◆ Dataset()

const GriddedField2& CIARecord::Dataset ( Index  dataset) const
inline

Return CIA dataset.

Definition at line 128 of file cia.h.

References mdata, and Array< base >::nelem().

Referenced by AppendDataset().

◆ DatasetCount()

Index CIARecord::DatasetCount ( ) const
inline

Return number of datasets in this record.

Definition at line 106 of file cia.h.

References mdata, and Array< base >::nelem().

Referenced by AppendDataset().

◆ Extract() [1/2]

void CIARecord::Extract ( VectorView  result,
ConstVectorView  f_grid,
const Numeric temperature,
const Index dataset,
const Numeric T_extrapolfac,
const Index robust,
const Verbosity verbosity 
) const

Vector version of extract.

Check whether there is a suitable dataset in the CIARecord and do the interpolation.

Parameters
[out]resultCIA value for given frequency grid and temperature.
[in]f_gridFrequency grid.
[in]temperatureScalar temparature.
[in]datasetIndex of dataset to use.
[in]robustSet to 1 to suppress runtime errors (and return NAN values instead).
[in]verbosityStandard verbosity object.

Definition at line 249 of file cia.cc.

References cia_interpolation(), mdata, Array< base >::nelem(), and _CS_basic_sstream_base< _CS_cT, _CS_Tr, _CS_Al >::str().

Referenced by abs_xsec_per_speciesAddCIA(), Extract(), and SetSpecies().

◆ Extract() [2/2]

Numeric CIARecord::Extract ( const Numeric frequency,
const Numeric temperature,
const Index dataset,
const Numeric T_extrapolfac,
const Index robust,
const Verbosity verbosity 
) const
inline

Scalar version of extract.

Use the vector version, if you can, it is more efficient. This is just a convenience wrapper for it.

Returns
Scalar CIA value at given frequency and temperature.
Parameters
[in]frequencyScalar frequency
[in]temperatureScalar temparature
[in]datasetIndex of dataset to use
[in]robustSet to 1 to suppress runtime errors (and return NAN values instead).
[in]verbosityStandard verbosity object.

Definition at line 184 of file cia.h.

References AppendDataset(), Extract(), ReadFromCIA(), temp, and xml_read_from_stream.

◆ FrequencyGrid()

ConstVectorView CIARecord::FrequencyGrid ( Index  dataset) const
inline

Return frequency grid for given dataset.

Definition at line 110 of file cia.h.

References mdata, and Array< base >::nelem().

◆ MoleculeName()

String CIARecord::MoleculeName ( const Index  i) const

Return each molecule name (as a string) that is associated with this CIARecord.

The CIARecord is defined for a pair of molecules!

Parameters
[in]iMust be either 0 or 1. Then the first or second name of the pair is returned.

Definition at line 277 of file cia.cc.

References mspecies, and species_name_from_species_index().

Referenced by abs_xsec_per_speciesAddCIA(), and xml_write_to_stream().

◆ ReadFromCIA()

void CIARecord::ReadFromCIA ( const String filename,
const Verbosity verbosity 
)

Read CIA catalog file.

Reads the given CIA catalog file into this CIARecord.

Parameters
[in]filenamePath of catalog file to read.
[in]verbosity.
Returns
os

Definition at line 316 of file cia.cc.

References AppendDataset(), CREATE_OUT2, i, mdata, my_basic_string< charT >::nelem(), open_input_file(), Vector::resize(), _CS_basic_sstream_base< _CS_cT, _CS_Tr, _CS_Al >::str(), temp, and w().

Referenced by CIARecordReadFromFile(), and Extract().

◆ SetMoleculeName()

void CIARecord::SetMoleculeName ( const Index  i,
const String name 
)

Set each molecule name (from a string) that is associated with this CIARecord.

The CIARecord is defined for a pair of molecules. The molecule names are internally stored as species indices.

Parameters
[in]iMust be either 0 or 1. Then the first or second name of the pair is returned.
[in]nameThe molecule name as a string, e.g., "H2O".

Definition at line 288 of file cia.cc.

References i, mspecies, species_index_from_species_name(), and _CS_basic_sstream_base< _CS_cT, _CS_Tr, _CS_Al >::str().

◆ SetSpecies()

void CIARecord::SetSpecies ( const Index  first,
const Index  second 
)
inline

Set CIA species.

Parameters
[in]firstCIA Species.
[in]secondCIA Species.

Definition at line 147 of file cia.h.

References Extract(), and mspecies.

Referenced by CIARecordReadFromFile(), and xml_read_from_stream().

◆ Species()

Index CIARecord::Species ( const Index  i) const
inline

Return CIA species index.

Parameters
[in]iMust be either 0 or 1. Then the first or second species index is returned.

Definition at line 96 of file cia.h.

References i, and mspecies.

Referenced by abs_cia_dataAddCIARecord(), and abs_xsec_per_speciesAddCIA().

◆ TemperatureGrid()

ConstVectorView CIARecord::TemperatureGrid ( Index  dataset) const
inline

Return temperatur grid for given dataset.

Definition at line 119 of file cia.h.

References mdata, and Array< base >::nelem().

Friends And Related Function Documentation

◆ xml_read_from_stream

void xml_read_from_stream ( istream &  is_xml,
CIARecord cr,
bifstream pbifs,
const Verbosity verbosity 
)
friend

Reads CIARecord from XML input stream.

Parameters
is_xmlXML Input stream
irecordSpeciesRecord return value
pbifsPointer to binary input stream. NULL in case of ASCII file.

Definition at line 56 of file xml_io_compound_types.cc.

Referenced by Extract().

Member Data Documentation

◆ mdata

ArrayOfGriddedField2 CIARecord::mdata
private

The data itself, directly from the HITRAN file.

Dimensions: Array dimension: Dataset. One file (one molecule pair) can have different datasets, typically for different temperature or frequency ranges. Gridded field dimension 1: Frequency [Hz]. Gridded field dimension 2: Temperature [K]. Data: Binary absorption cross-sections in m^5 molec^(-2)

Definition at line 232 of file cia.h.

Referenced by AppendDataset(), Data(), Dataset(), DatasetCount(), Extract(), FrequencyGrid(), ReadFromCIA(), TemperatureGrid(), and xml_read_from_stream().

◆ mspecies

Index CIARecord::mspecies[2]
private

The pair of molecules associated with these CIA data.

Molecules are specified by their ARTS internal mspecies index! (This has to be determined upon reading from a file. Should it ever be written out, it has to be mapped to a string again.)

We use a plain C array here, since the length of this is always 2.

Definition at line 242 of file cia.h.

Referenced by MoleculeName(), SetMoleculeName(), SetSpecies(), and Species().


The documentation for this class was generated from the following files: