casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ATMProfile.h
Go to the documentation of this file.
1 #ifndef _ATM_PROFILE_H
2 #define _ATM_PROFILE_H
3 /*******************************************************************************
4  * ALMA - Atacama Large Millimiter Array
5  * (c) Instituto de Estructura de la Materia, 2009
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  *
21  * "@(#) $Id: ATMProfile.h Exp $"
22  *
23  * who when what
24  * -------- -------- ----------------------------------------------
25  * pardo 24/03/09 created
26  */
27 
28 #ifndef __cplusplus
29 #error This is a C++ include file and cannot be used from plain C
30 #endif
31 
32 #include "ATMCommon.h"
33 #include "ATMHumidity.h"
34 #include "ATMLength.h"
35 #include "ATMMassDensity.h"
36 #include "ATMNumberDensity.h"
37 #include "ATMPressure.h"
38 #include "ATMTemperature.h"
39 #include "ATMEnumerations.h"
40 
41 #include <string>
42 #include <vector>
43 
44 using std::string;
45 using std::vector;
46 
47 
49 
79 {
80 public:
82  AtmProfile(unsigned int n);
83 
87  AtmProfile(const Length &altitude,
88  const Pressure &groundPressure,
89  const Temperature &groundTemperature,
90  double tropoLapseRate,
91  const Humidity &relativeHumidity,
92  const Length &wvScaleHeight,
93  const Pressure &pressureStep,
94  double pressureStepFactor,
95  const Length &topAtmProfile,
96  unsigned int atmType); //Atmospheretype atmType);
97 
98 
101  AtmProfile(const Length &altitude,
102  const Pressure &groundPressure,
103  const Temperature &groundTemperature,
104  double tropoLapseRate,
105  const Humidity &relativeHumidity,
106  const Length &wvScaleHeight,
107  const Pressure &pressureStep,
108  double pressureStepFactor,
109  const Length &topAtmProfile,
110  unsigned int atmType,
111  const vector<Length> &v_layerBoundaries,
112  const vector<Temperature> &v_layerTemperature);
113 
114 
115 
117  /*
118  AtmProfile(Length altitude, Pressure groundPressure,
119  Temperature groundTemperature, double tropoLapseRate,
120  Humidity relativeHumidity, Length wvScaleHeight,
121  Pressure pressureStep, double pressureStepFactor,
122  Length topAtmProfile, int typeAtm);
123 
124  */
125 
129  AtmProfile(const Length &altitude,
130  const Pressure &groundPressure,
131  const Temperature &groundTemperature,
132  double tropoLapseRate,
133  const Humidity &relativeHumidity,
134  const Length &wvScaleHeight,
135  unsigned int atmType); //Atmospheretype atmType);
136 
137  /*AtmProfile(const Length &altitude,
138  const Pressure &groundPressure,
139  const Temperature &groundTemperature,
140  const Humidity &relativeHumidity,
141  const vector<Length> &v_layerTop,
142  const vector<Pressure> &v_layerTopPressure,
143  const vector<Temperature> &v_layerTopTemperature,
144  const vector<Humidity> &v_layerTopHumidity); */
145 
150  AtmProfile(const Length &altitude,
151  const vector<Length> &v_layerThickness,
152  const vector<Pressure> &v_layerPressure,
153  const vector<Temperature> &v_layerTemperature,
154  const vector<MassDensity> &v_layerWaterVapor);
155  AtmProfile(const vector<Length> &v_layerBoundaries,
156  const vector<Pressure> &v_layerPressure,
157  const vector<Temperature> &v_layerTemperature,
158  const vector<MassDensity> &v_layerWaterVapor);
159 
160  AtmProfile(const Length &altitude,
161  const vector<Length> &v_layerThickness,
162  const vector<Pressure> &v_layerPressure,
163  const vector<Temperature> &v_layerTemperature,
164  const vector<NumberDensity> &v_layerWaterVapor);
165  AtmProfile(const vector<Length> &v_layerBoundaries,
166  const vector<Pressure> &v_layerPressure,
167  const vector<Temperature> &v_layerTemperature,
168  const vector<NumberDensity> &v_layerWaterVapor);
169 
176  AtmProfile(const Length &altitude,
177  const vector<Length> &v_layerThickness,
178  const vector<Pressure> &v_layerPressure,
179  const vector<Temperature> &v_layerTemperature,
180  const vector<MassDensity> &v_layerWaterVapor,
181  const vector<NumberDensity> &v_layerO3);
182  AtmProfile(const Length &altitude,
183  const vector<Length> &v_layerThickness,
184  const vector<Pressure> &v_layerPressure,
185  const vector<Temperature> &v_layerTemperature,
186  const vector<NumberDensity> &v_layerWaterVapor,
187  const vector<NumberDensity> &v_layerO3);
188 
194  AtmProfile(const Length &altitude,
195  const vector<Length> &v_layerThickness,
196  const vector<Pressure> &v_layerPressure,
197  const vector<Temperature> &v_layerTemperature,
198  const vector<MassDensity> &v_layerWaterVapor,
199  const vector<NumberDensity> &v_layerO3,
200  const vector<NumberDensity> &v_layerCO,
201  const vector<NumberDensity> &v_layerN2O,
202  const vector<NumberDensity> &v_layerNO2,
203  const vector<NumberDensity> &v_layerSO2);
204 
205  AtmProfile(const Length &altitude,
206  const vector<Length> &v_layerThickness,
207  const vector<Pressure> &v_layerPressure,
208  const vector<Temperature> &v_layerTemperature,
209  const vector<NumberDensity> &v_layerWaterVapor,
210  const vector<NumberDensity> &v_layerO3,
211  const vector<NumberDensity> &v_layerCO,
212  const vector<NumberDensity> &v_layerN2O,
213  const vector<NumberDensity> &v_layerNO2,
214  const vector<NumberDensity> &v_layerSO2);
215 
216  AtmProfile(const AtmProfile &a); // copy constructor
217 
218  virtual ~AtmProfile() {}
219 
235  bool setBasicAtmosphericParameters(const Length &altitude,
236  const Pressure &groundPressure,
237  const Temperature &groundTemperature,
238  double tropoLapseRate,
239  const Humidity &relativeHumidity,
240  const Length &wvScaleHeight);
241 
243  string getAtmosphereType() const;
244 
246  static string getAtmosphereType(unsigned int typeAtm);
247 
250 
252  double getTropoLapseRate() const { return tropoLapseRate_; }
253 
256 
259 
262 
265 
271 
277 
279  Length getAltitude() const { return altitude_; }
280 
282  Length getGroundAltitude() const { return altitude_; }
283 
286  void setAltitude(const Length &groundaltitude);
287 
290  // void setGroundAltitude(const Length &groundaltitude);
291 
294 
297 
299  unsigned int getNumLayer() const { return numLayer_; }
300 
302  vector<Temperature> getTemperatureProfile() const;
303 
308  Temperature getLayerTemperature(unsigned int i) const;
309 
314  Temperature getLayerBottomTemperature(unsigned int i) const;
315 
320  Temperature getLayerTopTemperature(unsigned int i) const;
321 
323  void setLayerTemperature(unsigned int i, const Temperature &layerTemperature);
324 
327  vector<Length> getThicknessProfile() const;
328 
333  Length getLayerThickness(unsigned int i) const;
334 
337  void setLayerThickness(unsigned int i, const Length &layerThickness);
338  //void setLayerThickness(const Length &layerThickness, unsigned int i) { setLayerThickness(i, layerThickness); }
339 
344  Length getLayerBottomHeightAboveGround(unsigned int i) const;
345 
350  Length getLayerBottomHeightAboveSeaLevel(unsigned int i) const;
351 
352 
357  Length getLayerTopHeightAboveGround(unsigned int i) const;
358 
363  Length getLayerTopHeightAboveSeaLevel(unsigned int i) const;
364 
365 
370  MassDensity getLayerWaterVaporMassDensity(unsigned int i) const;
371  MassDensity getLayerBottomWaterVaporMassDensity(unsigned int i) const;
372  MassDensity getLayerTopWaterVaporMassDensity(unsigned int i) const;
373  NumberDensity getLayerWaterVaporNumberDensity(unsigned int i) const;
376 
379  void setLayerWaterVaporMassDensity(unsigned int i, const MassDensity &layerWaterVapor);
380  //void setLayerWaterVaporMassDensity(const MassDensity &layerWaterVapor, unsigned int i) { setLayerWaterVaporMassDensity(i, layerWaterVapor); }
381  void setLayerWaterVaporNumberDensity(unsigned int i, const NumberDensity &layerWaterVapor);
382  //void setLayerWaterVapor(const NumberDensity &layerWaterVapor, unsigned int i) { setLayerWaterVapor(i, layerWaterVapor); }
383 
385  vector<Pressure> getPressureProfile() const;
386 
390  Pressure getLayerPressure(unsigned int i) const;
391 
395  Pressure getLayerBottomPressure(unsigned int i) const;
396 
400  Pressure getLayerTopPressure(unsigned int i) const;
401 
404  void setLayerPressure(unsigned int i, const Pressure &layerPressure) { v_layerPressure_[i] = layerPressure.get("mb"); }
405  //void setLayerPressure(const Pressure &layerPressure, unsigned int i) { setLayerPressure(i, layerPressure); }
406 
409  NumberDensity getLayerCO(unsigned int i) const { return NumberDensity(v_layerCO_[i], "m**-3"); }
412  void setLayerCO(unsigned int i, const NumberDensity &layerCO) { v_layerCO_[i] = layerCO.get("m**-3"); }
413  //void setLayerCO(const NumberDensity &layerCO, unsigned int i) { setLayerCO(i, layerCO); }
414 
417  NumberDensity getLayerO3(unsigned int i) const { return NumberDensity(v_layerO3_[i], "m**-3"); }
420  void setLayerO3(unsigned int i, const NumberDensity &layerO3) { v_layerO3_[i] = layerO3.get("m**-3"); }
421  //void setLayerO3(const NumberDensity &layerO3, unsigned int i) { setLayerO3(i, layerO3); }
422 
425  NumberDensity getLayerN2O(unsigned int i) const { return NumberDensity(v_layerN2O_[i], "m**-3"); }
428  void setLayerN2O(unsigned int i, const NumberDensity &layerN2O) { v_layerN2O_[i] = layerN2O.get("m**-3"); }
429  //void setLayerN2O(const NumberDensity &layerN2O, unsigned int i) { setLayerN2O(i, layerN2O); }
430 
433  NumberDensity getLayerNO2(unsigned int i) const { return NumberDensity(v_layerNO2_[i], "m**-3"); }
436  void setLayerNO2(unsigned int i, const NumberDensity &layerNO2) { v_layerNO2_[i] = layerNO2.get("m**-3"); }
437  //void setLayerNO2(const NumberDensity &layerNO2, unsigned int i) { setLayerNO2(i, layerNO2); }
438 
441  NumberDensity getLayerSO2(unsigned int i) const { return NumberDensity(v_layerSO2_[i], "m**-3"); }
444  void setLayerSO2(unsigned int i, const NumberDensity &layerSO2) { v_layerSO2_[i] = layerSO2.get("m**-3"); }
445  //void setLayerSO2(const NumberDensity &layerSO2, unsigned int i) { setLayerSO2(i, layerSO2); }
446 
447  void setBasicAtmosphericParameterThresholds(const Length &altitudeThreshold,
448  const Pressure &groundPressureThreshold,
449  const Temperature &groundTemperatureThreshold,
450  double tropoLapseRateThreshold,
451  const Humidity &relativeHumidityThreshold,
452  const Length &wvScaleHeightThreshold);
453 
454 
459  Length getGroundWH2O() const;
460 
461  // Thresholds
468 
469  void setAltitudeThreshold(const Length &altitudeThreshold) {altitudeThreshold_=altitudeThreshold;};
470  void setGroundPressureThreshold(const Pressure &groundPressureThreshold) {groundPressureThreshold_=groundPressureThreshold;};
471  void setGroundTemperatureThreshold(const Temperature &groundTemperatureThreshold) {groundTemperatureThreshold_=groundTemperatureThreshold;};
472 
473 
475 
476 protected:
477  unsigned int typeAtm_;
481  unsigned int tropoLayer_;
497  unsigned int numLayer_;
498  double fractionLast_;
500  vector<double> v_layerThickness_;
501  vector<double> v_layerTemperature_;
502  vector<double> v_layerTemperature0_;
503  vector<double> v_layerTemperature1_;
504  vector<double> v_layerWaterVapor_;
505  vector<double> v_layerWaterVapor0_;
506  vector<double> v_layerWaterVapor1_;
507  vector<double> v_layerPressure_;
508  vector<double> v_layerPressure0_;
509  vector<double> v_layerPressure1_;
510  vector<double> v_layerCO_;
511  vector<double> v_layerO3_;
512  vector<double> v_layerN2O_;
513  vector<double> v_layerNO2_;
514  vector<double> v_layerSO2_;
521 
522  unsigned int ier_;
523 
526 
527  /*
528  * \fn Method to build the profile,
529  */
530  unsigned int mkAtmProfile();
542  bool updateAtmProfile(const Length &altitude,
543  const Pressure &groundPressure,
544  const Temperature &groundTemperature,
545  double tropoLapseRate,
546  const Humidity &relativeHumidity,
547  const Length &wvScaleHeight);
549 
550 private:
551  MassDensity rwat(const Temperature &t, const Humidity &rh, const Pressure &p) const;
552  Humidity rwat_inv(const Temperature &tt, const MassDensity &dd, const Pressure &pp) const;
553  vector<NumberDensity> st76(const Length &ha, unsigned int tip) const;
554  double poli2(double ha,
555  double x1,
556  double x2,
557  double x3,
558  double y1,
559  double y2,
560  double y3) const;
561  /*
562  // static Pressure pressureStep_default( 10.0,"mb");
563  // static double pSd; // = 10.0; // pressureStep_default in mb
564  static Pressure pressureStep_default_;
565 
566 
567  static double pressureStepFactor_default_; // = 1.2;
568  //static double pSFd; // = 1.2;
569 
570 
571 
572  static Length topAtmProfile_default_; //( 48.0,"km");
573  //static tAPd; // = 48.0;
574  */
575 
577  //static Atmospheretype atmType_default = tropical;
578 
579 }; // class AtmProfile
580 
582 /*
583  Pressure AtmProfile::pressureStep_default_(Pressure(1.2,"mb"));
584  double AtmProfile::pressureStepFactor_default_(1.2);
585  Length AtmProfile::topAtmProfile_default_(Length(48,"km"));
586 */
587 
609 #endif
MassDensity getLayerWaterVaporMassDensity(unsigned int i) const
Function to retrieve Average Water vapor density in a given layer in kg/m**3 (thickness of layers in ...
#define ATM_NAMESPACE_END
Definition: ATMCommon.h:38
Temperature getGroundTemperatureThreshold() const
Definition: ATMProfile.h:464
void setLayerTemperature(unsigned int i, const Temperature &layerTemperature)
Setter for the average Temperature in layer i (allows to touch one layer each time once a profile has...
Length tropoAltitude_
Altitude where tropopause starts.
Definition: ATMProfile.h:482
Pressure getPressureStepFactor() const
Accessor to the current Pressure_Step_Factor in the object.
Definition: ATMProfile.h:276
Pressure groundPressure_
Ground pressure at the site.
Definition: ATMProfile.h:483
Length getLayerBottomHeightAboveSeaLevel(unsigned int i) const
Method to access the Bottom Height of layer i above the Sea Level if the layer is not valid...
Temperature getLayerTemperature(unsigned int i) const
Method to access the average Temperature in layer i (thickness of layers in ThicknessProfile) if the ...
Temperature groundTemperature_
Ambient temperature at the site (K)
Definition: ATMProfile.h:478
NumberDensity getLayerBottomWaterVaporNumberDensity(unsigned int i) const
Length getLayerBottomHeightAboveGround(unsigned int i) const
void setLayerThickness(const Length &amp;layerThickness, unsigned int i) { setLayerThickness(i, layerThickness); }
double getTropoLapseRateThreshold() const
Definition: ATMProfile.h:465
ATM_NAMESPACE_BEGIN typedef ATM_NAMESPACE::Percent Humidity
Definition: ATMHumidity.h:37
NumberDensity getLayerO3(unsigned int i) const
void setLayerCO(const NumberDensity &amp;layerCO, unsigned int i) { setLayerCO(i, layerCO); } ...
Definition: ATMProfile.h:417
MassDensity getLayerTopWaterVaporMassDensity(unsigned int i) const
Humidity getRelativeHumidityThreshold() const
Definition: ATMProfile.h:466
Temperature getLayerBottomTemperature(unsigned int i) const
Method to access the Temperature at bottom of layer i (thickness of layers in ThicknessProfile) if th...
NumberDensity getLayerNO2(unsigned int i) const
void setLayerN2O(const NumberDensity &amp;layerN2O, unsigned int i) { setLayerN2O(i, layerN2O); } ...
Definition: ATMProfile.h:433
void setBasicAtmosphericParameterThresholds(const Length &altitudeThreshold, const Pressure &groundPressureThreshold, const Temperature &groundTemperatureThreshold, double tropoLapseRateThreshold, const Humidity &relativeHumidityThreshold, const Length &wvScaleHeightThreshold)
void setLayerSO2(const NumberDensity &amp;layerSO2, unsigned int i) { setLayerSO2(i, layerSO2); } ...
Length getGroundWH2O() const
Method to get the zenith column of water vapor.
void setGroundPressureThreshold(const Pressure &groundPressureThreshold)
Definition: ATMProfile.h:470
void setGroundTemperatureThreshold(const Temperature &groundTemperatureThreshold)
Definition: ATMProfile.h:471
vector< double > v_layerCO_
CO in molecules per m**3.
Definition: ATMProfile.h:510
Pressure getGroundPressure() const
Accessor to the current Ground Pressure used in the object (pressure units)
Definition: ATMProfile.h:255
double get() const
Accessor to get the value in SI units (Pa)
Definition: ATMPressure.h:58
double poli2(double ha, double x1, double x2, double x3, double y1, double y2, double y3) const
Length topAtmProfile_
Top of atmospheric profile (km)
Definition: ATMProfile.h:496
Global enumeration objects.
unsigned int tropoLayer_
Layer where tropopause starts.
Definition: ATMProfile.h:481
void initBasicAtmosphericParameterThresholds()
void setLayerWaterVaporNumberDensity(unsigned int i, const NumberDensity &layerWaterVapor)
void setLayerWaterVaporMassDensity(const MassDensity &amp;layerWaterVapor, unsigned int i) { setLayerWate...
NumberDensity getLayerCO(unsigned int i) const
void setLayerPressure(const Pressure &amp;layerPressure, unsigned int i) { setLayerPressure(i, layerPressure); }
Definition: ATMProfile.h:409
Humidity rwat_inv(const Temperature &tt, const MassDensity &dd, const Pressure &pp) const
vector< double > v_layerPressure_
Pressure of layers (mb)
Definition: ATMProfile.h:507
void setLayerCO(unsigned int i, const NumberDensity &layerCO)
Setter for the average number density of CO in layer i in molecules/m**3 (allows to touch one layer e...
Definition: ATMProfile.h:412
Length getTopAtmProfile() const
Accessor to the Maximum allowed altitude for the Atmospheric Profile above the site (length units) ...
Definition: ATMProfile.h:296
Pressure getGroundPressureThreshold() const
Definition: ATMProfile.h:463
void setLayerSO2(unsigned int i, const NumberDensity &layerSO2)
Setter for the average number density of SO2 in layer i in molecules/m**3 (allows to touch one layer ...
Definition: ATMProfile.h:444
unsigned int typeAtm_
1: tropical, 2: midlatSummer, 3: midlatWinter, 4: subarcticSummer, 5: subarcticWinter ...
Definition: ATMProfile.h:471
void setLayerWaterVaporMassDensity(unsigned int i, const MassDensity &layerWaterVapor)
Setter for the average Water vapor density in layer i in kg/m**3 (allows to touch one layer each time...
Pressure pressureStep_
Pressure basic step (mb)
Definition: ATMProfile.h:488
Temperature groundTemperatureThreshold_
Definition: ATMProfile.h:517
double fractionLast_
Fraction of last layer needed for some calculations.
Definition: ATMProfile.h:498
void setLayerNO2(unsigned int i, const NumberDensity &layerNO2)
Setter for the average number density of NO2 in layer i in molecules/m**3 (allows to touch one layer ...
Definition: ATMProfile.h:436
double tropoLapseRateThreshold_
Definition: ATMProfile.h:518
NumberDensity getLayerWaterVaporNumberDensity(unsigned int i) const
vector< double > v_layerThickness_
Thickness of layer (m)
Definition: ATMProfile.h:500
Temperature getLayerTopTemperature(unsigned int i) const
Method to access the Temperature at top of layer i (thickness of layers in ThicknessProfile) if the l...
Length getAltitudeThreshold() const
Thresholds.
Definition: ATMProfile.h:462
Length wvScaleHeight_
Relative humidity at the site (%) used only to make an estimate of the wat...
Definition: ATMProfile.h:487
Pressure getLayerPressure(unsigned int i) const
Method to access the average Pressure in layer i if the layer is not valid.
bool updateAtmProfile(const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight)
returns error code: &lt;0 unsuccessful
void setLayerThickness(unsigned int i, const Length &layerThickness)
Setter for the thickness of layer i (allows to touch one layer each time once a profile has been defi...
Length wvScaleHeightThreshold_
Definition: ATMProfile.h:520
vector< double > v_layerNO2_
NO2 in molecules per m**3.
Definition: ATMProfile.h:513
vector< NumberDensity > st76(const Length &ha, unsigned int tip) const
NumberDensity getLayerTopWaterVaporNumberDensity(unsigned int i) const
#define ATM_NAMESPACE_BEGIN
Definition: ATMCommon.h:37
vector< Temperature > getTemperatureProfile() const
Method to access the Temperature Profile.
void setAltitudeThreshold(const Length &altitudeThreshold)
Definition: ATMProfile.h:469
vector< double > v_layerTemperature_
Temp. of layers (K)
Definition: ATMProfile.h:501
vector< double > v_layerO3_
O3 in molecules per m**3.
Definition: ATMProfile.h:511
Length altitudeThreshold_
Definition: ATMProfile.h:515
unsigned int getNumLayer() const
Accessor to the number of layers of the atmospheric profile.
Definition: ATMProfile.h:299
void setAltitude(const Length &groundaltitude)
setter for the ground altitude of site (length units).
Temperature getTropopauseTemperature() const
Accessor to the current Tropopause Temperature used in the object.
Definition: ATMProfile.h:258
Length getWvScaleHeightThreshold() const
Definition: ATMProfile.h:467
NumberDensity getLayerSO2(unsigned int i) const
void setLayerNO2(const NumberDensity &amp;layerNO2, unsigned int i) { setLayerNO2(i, layerNO2); } ...
Definition: ATMProfile.h:441
Length getGroundAltitude() const
Alternative accessor to the ground altitude of site (length units)
Definition: ATMProfile.h:282
vector< double > v_layerN2O_
N2O in molecules per m**3.
Definition: ATMProfile.h:512
Defines pressure with units.
Definition: ATMPressure.h:43
Class for an atmospheric profile object.
Definition: ATMProfile.h:78
string getAtmosphereType() const
Accessor to the type of current atmosphere.
vector< double > v_layerPressure0_
Pressure at bottom of layers (mb)
Definition: ATMProfile.h:508
virtual ~AtmProfile()
Definition: ATMProfile.h:218
Length altitude_
Multiplicative factor for presure steps.
Definition: ATMProfile.h:495
vector< double > v_layerSO2_
SO2 in molecules per m**3.
Definition: ATMProfile.h:514
void setLayerN2O(unsigned int i, const NumberDensity &layerN2O)
Setter for the average number density of N2O in layer i in molecules/m**3 (allows to touch one layer ...
Definition: ATMProfile.h:428
Temperature getGroundTemperature() const
Accessor to the current Ground Temperature used in the object.
Definition: ATMProfile.h:249
Length getLayerThickness(unsigned int i) const
Method to access the layer thickness of layer i if the layer is not valid.
double pressureStepFactor_
Definition: ATMProfile.h:489
void setLayerPressure(unsigned int i, const Pressure &layerPressure)
Setter for the average Pressure in layer i (allows to touch one layer each time once a profile has be...
Definition: ATMProfile.h:404
vector< double > v_layerTemperature1_
Temp. at top of layer (K)
Definition: ATMProfile.h:503
Humidity relativeHumidityThreshold_
Definition: ATMProfile.h:519
AtmProfile()
Default constructor (required if copy constructor in derived classes)
Definition: ATMProfile.h:525
MassDensity rwat(const Temperature &t, const Humidity &rh, const Pressure &p) const
Pressure getPressureStep() const
Accessor to the current Primary Pressure Step in the object.
Definition: ATMProfile.h:270
Number Density value with units.
double getTropoLapseRate() const
Accessor to the current Tropospheric Lapse Rate used in the object (temperature/length units) ...
Definition: ATMProfile.h:252
Length getWvScaleHeight() const
Accessor to the current Water Vapor Scale Height in the object (length units)
Definition: ATMProfile.h:264
vector< double > v_layerPressure1_
Pressure at top of layers (mb)
Definition: ATMProfile.h:509
unsigned int ier_
Definition: ATMProfile.h:522
vector< double > v_layerWaterVapor0_
Water vapor kg/m**3 at bottom of layer.
Definition: ATMProfile.h:505
vector< double > v_layerWaterVapor1_
Water vapor kg/m**3 at top of layer.
Definition: ATMProfile.h:506
void setLayerO3(unsigned int i, const NumberDensity &layerO3)
Setter for the average number density of O3 in layer i in molecules/m**3 (allows to touch one layer e...
Definition: ATMProfile.h:420
unsigned int mkAtmProfile()
double tropoLapseRate_
tropospheric lapse rate in K/km
Definition: ATMProfile.h:479
bool setBasicAtmosphericParameters(const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight)
Setter to update the AtmProfile if some basic atmospheric parameter has changed.
Mass Density value with units.
Pressure getLayerTopPressure(unsigned int i) const
Method to access the Pressure at top of layer i if the layer is not valid.
Temperature value with units.
vector< double > v_layerWaterVapor_
Average water vapor kg/m**3 in the layer.
Definition: ATMProfile.h:504
Pressure getLayerBottomPressure(unsigned int i) const
Method to access the Pressure at bottom of layer i if the layer is not valid.
Length getLayerTopHeightAboveSeaLevel(unsigned int i) const
Method to access the Top Height of layer i above the Sea Level if the layer is not valid...
vector< double > v_layerTemperature0_
Temp. at bottom of layers (K)
Definition: ATMProfile.h:502
Pressure groundPressureThreshold_
Definition: ATMProfile.h:516
MassDensity getLayerBottomWaterVaporMassDensity(unsigned int i) const
Class for those physical parameters having dimensions of Length [L].
Definition: ATMLength.h:44
Length getLayerTopHeightAboveGround(unsigned int i) const
Method to access the Top Height of layer i above the Ground if the layer is not valid.
Length getTropopauseAltitude() const
Alternative setter for the ground altitude of site (length units).
Definition: ATMProfile.h:293
unsigned int numLayer_
Total number of layers in the output atmospheric profiles.
Definition: ATMProfile.h:497
double get() const
Accessor to the numberdensity value in International System units (K)
NumberDensity getLayerN2O(unsigned int i) const
void setLayerO3(const NumberDensity &amp;layerO3, unsigned int i) { setLayerO3(i, layerO3); } ...
Definition: ATMProfile.h:425
Length getAltitude() const
Accessor to the ground altitude of site (length units)
Definition: ATMProfile.h:279
Humidity getRelativeHumidity() const
Accessor to the current Ground Relative Humidity in the object (humidity units)
Definition: ATMProfile.h:261
Humidity relativeHumidity_
Definition: ATMProfile.h:484
vector< Length > getThicknessProfile() const
Method to retrieve the layer thickness from site altitude upwards.
vector< Pressure > getPressureProfile() const
void setLayerWaterVapor(const NumberDensity &amp;layerWaterVapor, unsigned int i) { setLayerWaterVapor(i...
Temperature tropoTemperature_
Temperature at the tropopause.
Definition: ATMProfile.h:480
bool newBasicParam_
Definition: ATMProfile.h:499