Go to the documentation of this file.
81 os <<
"Unknown species (1st molecule) in CIARecord: " << molecule1;
82 throw runtime_error(os.str());
87 os <<
"Unknown species (2nd molecule) in CIARecord: " << molecule2;
88 throw runtime_error(os.str());
184 "NonlinearSpecies", verbosity);
191 "NonlinearSpeciesVmrPertubations", verbosity);
194 close_tag.
set_name(
"/GasAbsLookup");
249 xml_parse_error(
"Grids must be of type <Vector> or <ArrayOfString> but <ArrayOf"
255 xml_parse_error(
"Grids must be of type <Vector> or <ArrayOfString> but <"
339 if (!name.length() && (gfield.
get_name().length()))
341 else if (name.length())
350 close_tag.
set_name(
"/GriddedField1");
404 if (!name.length() && (gfield.
get_name().length()))
406 else if (name.length())
415 close_tag.
set_name(
"/GriddedField2");
469 if (!name.length() && (gfield.
get_name().length()))
471 else if (name.length())
480 close_tag.
set_name(
"/GriddedField3");
534 if (!name.length() && (gfield.
get_name().length()))
536 else if (name.length())
545 close_tag.
set_name(
"/GriddedField4");
599 if (!name.length() && (gfield.
get_name().length()))
601 else if (name.length())
610 close_tag.
set_name(
"/GriddedField5");
664 if (!name.length() && (gfield.
get_name().length()))
666 else if (name.length())
675 close_tag.
set_name(
"/GriddedField6");
728 "OriginalGridIndexBelowInterpolationPoint", verbosity);
730 "FractionalDistanceToNextPoint_1", verbosity);
732 "FractionalDistanceToNextPoint_2", verbosity);
793 open_tag.
set_name(
"IsotopologueRecord");
806 close_tag.
set_name(
"/IsotopologueRecord");
856 open_tag.
set_name(
"LineMixingRecord");
870 close_tag.
set_name(
"/LineMixingRecord");
941 "NumberOfPositionInPropagationPath", verbosity);
943 "PropagationPathConstant", verbosity);
946 "StartPositionOfPropagationPath", verbosity);
948 "StartLOSOfPropagationPath", verbosity);
950 "StartLstepOfPropagationPath", verbosity);
952 "PropagationPathPointPositions", verbosity);
956 "PropagationPathPositionLength", verbosity);
958 "EndPositionOfPropagationPath", verbosity);
960 "EndLOSOfPropagationPath", verbosity);
962 "EndLstepPropagationPath", verbosity);
967 "LatitudeGridIndexPosition", verbosity);
969 "LongitudeGridIndexPosition", verbosity);
1003 catch (runtime_error e)
1006 os <<
"Error in upper quantum numbers while reading QuantumNumberRecord: "
1007 <<
"\n" << e.what();
1008 throw runtime_error(os.str());
1019 catch (runtime_error e)
1022 os <<
"Error in lower quantum numbers while reading QuantumNumberRecord: "
1023 <<
"\n" << e.what();
1024 throw runtime_error(os.str());
1047 open_tag.
set_name(
"QuantumNumberRecord");
1067 close_tag.
set_name(
"/QuantumNumberRecord");
1097 for (n = 0; n < nelem; n++)
1100 catch (runtime_error e)
1103 os <<
"Error reading QuantumNumbers: "
1104 <<
"\n Element: " << n
1105 <<
"\n" << e.what();
1106 throw runtime_error(os.str());
1129 open_tag.
set_name(
"QuantumNumbers");
1135 os_xml <<
" " << qn <<
" ";
1137 close_tag.
set_name(
"/QuantumNumbers");
1195 open_tag.
set_name(
"RetrievalQuantity");
1207 close_tag.
set_name(
"/RetrievalQuantity");
1234 String particle_type_string;
1240 Index particle_type;
1252 os <<
"Missing data in xml-stream. Expected za_grid: [0, 180]. "
1253 <<
"Found za_grid: [" << ssdata.
za_grid[0]
1257 throw runtime_error(os.str());
1264 throw runtime_error(
"Number of frequencies in f_grid and pha_mat_data "
1291 open_tag.
set_name(
"SingleScatteringData");
1298 pbofs,
"", verbosity);
1308 close_tag.
set_name(
"/SingleScatteringData");
1372 open_tag.
set_name(
"ScatteringMetaData");
1389 pbofs,
"", verbosity);
1392 close_tag.
set_name(
"/ScatteringMetaData");
1479 os <<
"Unknown SpeciesAuxData version " << version;
1480 throw runtime_error(os.str());
1488 for (n = 0; n < nelem; n++)
1494 artstags.push_back(artstag);
1498 os <<
"SpeciesAuxData for " << artstag <<
" already defined.\n"
1499 <<
"Duplicates are not allowed in input file.";
1500 throw runtime_error(os.str());
1504 catch (runtime_error e)
1507 os <<
"Error reading SpeciesAuxData: "
1508 <<
"\n Element: " << n
1509 <<
"\n" << e.what();
1510 throw runtime_error(os.str());
1538 for (ArrayOfMatrix::const_iterator isp = sad.
getParams().begin();
1541 nelem += isp->nrows();
1543 open_tag.
set_name(
"SpeciesAuxData");
1557 for (
Index isp = 0; isp < params.
nelem(); isp++)
1560 for (
Index iiso = 0; iiso < params[isp].nrows(); iiso++)
1562 os_xml <<
"@ " << species <<
"-" <<
species_data[isp].Isotopologue()[iiso].Name();
1563 for (
Index ip = 0; ip < params[isp].ncols(); ip++)
1564 os_xml <<
" " << params[isp](iiso, ip);
1569 close_tag.
set_name(
"/SpeciesAuxData");
1622 open_tag.
set_name(
"SpeciesRecord");
1632 close_tag.
set_name(
"/SpeciesRecord");
1659 bool string_starts_with_quotes =
true;
1671 string_starts_with_quotes =
false;
1673 }
while (is_xml.good() && dummy !=
'"' && string_starts_with_quotes);
1676 if (!string_starts_with_quotes)
1681 is_xml.get(strbuf,
'"');
1718 os_xml <<
'\"' << stag.
Name() <<
'\"';
1737 throw runtime_error(
"Method not implemented!");
1746 throw runtime_error(
"Method not implemented!");
1756 throw runtime_error(
"Method not implemented!");
1765 throw runtime_error(
"Method not implemented!");
1775 throw runtime_error(
"Method not implemented!");
1784 throw runtime_error(
"Method not implemented!");
Implementation of gridded fields.
const ArrayOfString & get_string_grid(Index i) const
Get a string grid.
virtual void checksize_strict() const =0
Strict consistency check.
void set_grid_name(Index i, const String &s)
Set grid name.
const Numeric & Mass() const
Mass of the isotopologue.
Container class for Quantum Numbers.
const Index & Analytical() const
Boolean to make analytical calculations (if possible).
String ParticleTypeToString(const ParticleType &particle_type)
Convert particle type enum value to String.
void check_name(const String &expected_name)
Check tag name.
ArrayOfIndex nonlinear_species
The species tags with non-linear treatment.
const QuantumContainer & GetNumbers() const
const ArrayOfVector & Grids() const
Grids.
Rational Upper(Index i) const
Get upper quantum number.
String Name() const
Return the full name of the tag.
ParticleType
An attribute to classify the particle type in a SingleScatteringData structure.
Index get_dim() const
Get the dimension of this gridded field.
void xml_parse_from_stream(istream &is_xml, ArrayOfString &astring, bifstream *pbifs, ArtsXMLTag &tag, const Verbosity &verbosity)
Parse ArrayOfString from XML input stream.
void get_attribute_value(const String &aname, String &value)
Returns value of attribute as String.
bool ReadFromStream(String &artsid, istream &is, Index nparams, const Verbosity &verbosity)
Read parameters from input stream.
An Antenna object used by MCGeneral.
void xml_set_stream_precision(ostream &os)
const Array< SpeciesRecord > species_data
Species Data.
ConstVectorView get_numeric_grid(Index i) const
Get a numeric grid.
void write_to_stream(ostream &os)
Write XML tag.
The structure to describe a propagation path and releated quantities.
Auxiliary data for isotopologues.
Structure which describes the single scattering properties of a particle or a particle distribution.
An absorption lookup table.
Index nlibraries() const
Returns the number of libraries.
QuantumNumberRecord & Quantum()
const Index & HitranTag() const
HITRAN-96 tag numbers for all isotopologues.
GridType get_grid_type(Index i) const
Get grid type.
This can be used to make arrays out of anything.
This file contains private function declarations and template instantiation to handle XML data files.
A tag group can consist of the sum of several of these.
Index species_index_from_species_name(String name)
Return species index for given species name.
Index Isotopologue() const
const ArrayOfMatrix & getParams() const
Return a constant reference to the parameters.
String species_name_from_species_index(const Index spec_ind)
Return species name for given species index.
Rational Lower(Index i) const
Get lower quantum number.
void read_from_stream(istream &is)
Reads next XML tag.
The implementation for String, the ARTS string class.
void initParams(Index nparams)
Resize according to builtin isotopologues in species data.
const String & MainTag() const
Main tag.
void xml_parse_error(const String &str_error)
Throws XML parser runtime error.
Index nelem() const
Returns the number of elements.
const Numeric & Abundance() const
Normal abundance ( = isotopologue ratio).
Vector t_ref
The reference temperature profile [K].
This file contains private function declarations and template instantiation to handle XML data files.
Vector f_grid
The frequency grid [Hz].
Vector p_grid
The pressure grid for the table [Pa].
const String & Mode() const
Calculation mode.
const ArrayOfIndex & JplTags() const
JPL tag numbers for all isotopologues.
Declarations required for the calculation of jacobians.
NUMERIC Numeric
The type to use for all floating point numbers.
void add_attribute(const String &aname, const String &value)
Adds a String attribute to tag.
Binary output file stream class.
void set_name(const String &s)
Set name of this gridded field.
Vector nls_pert
The vector of perturbations for the VMRs of the nonlinear species.
const String & get_name() const
Get the name of this gridded field.
Tensor4 xsec
Absorption cross sections.
ArrayOfGriddedField2 mdata
The data itself, directly from the HITRAN file.
Contains the lookup data for one species.
ParticleType particle_type
void xml_read_from_stream(istream &is_xml, CIARecord &cr, bifstream *pbifs, const Verbosity &verbosity)
Reads CIARecord from XML input stream.
ArrayOfArrayOfSpeciesTag species
The species tags for which the table is valid.
const String & Name() const
Isotopologue name.
Structure to store a grid position.
const Array< IsotopologueRecord > & Isotopologue() const
void set_grid(Index i, const Vector &g)
Set a numeric grid.
Contains the lookup data for one isotopologue.
const Index & MytranTag() const
MYTRAN2 tag numbers for all isotopologues.
const ArrayOfGriddedField2 & Data() const
Return CIA data.
const String & Name() const
A 2D sequential linear interpolation (SLI) lookup table.
CIA data for a single pair of molecules.
Header file for sparse matrices.
Record containing upper and lower quantum numbers.
ParticleType ParticleTypeFromString(const String &particle_type_string)
Convert particle name to enum value.
Index Isotopologue() const
Isotopologue species index.
void xml_write_to_stream(ostream &os_xml, const CIARecord &cr, bofstream *pbofs, const String &name, const Verbosity &verbosity)
Writes CIARecord to XML output stream.
void SetSpecies(const Index first, const Index second)
Set CIA species.
INDEX Index
The type to use for all integer numbers and indices.
const String & get_grid_name(Index i) const
Get grid name.
Contains the data for one retrieval quantity.
Index find_first(const Array< base > &x, const base &w)
Find first occurance.
Matrix vmrs_ref
The reference VMR profiles.
String MoleculeName(const Index i) const
Return each molecule name (as a string) that is associated with this CIARecord.
Vector t_pert
The vector of temperature perturbations [K].
void set_name(const String &new_name)
Index Species() const
Molecular species index.
Index nelem() const
Number of elements.
const String & Subtag() const
Subtag.
The global header file for ARTS.
Binary output file stream class.
const Numeric & Perturbation() const
Size of perturbation used for perturbation calculations.