ARTS  2.2.66
linerecord.h
Go to the documentation of this file.
1 /* Copyright (C) 2000-2013
2  Stefan Buehler <sbuehler@ltu.se>
3  Axel von Engeln <engeln@uni-bremen.de>
4 
5  This program is free software; you can redistribute it and/or modify it
6  under the terms of the GNU General Public License as published by the
7  Free Software Foundation; either version 2, or (at your option) any
8  later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
18  USA. */
19 
26 #ifndef linerecord_h
27 #define linerecord_h
28 
29 #include <stdexcept>
30 #include <cmath>
31 #include "messages.h"
32 #include "mystring.h"
33 #include "array.h"
34 #include "matpackI.h"
35 #include "quantum.h"
36 
37 /* Forward declaration of classes */
38 class SpeciesRecord;
39 class IsotopologueRecord;
40 
196 class LineRecord {
197 public:
198 
203  : mversion (3),
204  mspecies (1000000),
205  misotopologue (1000000),
206  mf (0. ),
207  mpsf (0. ),
208  mi0 (0. ),
209  mti0 (0. ),
210  melow (0. ),
211  magam (0. ),
212  msgam (0. ),
213  mnair (0. ),
214  mnself (0. ),
215  mtgam (0. ),
216  maux ( ),
217  mdf (-1. ),
218  mdi0 (-1. ),
219  mdagam (-1. ),
220  mdsgam (-1. ),
221  mdnair (-1. ),
222  mdnself (-1. ),
223  mdpsf (-1. ),
224  mupper_n (-1 ),
225  mupper_j (-1 ),
226  mlower_n (-1 ),
227  mlower_j (-1 ),
230  { /* Nothing to do here. */ }
231 
236  LineRecord( Index species,
237  Index isotopologue,
238  Numeric f,
239  Numeric psf,
240  Numeric i0,
241  Numeric ti0,
242  Numeric elow,
243  Numeric agam,
244  Numeric sgam,
245  Numeric nair,
246  Numeric nself,
247  Numeric tgam,
248  const ArrayOfNumeric& aux,
249  Numeric /* df */,
250  Numeric /* di0 */,
251  Numeric /* dagam */,
252  Numeric /* dsgam */,
253  Numeric /* dnair */,
254  Numeric /* dnself */,
255  Numeric /* dpsf */)
256  : mversion (3),
257  mspecies (species ),
258  misotopologue (isotopologue ),
259  mf (f ),
260  mpsf (psf ),
261  mi0 (i0 ),
262  mti0 (ti0 ),
263  melow (elow ),
264  magam (agam ),
265  msgam (sgam ),
266  mnair (nair ),
267  mnself (nself ),
268  mtgam (tgam ),
269  maux (aux ),
270  mdf (-1. ),
271  mdi0 (-1. ),
272  mdagam (-1. ),
273  mdsgam (-1. ),
274  mdnair (-1. ),
275  mdnself (-1. ),
276  mdpsf (-1. ),
277  mupper_n (-1 ),
278  mupper_j (-1 ),
279  mlower_n (-1 ),
280  mlower_j (-1 ),
283  {
284  // Thanks to Matpack, initialization of misotopologue with isotopologue
285  // should now work correctly.
286 
287  // Check if this species is legal, i.e., if species and isotopologue
288  // data exists.
290  //assert( mspecies < species_data.nelem() );
291  //assert( misotopologue < species_data[mspecies].Isotopologue().nelem() );
292  }
293 
295  String VersionString() const;
296 
298  Index Version() const { return mversion; }
299 
302  Index Species() const { return mspecies; }
303 
307  Index Isotopologue() const { return misotopologue; }
308 
312  String Name() const;
313 
323  const SpeciesRecord& SpeciesData() const;
324 
336  const IsotopologueRecord& IsotopologueData() const;
337 
339  Numeric F() const { return mf; }
340 
342  void setF( Numeric new_mf ) { mf = new_mf; }
343 
345  Numeric Psf() const { return mpsf; }
346 
348  void setPsf( Numeric new_mpsf ) { mpsf = new_mpsf; }
349 
362  Numeric I0() const { return mi0; }
363 
365  void setI0( Numeric new_mi0 ) { mi0 = new_mi0; }
366 
368  Numeric Ti0() const { return mti0; }
369 
371  Numeric Elow() const { return melow; }
372 
374  Numeric Agam() const { return magam; }
375 
377  void setAgam( Numeric new_agam ) { magam = new_agam; }
378 
380  Numeric Sgam() const { return msgam; }
381 
383  void setSgam( Numeric new_sgam ) { msgam = new_sgam; }
384 
386  Numeric Nair() const { return mnair; }
387 
389  void setNair( Numeric new_mnair ) { mnair = new_mnair; }
390 
392  Numeric Nself() const { return mnself; }
393 
395  void setNself( Numeric new_mnself ) { mnself = new_mnself; }
396 
398  Numeric Tgam() const { return mtgam; }
399 
405  Index Naux() const { return maux.nelem(); }
406 
408  const ArrayOfNumeric& Aux() const { return maux; }
409  //
410 
412  Numeric dF() const { return mdf; }
413 
415  Numeric dI0() const { return mdi0; }
416 
418  Numeric dAgam() const { return mdagam; }
419 
421  Numeric dSgam() const { return mdsgam; }
422 
424  Numeric dNair() const { return mdnair; }
425 
427  Numeric dNself() const { return mdnself; }
428 
430  Numeric dPsf() const { return mdpsf; }
431 
433  Numeric A() const { return ma; }
434 
436  Numeric G_upper() const { return mgupper; }
437 
439  Numeric G_lower() const { return mglower; }
440 
442  Numeric Gamma_foreign(const Index i) const { return mgamma_foreign[i]; }
443 
445  Numeric N_foreign(const Index i) const { return mn_foreign[i]; }
446 
448  Numeric Delta_foreign(const Index i) const { return mdelta_foreign[i]; }
449 
450 // /** Broadening parameter self in <b> Hz/Pa </b>: */
451 // Numeric Gamma_self() const { return mgamma_self; }
452 //
453 // /** Broadening parameter N2 in <b> Hz/Pa </b>: */
454 // Numeric Gamma_N2() const { return mgamma_n2; }
455 //
456 // /** Broadening parameter O2 in <b> Hz/Pa </b>: */
457 // Numeric Gamma_O2() const { return mgamma_o2; }
458 //
459 // /** Broadening parameter H2O in <b> Hz/Pa </b>: */
460 // Numeric Gamma_H2O() const { return mgamma_h2o; }
461 //
462 // /** Broadening parameter CO2 in <b> Hz/Pa </b>: */
463 // Numeric Gamma_CO2() const { return mgamma_co2; }
464 //
465 // /** Broadening parameter H2 in <b> Hz/Pa </b>: */
466 // Numeric Gamma_H2() const { return mgamma_h2; }
467 //
468 // /** Broadening parameter He in <b> Hz/Pa </b>: */
469 // Numeric Gamma_He() const { return mgamma_he; }
470 //
471 // /** GAM temp. exponent N self: */
472 // Numeric Gam_N_self() const { return mn_self; }
473 //
474 // /** GAM temp. exponent N N2: */
475 // Numeric Gam_N_N2() const { return mn_n2; }
476 //
477 // /** GAM temp. exponent N O2: */
478 // Numeric Gam_N_O2() const { return mn_o2; }
479 //
480 // /** GAM temp. exponent N H2O: */
481 // Numeric Gam_N_H2O() const { return mn_h2o; }
482 //
483 // /** GAM temp. exponent N CO2: */
484 // Numeric Gam_N_CO2() const { return mn_co2; }
485 //
486 // /** GAM temp. exponent N H2: */
487 // Numeric Gam_N_H2() const { return mn_h2; }
488 //
489 // /** GAM temp. exponent N He: */
490 // Numeric Gam_N_He() const { return mn_he; }
491 //
492 // /** F Pressure shift N2 in <b> Hz/Pa </b>: */
493 // Numeric Delta_N2() const { return mdelta_n2; }
494 //
495 // /** F Pressure shift O2 in <b> Hz/Pa </b>: */
496 // Numeric Delta_O2() const { return mdelta_o2; }
497 //
498 // /** F Pressure shift H2O in <b> Hz/Pa </b>: */
499 // Numeric Delta_H2O() const { return mdelta_h2o; }
500 //
501 // /** F Pressure shift CO2 in <b> Hz/Pa </b>: */
502 // Numeric Delta_CO2() const { return mdelta_co2; }
503 //
504 // /** F Pressure shift H2 in <b> Hz/Pa </b>: */
505 // Numeric Delta_H2() const { return mdelta_h2; }
506 //
507 // /** F Pressure shift He in <b> Hz/Pa </b>: */
508 // Numeric Delta_He() const { return mdelta_he; }
509 
511  const String& Upper_GQuanta() const { return mupper_gquanta; }
512 
514  const String& Lower_GQuanta() const { return mlower_gquanta; }
515 
517  const String& Upper_LQuanta() const { return mupper_lquanta; }
518 
520  const String& Lower_LQuanta() const { return mlower_lquanta; }
521 
523  Rational Upper_N() const { return mupper_n; }
524 
526  Rational Upper_J() const { return mupper_j; }
527 
529  Rational Lower_N() const { return mlower_n; }
530 
532  Rational Lower_J() const { return mlower_j; }
533 
536 
539 
540 
543  enum {
550  };
551 
554  static Index NBroadSpec() {return 6;}
555 
559  static String BroadSpecName(const Index i) {
560  switch (i) {
561  case BROAD_SPEC_POS_N2:
562  return "N2";
563  break;
564  case BROAD_SPEC_POS_O2:
565  return "O2";
566  break;
567  case BROAD_SPEC_POS_H2O:
568  return "H2O";
569  break;
570  case BROAD_SPEC_POS_CO2:
571  return "CO2";
572  break;
573  case BROAD_SPEC_POS_H2:
574  return "H2";
575  break;
576  case BROAD_SPEC_POS_He:
577  return "He";
578  break;
579  default:
580  assert(false); // We should never end up here.
581  return "";
582  break;
583  }
584  }
585 
590  static Index BroadSpecSpecIndex(const Index i);
591 
609  void ARTSCAT4FromARTSCAT3();
610 
613 
614  // Resize aux array to 0, not used in ARTSCAT-4:
615  maux.resize(0);
616 
617  // Set other parameters to NAN:
618  magam = NAN;
619  mnair = NAN;
620  mpsf = NAN;
621  mtgam = NAN;
622 
623  mdf = NAN;
624  mdi0 = NAN;
625  mdagam = NAN;
626  mdsgam = NAN;
627  mdnair = NAN;
628  mdnself = NAN;
629  mdpsf = NAN;
630  }
631 
691  bool ReadFromHitran2001Stream(istream& is, const Verbosity& verbosity);
692 
693 
694 
768  bool ReadFromHitran2004Stream(istream& is, const Verbosity& verbosity, const Numeric fmin=0);
769 
770 
771 
772 
841  bool ReadFromMytran2Stream(istream& is, const Verbosity& verbosity);
842 
843 
896  bool ReadFromJplStream(istream& is, const Verbosity& verbosity);
897 
919  bool ReadFromArtscat3Stream(istream& is, const Verbosity& verbosity);
920 
938  bool ReadFromArtscat4Stream(istream& is, const Verbosity& verbosity);
939 
940 private:
941  // Version number:
943  // Molecular species index:
945  // Isotopologue species index:
947  // The line center frequency in Hz:
949  // The pressure shift parameter in Hz/Pa:
951  // The line intensity in m^2/Hz:
953  // Reference temperature for I0 in K:
955  // Lower state energy in cm^-1:
957  // Air broadened width in Hz/Pa:
959  // Self broadened width in Hz/Pa:
961  // AGAM temperature exponent (dimensionless):
963  // SGAM temperature exponent (dimensionless):
965  // Reference temperature for AGAM and SGAM in K:
967  // Array to hold auxiliary parameters:
969  //
970  // Fields for the spectroscopic parameters accuracies
971  //
972  // Accuracy for line center frequency in Hz:
974  // Accuracy for line intensity in %:
976  // Accuracy for air broadened width in %:
978  // Accuracy for self broadened width in %:
980  // Accuracy for AGAM temperature exponent in %:
982  // Accuracy for SGAM temperature exponent in %:
984  // Accuracy for pressure shift in %:
986 
988 
989  // Einstein A-coefficient in 1/s:
991  // Upper state stat. weight:
993  // Lower state stat. weight:
995 
996  // Broadening parameter self in Hz/Pa:
997  // Numeric mgamma_self;
998  // Already in artscat-3 as msgam
999 
1000  // Array of foreign broadening parameters in Hz/Pa. Parameters for
1001  // individual species can be found using the enum defined in this class.
1003 
1004 // // Broadening parameter N2 in Hz/Pa:
1005 // Numeric mgamma_n2;
1006 // // Broadening parameter O2 in Hz/Pa:
1007 // Numeric mgamma_o2;
1008 // // Broadening parameter H2O in Hz/Pa:
1009 // Numeric mgamma_h2o;
1010 // // Broadening parameter CO2 in Hz/Pa:
1011 // Numeric mgamma_co2;
1012 // // Broadening parameter H2 in Hz/Pa:
1013 // Numeric mgamma_h2;
1014 // // Broadening parameter He in Hz/Pa:
1015 // Numeric mgamma_he;
1016 
1017  // GAM temp. exponent self:
1018  // Numeric mn_self;
1019  // Already in artscat-3 as msgam mnself
1020 
1021  // Array of foreign temp. exponents (dimensionless). Parameters for
1022  // individual species can be found using the enum defined in this class.
1024 
1025 // // GAM temp. exponent N2:
1026 // Numeric mn_n2;
1027 // // GAM temp. exponent O2:
1028 // Numeric mn_o2;
1029 // // GAM temp. exponent H2O:
1030 // Numeric mn_h2o;
1031 // // GAM temp. exponent CO2:
1032 // Numeric mn_co2;
1033 // // GAM temp. exponent H2:
1034 // Numeric mn_h2;
1035 // // GAM temp. exponent He:
1036 // Numeric mn_he;
1037 
1038  // Array of pressure shift parameters in Hz/Pa. Parameters for
1039  // individual species can be found using the enum defined in this class.
1041 
1042 // // F Pressure shift N2 in Hz/Pa:
1043 // Numeric mdelta_n2;
1044 // // F Pressure shift O2 in Hz/Pa:
1045 // Numeric mdelta_o2;
1046 // // F Pressure shift H2O in Hz/Pa:
1047 // Numeric mdelta_h2o;
1048 // // F Pressure shift CO2 in Hz/Pa:
1049 // Numeric mdelta_co2;
1050 // // F Pressure shift H2 in Hz/Pa:
1051 // Numeric mdelta_h2;
1052 // // F Pressure shift He in Hz/Pa:
1053 // Numeric mdelta_he;
1054 
1071 
1074 
1077 };
1078 
1083 ostream& operator<<(ostream& os, const LineRecord& lr);
1084 
1085 
1086 //======================================================================
1087 // Typedefs for LineRecord Arrays
1088 //======================================================================
1089 
1093 
1098 
1099 
1100 //======================================================================
1101 // Functions for searches inside the line catalog
1102 //======================================================================
1103 
1104 typedef enum {
1109 
1110 
1112 
1122 bool find_matching_lines(ArrayOfIndex& matches,
1123  const ArrayOfLineRecord& abs_lines,
1124  const Index species,
1125  const Index isotopologue,
1126  const QuantumNumberRecord qr,
1127  const LineMatchingCriteria match_criteria = LINE_MATCH_ALL);
1128 
1129 #endif // linerecord_h
LineRecord::BROAD_SPEC_POS_N2
@ BROAD_SPEC_POS_N2
Definition: linerecord.h:544
LineRecord::mdnair
Numeric mdnair
Definition: linerecord.h:981
LineRecord::Ti0
Numeric Ti0() const
Reference temperature for I0 in K:
Definition: linerecord.h:368
LineRecord::dNair
Numeric dNair() const
Accuracy for AGAM temperature exponent in relative value :
Definition: linerecord.h:424
LineRecord::mlower_n
Rational mlower_n
Lower state local N quanta.
Definition: linerecord.h:1068
LineRecord::ReadFromArtscat3Stream
bool ReadFromArtscat3Stream(istream &is, const Verbosity &verbosity)
Read one line from a stream associated with an ARTSCAT-3 file.
Definition: linerecord.cc:2064
LineRecord::Upper_J
Rational Upper_J() const
Upper state local quanta J.
Definition: linerecord.h:526
LineRecord::Sgam
Numeric Sgam() const
Self broadened width in Hz/Pa:
Definition: linerecord.h:380
LineRecord::misotopologue
Index misotopologue
Definition: linerecord.h:946
LineRecord::melow
Numeric melow
Definition: linerecord.h:956
LineRecord::Gamma_foreign
Numeric Gamma_foreign(const Index i) const
ARTSCAT-4 foreign broadening parameters in Hz/Pa :
Definition: linerecord.h:442
LineRecord::mupper_j
Rational mupper_j
Upper state local J quanta.
Definition: linerecord.h:1066
LineRecord::mgamma_foreign
Vector mgamma_foreign
Definition: linerecord.h:1002
LineRecord::BROAD_SPEC_POS_O2
@ BROAD_SPEC_POS_O2
Definition: linerecord.h:545
LineRecord::setSgam
void setSgam(Numeric new_sgam)
Set Self broadened width in Hz/Pa:
Definition: linerecord.h:383
LineRecord::Agam
Numeric Agam() const
Air broadened width in Hz/Pa:
Definition: linerecord.h:374
LineRecord::BROAD_SPEC_POS_He
@ BROAD_SPEC_POS_He
Definition: linerecord.h:549
LineRecord::mi0
Numeric mi0
Definition: linerecord.h:952
LineRecord::Nself
Numeric Nself() const
SGAM temperature exponent (dimensionless):
Definition: linerecord.h:392
LineRecord::BroadSpecSpecIndex
static Index BroadSpecSpecIndex(const Index i)
Return the internal species index (index in species_data) of an artscat-4 broadening species,...
Definition: linerecord.cc:64
LineRecord::Lower_LQuanta
const String & Lower_LQuanta() const
Lower state local quanta.
Definition: linerecord.h:520
LineRecord::BROAD_SPEC_POS_H2
@ BROAD_SPEC_POS_H2
Definition: linerecord.h:548
LineRecord::ReadFromHitran2004Stream
bool ReadFromHitran2004Stream(istream &is, const Verbosity &verbosity, const Numeric fmin=0)
Read one line from a stream associated with a HITRAN 2004 file.
Definition: linerecord.cc:558
LineRecord::mupper_n
Rational mupper_n
Upper state local N quanta.
Definition: linerecord.h:1064
LineRecord::mquantum_numbers_str
String mquantum_numbers_str
String with quantum numbers for ARTSCAT-4.
Definition: linerecord.h:1073
LineRecord::A
Numeric A() const
ARTSCAT-4 Einstein A-coefficient in 1/s :
Definition: linerecord.h:433
LineRecord::LineRecord
LineRecord(Index species, Index isotopologue, 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.
Definition: linerecord.h:236
LineRecord::mdelta_foreign
Vector mdelta_foreign
Definition: linerecord.h:1040
LineRecord::mlower_gquanta
String mlower_gquanta
Lower state global quanta.
Definition: linerecord.h:1058
LineRecord::mlower_j
Rational mlower_j
Lower state local J quanta.
Definition: linerecord.h:1070
LineRecord::mdpsf
Numeric mdpsf
Definition: linerecord.h:985
LineRecord::mpsf
Numeric mpsf
Definition: linerecord.h:950
LineRecord::N_foreign
Numeric N_foreign(const Index i) const
ARTSCAT-4 foreign temperature exponents (dimensionless):
Definition: linerecord.h:445
quantum.h
Classes to handle quantum numbers.
LineRecord::Lower_J
Rational Lower_J() const
Lower state local quanta J.
Definition: linerecord.h:532
array.h
This file contains the definition of Array.
LineRecord::mnself
Numeric mnself
Definition: linerecord.h:964
matpackI.h
ArrayOfArrayOfLineRecord
Array< Array< LineRecord > > ArrayOfArrayOfLineRecord
Holds a lists of spectral line data for each tag group.
Definition: linerecord.h:1097
Array< Numeric >
LINE_MATCH_ALL
@ LINE_MATCH_ALL
Definition: linerecord.h:1107
LineRecord::Elow
Numeric Elow() const
Lower state energy in cm^-1:
Definition: linerecord.h:371
LineRecord::SpeciesData
const SpeciesRecord & SpeciesData() const
The matching SpeciesRecord from species_data.
Definition: linerecord.cc:50
find_matching_lines
bool find_matching_lines(ArrayOfIndex &matches, const ArrayOfLineRecord &abs_lines, const Index species, const Index isotopologue, const QuantumNumberRecord qr, const LineMatchingCriteria match_criteria=LINE_MATCH_ALL)
Find lines matching the given criteria.
Definition: linerecord.cc:2631
LineRecord::mupper_gquanta
String mupper_gquanta
Upper state global quanta.
Definition: linerecord.h:1056
LineRecord::QuantumNumbers
const QuantumNumberRecord & QuantumNumbers() const
Quantum numbers.
Definition: linerecord.h:538
LineRecord::Psf
Numeric Psf() const
The pressure shift parameter in Hz/Pa.
Definition: linerecord.h:345
operator<<
ostream & operator<<(ostream &os, const LineRecord &lr)
Output operator for LineRecord.
Definition: linerecord.cc:2512
messages.h
Declarations having to do with the four output streams.
LineRecord::Name
String Name() const
The full name of the species and isotopologue.
Definition: linerecord.cc:42
my_basic_string
The implementation for String, the ARTS string class.
Definition: mystring.h:64
LineRecord::Upper_LQuanta
const String & Upper_LQuanta() const
Upper state local quanta.
Definition: linerecord.h:517
LineRecord::mf
Numeric mf
Definition: linerecord.h:948
LineRecord::mti0
Numeric mti0
Definition: linerecord.h:954
LineRecord::mdnself
Numeric mdnself
Definition: linerecord.h:983
LineRecord::setNair
void setNair(Numeric new_mnair)
Set AGAM temperature exponent (dimensionless):
Definition: linerecord.h:389
LineRecord::dNself
Numeric dNself() const
Accuracy for SGAM temperature exponent in relative value:
Definition: linerecord.h:427
LineRecord::G_upper
Numeric G_upper() const
ARTSCAT-4 Upper state stat.
Definition: linerecord.h:436
LineRecord::mlower_lquanta
String mlower_lquanta
Lower state local quanta.
Definition: linerecord.h:1062
LineRecord::Isotopologue
Index Isotopologue() const
The index of the isotopologue species that this line belongs to.
Definition: linerecord.h:307
LineRecord::ReadFromJplStream
bool ReadFromJplStream(istream &is, const Verbosity &verbosity)
Read one line from a stream associated with a JPL file.
Definition: linerecord.cc:1818
LineRecord::ARTSCAT4FromARTSCAT3
void ARTSCAT4FromARTSCAT3()
Converts line parameters from ARTSCAT-3 to ARTSCAT-4 format.
Definition: linerecord.cc:71
ArrayOfLineRecord
Array< LineRecord > ArrayOfLineRecord
Holds a list of spectral line data.
Definition: linerecord.h:1092
LineMatchingCriteria
LineMatchingCriteria
Definition: linerecord.h:1104
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:29
Verbosity
Definition: messages.h:50
LineRecord::IsotopologueData
const IsotopologueRecord & IsotopologueData() const
The matching IsotopologueRecord from species_data.
Definition: linerecord.cc:57
LineRecord::VersionString
String VersionString() const
Return the version String.
Definition: linerecord.cc:34
LineRecord::setPsf
void setPsf(Numeric new_mpsf)
Set the pressure shift parameter in Hz/Pa.
Definition: linerecord.h:348
LineRecord
Spectral line catalog data.
Definition: linerecord.h:196
LineRecord::mdf
Numeric mdf
Definition: linerecord.h:973
LineRecord::magam
Numeric magam
Definition: linerecord.h:958
LineRecord::setF
void setF(Numeric new_mf)
Set the line center frequency in Hz.
Definition: linerecord.h:342
LineRecord::ReadFromArtscat4Stream
bool ReadFromArtscat4Stream(istream &is, const Verbosity &verbosity)
Read one line from a stream associated with an ARTSCAT-4 file.
Definition: linerecord.cc:2259
LineRecord::Species
Index Species() const
The index of the molecular species that this line belongs to.
Definition: linerecord.h:302
LineRecord::maux
ArrayOfNumeric maux
Definition: linerecord.h:968
LineRecord::Upper_GQuanta
const String & Upper_GQuanta() const
Upper state global quanta.
Definition: linerecord.h:511
SpeciesRecord
Contains the lookup data for one species.
Definition: absorption.h:367
LineRecord::Lower_N
Rational Lower_N() const
Lower state local quanta N.
Definition: linerecord.h:529
LineRecord::mspecies
Index mspecies
Definition: linerecord.h:944
LineRecord::ARTSCAT4UnusedToNaN
void ARTSCAT4UnusedToNaN()
Set to NaN all parameters that are not in ARTSCAT-4.
Definition: linerecord.h:612
LineRecord::mgupper
Numeric mgupper
Definition: linerecord.h:992
LineRecord::dSgam
Numeric dSgam() const
Accuracy for self broadened width in relative value :
Definition: linerecord.h:421
LineRecord::Upper_N
Rational Upper_N() const
Upper state local quanta N.
Definition: linerecord.h:523
LineRecord::dAgam
Numeric dAgam() const
Accuracy for air broadened width in relative value :
Definition: linerecord.h:418
LineRecord::dF
Numeric dF() const
Accuracy for line position in Hz :
Definition: linerecord.h:412
LineRecord::G_lower
Numeric G_lower() const
ARTSCAT-4 Lower state stat.
Definition: linerecord.h:439
LineRecord::LineRecord
LineRecord()
Default constructor.
Definition: linerecord.h:202
LINE_MATCH_UNIQUE
@ LINE_MATCH_UNIQUE
Definition: linerecord.h:1106
IsotopologueRecord
Contains the lookup data for one isotopologue.
Definition: absorption.h:191
LineRecord::ma
Numeric ma
Definition: linerecord.h:990
LineRecord::mtgam
Numeric mtgam
Definition: linerecord.h:966
LineRecord::Naux
Index Naux() const
Number of auxiliary parameters.
Definition: linerecord.h:405
LineRecord::setNself
void setNself(Numeric new_mnself)
Set SGAM temperature exponent (dimensionless):
Definition: linerecord.h:395
LineRecord::BROAD_SPEC_POS_CO2
@ BROAD_SPEC_POS_CO2
Definition: linerecord.h:547
LineRecord::Lower_GQuanta
const String & Lower_GQuanta() const
Lower state global quanta.
Definition: linerecord.h:514
LineRecord::Delta_foreign
Numeric Delta_foreign(const Index i) const
ARTSCAT-4 pressure shift parameters in Hz/Pa :
Definition: linerecord.h:448
LINE_MATCH_FIRST
@ LINE_MATCH_FIRST
Definition: linerecord.h:1105
LineRecord::mn_foreign
Vector mn_foreign
Definition: linerecord.h:1023
QuantumNumberRecord
Record containing upper and lower quantum numbers.
Definition: quantum.h:94
LineRecord::Version
Index Version() const
Return the version number.
Definition: linerecord.h:298
LineRecord::msgam
Numeric msgam
Definition: linerecord.h:960
LineRecord::setAgam
void setAgam(Numeric new_agam)
Set Air broadened width in Hz/Pa:
Definition: linerecord.h:377
LineRecord::mupper_lquanta
String mupper_lquanta
Upper state local quanta.
Definition: linerecord.h:1060
LineRecord::BroadSpecName
static String BroadSpecName(const Index i)
Return the name of an artscat-4 broadening species, as function of its broadening species index.
Definition: linerecord.h:559
LineRecord::BROAD_SPEC_POS_H2O
@ BROAD_SPEC_POS_H2O
Definition: linerecord.h:546
LineRecord::mdi0
Numeric mdi0
Definition: linerecord.h:975
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:35
LineRecord::mdagam
Numeric mdagam
Definition: linerecord.h:977
LineRecord::NBroadSpec
static Index NBroadSpec()
Return the number of artscat-4 foreign broadening species (6).
Definition: linerecord.h:554
LineRecord::Tgam
Numeric Tgam() const
Reference temperature for AGAM and SGAM in K:
Definition: linerecord.h:398
Vector
The Vector class.
Definition: matpackI.h:556
LineRecord::mglower
Numeric mglower
Definition: linerecord.h:994
LineRecord::F
Numeric F() const
The line center frequency in Hz.
Definition: linerecord.h:339
LineRecord::QuantumNumbersString
const String & QuantumNumbersString() const
String with quantum numbers.
Definition: linerecord.h:535
LineRecord::Aux
const ArrayOfNumeric & Aux() const
Auxiliary parameters.
Definition: linerecord.h:408
LineRecord::ReadFromHitran2001Stream
bool ReadFromHitran2001Stream(istream &is, const Verbosity &verbosity)
Read one line from a stream associated with a HITRAN 1986-2001 file.
Definition: linerecord.cc:116
LineRecord::mdsgam
Numeric mdsgam
Definition: linerecord.h:979
Array::nelem
Index nelem() const
Number of elements.
Definition: array.h:176
LineRecord::mquantum_numbers
QuantumNumberRecord mquantum_numbers
Quantum numbers from HITRAN.
Definition: linerecord.h:1076
LineRecord::mnair
Numeric mnair
Definition: linerecord.h:962
LineRecord::I0
Numeric I0() const
The line intensity in m^2*Hz at the reference temperature Ti0.
Definition: linerecord.h:362
LineRecord::setI0
void setI0(Numeric new_mi0)
Set Intensity.
Definition: linerecord.h:365
LineRecord::dPsf
Numeric dPsf() const
Accuracy for pressure shift in relative value :
Definition: linerecord.h:430
Rational
Definition: rational.h:35
LineRecord::ReadFromMytran2Stream
bool ReadFromMytran2Stream(istream &is, const Verbosity &verbosity)
Read one line from a stream associated with a MYTRAN2 file.
Definition: linerecord.cc:1420
LineRecord::dI0
Numeric dI0() const
Accuracy for line intensity in relative value :
Definition: linerecord.h:415
mystring.h
This file contains the definition of String, the ARTS string class.
LineRecord::Nair
Numeric Nair() const
AGAM temperature exponent (dimensionless):
Definition: linerecord.h:386
LineRecord::mversion
Index mversion
Definition: linerecord.h:942