casa
5.7.0-16
|
Class for an atmospheric profile object. More...
#include <ATMProfile.h>
Public Member Functions | |||
AtmProfile (unsigned int n) | |||
A constructor of an empty profile with n layers, that can be filled up later. More... | |||
AtmProfile (const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight, const Pressure &pressureStep, double pressureStepFactor, const Length &topAtmProfile, unsigned int atmType) | |||
A long constructor of the atmospheric profile from the basic set of parameters described above. More... | |||
AtmProfile (const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight, const Pressure &pressureStep, double pressureStepFactor, const Length &topAtmProfile, unsigned int atmType, const vector< Length > &v_layerBoundaries, const vector< Temperature > &v_layerTemperature) | |||
A long constructor of the atmospheric profile from the basic set of parameters described above which, in addition, includes user-defined temperature profile. More... | |||
AtmProfile (const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight, unsigned int atmType) | |||
A long constructor of the atmospheric profile from the basic set of parameters described above. More... | |||
AtmProfile (const Length &altitude, const vector< Length > &v_layerThickness, const vector< Pressure > &v_layerPressure, const vector< Temperature > &v_layerTemperature, const vector< MassDensity > &v_layerWaterVapor) | |||
The user provides his own atmospheric profile (basic one: four vectors for layer thickness in m, average pressure in each layer in mb, average temperature in each layer in K, and average water vapor density in each layer in kg/m**3). More... | |||
AtmProfile (const vector< Length > &v_layerBoundaries, const vector< Pressure > &v_layerPressure, const vector< Temperature > &v_layerTemperature, const vector< MassDensity > &v_layerWaterVapor) | |||
AtmProfile (const Length &altitude, const vector< Length > &v_layerThickness, const vector< Pressure > &v_layerPressure, const vector< Temperature > &v_layerTemperature, const vector< NumberDensity > &v_layerWaterVapor) | |||
AtmProfile (const vector< Length > &v_layerBoundaries, const vector< Pressure > &v_layerPressure, const vector< Temperature > &v_layerTemperature, const vector< NumberDensity > &v_layerWaterVapor) | |||
AtmProfile (const Length &altitude, const vector< Length > &v_layerThickness, const vector< Pressure > &v_layerPressure, const vector< Temperature > &v_layerTemperature, const vector< MassDensity > &v_layerWaterVapor, const vector< NumberDensity > &v_layerO3) | |||
The user provides his own atmospheric profile (in this case five vectors for layer thickness in m, average pressure in each layer in mb, average temperature in each layer in K, average water vapor density in each layer in kg/m**3, and average ozone number density in each layer in molecules/m**3) QUESTION: SHOULD CO and N2O, NO2, SO2 PROFILES BE FILLED UP INTERNALLY FROM A STANDARD ATMOSPHERE OR LEFT ITS ABUNDANCES EQUAL TO ZERO ? More... | |||
AtmProfile (const Length &altitude, const vector< Length > &v_layerThickness, const vector< Pressure > &v_layerPressure, const vector< Temperature > &v_layerTemperature, const vector< NumberDensity > &v_layerWaterVapor, const vector< NumberDensity > &v_layerO3) | |||
AtmProfile (const Length &altitude, const vector< Length > &v_layerThickness, const vector< Pressure > &v_layerPressure, const vector< Temperature > &v_layerTemperature, const vector< MassDensity > &v_layerWaterVapor, const vector< NumberDensity > &v_layerO3, const vector< NumberDensity > &v_layerCO, const vector< NumberDensity > &v_layerN2O, const vector< NumberDensity > &v_layerNO2, const vector< NumberDensity > &v_layerSO2) | |||
The user provides his own atmospheric profile (in this case seven vectors for layer thickness in m, average pressure in each layer in mb, average temperature in each layer in K, average water vapor density in each layer in kg/m**3, average ozone number density in each layer in molecules/m**3, average CO number density in each layer in molecules/m**3, average N2O, NO2, SO2 number density in each layer in molecules/m**3) More... | |||
AtmProfile (const Length &altitude, const vector< Length > &v_layerThickness, const vector< Pressure > &v_layerPressure, const vector< Temperature > &v_layerTemperature, const vector< NumberDensity > &v_layerWaterVapor, const vector< NumberDensity > &v_layerO3, const vector< NumberDensity > &v_layerCO, const vector< NumberDensity > &v_layerN2O, const vector< NumberDensity > &v_layerNO2, const vector< NumberDensity > &v_layerSO2) | |||
AtmProfile (const AtmProfile &a) | |||
virtual | ~AtmProfile () | ||
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. More... | |||
string | getAtmosphereType () const | ||
Accessor to the type of current atmosphere. More... | |||
Temperature | getGroundTemperature () const | ||
Accessor to the current Ground Temperature used in the object. More... | |||
double | getTropoLapseRate () const | ||
Accessor to the current Tropospheric Lapse Rate used in the object (temperature/length units) More... | |||
Pressure | getGroundPressure () const | ||
Accessor to the current Ground Pressure used in the object (pressure units) More... | |||
Temperature | getTropopauseTemperature () const | ||
Accessor to the current Tropopause Temperature used in the object. More... | |||
Humidity | getRelativeHumidity () const | ||
Accessor to the current Ground Relative Humidity in the object (humidity units) More... | |||
Length | getWvScaleHeight () const | ||
Accessor to the current Water Vapor Scale Height in the object (length units) More... | |||
Pressure | getPressureStep () const | ||
Accessor to the current Primary Pressure Step in the object. More... | |||
Pressure | getPressureStepFactor () const | ||
Accessor to the current Pressure_Step_Factor in the object. More... | |||
Length | getAltitude () const | ||
Accessor to the ground altitude of site (length units) More... | |||
Length | getGroundAltitude () const | ||
Alternative accessor to the ground altitude of site (length units) More... | |||
void | setAltitude (const Length &groundaltitude) | ||
setter for the ground altitude of site (length units). More... | |||
Length | getTropopauseAltitude () const | ||
Alternative setter for the ground altitude of site (length units). More... | |||
Length | getTopAtmProfile () const | ||
Accessor to the Maximum allowed altitude for the Atmospheric Profile above the site (length units) More... | |||
unsigned int | getNumLayer () const | ||
Accessor to the number of layers of the atmospheric profile. More... | |||
vector< Temperature > | getTemperatureProfile () const | ||
Method to access the Temperature Profile. More... | |||
Temperature | getLayerTemperature (unsigned int i) const | ||
Method to access the average Temperature in layer i (thickness of layers in ThicknessProfile)
| |||
Temperature | getLayerBottomTemperature (unsigned int i) const | ||
Method to access the Temperature at bottom of layer i (thickness of layers in ThicknessProfile)
| |||
Temperature | getLayerTopTemperature (unsigned int i) const | ||
Method to access the Temperature at top of layer i (thickness of layers in ThicknessProfile)
| |||
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 been defined) More... | |||
vector< Length > | getThicknessProfile () const | ||
Method to retrieve the layer thickness from site altitude upwards. More... | |||
Length | getLayerThickness (unsigned int i) const | ||
Method to access the layer thickness of layer i
| |||
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 defined). More... | |||
Length | getLayerBottomHeightAboveGround (unsigned int i) const | ||
void setLayerThickness(const Length &layerThickness, unsigned int i) { setLayerThickness(i, layerThickness); } More... | |||
Length | getLayerBottomHeightAboveSeaLevel (unsigned int i) const | ||
Method to access the Bottom Height of layer i above the Sea Level
| |||
Length | getLayerTopHeightAboveGround (unsigned int i) const | ||
Method to access the Top Height of layer i above the Ground
| |||
Length | getLayerTopHeightAboveSeaLevel (unsigned int i) const | ||
Method to access the Top Height of layer i above the Sea Level
| |||
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 ThicknessProfile)
| |||
MassDensity | getLayerBottomWaterVaporMassDensity (unsigned int i) const | ||
MassDensity | getLayerTopWaterVaporMassDensity (unsigned int i) const | ||
NumberDensity | getLayerWaterVaporNumberDensity (unsigned int i) const | ||
NumberDensity | getLayerBottomWaterVaporNumberDensity (unsigned int i) const | ||
NumberDensity | getLayerTopWaterVaporNumberDensity (unsigned int i) const | ||
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 once a profile has been defined) More... | |||
void | setLayerWaterVaporNumberDensity (unsigned int i, const NumberDensity &layerWaterVapor) | ||
void setLayerWaterVaporMassDensity(const MassDensity &layerWaterVapor, unsigned int i) { setLayerWaterVaporMassDensity(i, layerWaterVapor); } More... | |||
vector< Pressure > | getPressureProfile () const | ||
void setLayerWaterVapor(const NumberDensity &layerWaterVapor, unsigned int i) { setLayerWaterVapor(i, layerWaterVapor); } More... | |||
Pressure | getLayerPressure (unsigned int i) const | ||
Method to access the average Pressure in layer i
| |||
Pressure | getLayerBottomPressure (unsigned int i) const | ||
Method to access the Pressure at bottom of layer i
| |||
Pressure | getLayerTopPressure (unsigned int i) const | ||
Method to access the Pressure at top of layer i
| |||
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 been defined) More... | |||
NumberDensity | getLayerCO (unsigned int i) const | ||
void setLayerPressure(const Pressure &layerPressure, unsigned int i) { setLayerPressure(i, layerPressure); } More... | |||
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 each time once a profile has been defined) More... | |||
NumberDensity | getLayerO3 (unsigned int i) const | ||
void setLayerCO(const NumberDensity &layerCO, unsigned int i) { setLayerCO(i, layerCO); } More... | |||
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 each time once a profile has been defined) More... | |||
NumberDensity | getLayerN2O (unsigned int i) const | ||
void setLayerO3(const NumberDensity &layerO3, unsigned int i) { setLayerO3(i, layerO3); } More... | |||
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 each time once a profile has been defined) More... | |||
NumberDensity | getLayerNO2 (unsigned int i) const | ||
void setLayerN2O(const NumberDensity &layerN2O, unsigned int i) { setLayerN2O(i, layerN2O); } More... | |||
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 each time once a profile has been defined) More... | |||
NumberDensity | getLayerSO2 (unsigned int i) const | ||
void setLayerNO2(const NumberDensity &layerNO2, unsigned int i) { setLayerNO2(i, layerNO2); } More... | |||
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 each time once a profile has been defined) More... | |||
void | setBasicAtmosphericParameterThresholds (const Length &altitudeThreshold, const Pressure &groundPressureThreshold, const Temperature &groundTemperatureThreshold, double tropoLapseRateThreshold, const Humidity &relativeHumidityThreshold, const Length &wvScaleHeightThreshold) | ||
void setLayerSO2(const NumberDensity &layerSO2, unsigned int i) { setLayerSO2(i, layerSO2); } More... | |||
Length | getGroundWH2O () const | ||
Method to get the zenith column of water vapor. More... | |||
Length | getAltitudeThreshold () const | ||
Thresholds. More... | |||
Pressure | getGroundPressureThreshold () const | ||
Temperature | getGroundTemperatureThreshold () const | ||
double | getTropoLapseRateThreshold () const | ||
Humidity | getRelativeHumidityThreshold () const | ||
Length | getWvScaleHeightThreshold () const | ||
void | setAltitudeThreshold (const Length &altitudeThreshold) | ||
void | setGroundPressureThreshold (const Pressure &groundPressureThreshold) | ||
void | setGroundTemperatureThreshold (const Temperature &groundTemperatureThreshold) | ||
Static Public Member Functions | |
static string | getAtmosphereType (unsigned int typeAtm) |
Accessor to the type of atmosphere specified by the number. More... | |
Protected Member Functions | |
AtmProfile () | |
Default constructor (required if copy constructor in derived classes) More... | |
unsigned int | mkAtmProfile () |
bool | updateAtmProfile (const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight) |
returns error code: <0 unsuccessful More... | |
void | initBasicAtmosphericParameterThresholds () |
Protected Attributes | |
unsigned int | typeAtm_ |
1: tropical, 2: midlatSummer, 3: midlatWinter, 4: subarcticSummer, 5: subarcticWinter More... | |
Temperature | groundTemperature_ |
Ambient temperature at the site (K) More... | |
double | tropoLapseRate_ |
tropospheric lapse rate in K/km More... | |
Temperature | tropoTemperature_ |
Temperature at the tropopause. More... | |
unsigned int | tropoLayer_ |
Layer where tropopause starts. More... | |
Length | tropoAltitude_ |
Altitude where tropopause starts. More... | |
Pressure | groundPressure_ |
Ground pressure at the site. More... | |
Humidity | relativeHumidity_ |
Length | wvScaleHeight_ |
Relative humidity at the site (%) used only to make an estimate of the water vapor column, first guess) More... | |
Pressure | pressureStep_ |
Pressure basic step (mb) More... | |
double | pressureStepFactor_ |
Length | altitude_ |
Multiplicative factor for presure steps. More... | |
Length | topAtmProfile_ |
Top of atmospheric profile (km) More... | |
unsigned int | numLayer_ |
Total number of layers in the output atmospheric profiles. More... | |
double | fractionLast_ |
Fraction of last layer needed for some calculations. More... | |
bool | newBasicParam_ |
vector< double > | v_layerThickness_ |
Thickness of layer (m) More... | |
vector< double > | v_layerTemperature_ |
Temp. of layers (K) More... | |
vector< double > | v_layerTemperature0_ |
Temp. at bottom of layers (K) More... | |
vector< double > | v_layerTemperature1_ |
Temp. at top of layer (K) More... | |
vector< double > | v_layerWaterVapor_ |
Average water vapor kg/m**3 in the layer. More... | |
vector< double > | v_layerWaterVapor0_ |
Water vapor kg/m**3 at bottom of layer. More... | |
vector< double > | v_layerWaterVapor1_ |
Water vapor kg/m**3 at top of layer. More... | |
vector< double > | v_layerPressure_ |
Pressure of layers (mb) More... | |
vector< double > | v_layerPressure0_ |
Pressure at bottom of layers (mb) More... | |
vector< double > | v_layerPressure1_ |
Pressure at top of layers (mb) More... | |
vector< double > | v_layerCO_ |
CO in molecules per m**3. More... | |
vector< double > | v_layerO3_ |
O3 in molecules per m**3. More... | |
vector< double > | v_layerN2O_ |
N2O in molecules per m**3. More... | |
vector< double > | v_layerNO2_ |
NO2 in molecules per m**3. More... | |
vector< double > | v_layerSO2_ |
SO2 in molecules per m**3. More... | |
Length | altitudeThreshold_ |
Pressure | groundPressureThreshold_ |
Temperature | groundTemperatureThreshold_ |
double | tropoLapseRateThreshold_ |
Humidity | relativeHumidityThreshold_ |
Length | wvScaleHeightThreshold_ |
unsigned int | ier_ |
Private Member Functions | |
MassDensity | rwat (const Temperature &t, const Humidity &rh, const Pressure &p) const |
Humidity | rwat_inv (const Temperature &tt, const MassDensity &dd, const Pressure &pp) const |
vector< NumberDensity > | st76 (const Length &ha, unsigned int tip) const |
double | poli2 (double ha, double x1, double x2, double x3, double y1, double y2, double y3) const |
Static Private Attributes | |
static Pressure | pressureStep_default_ |
static double | pressureStepFactor_default_ |
static Length | topAtmProfile_default_ |
static double pSFd; // = 1.2; More... | |
Class for an atmospheric profile object.
An atmospheric profile is composed of 4 quantities as a function of altitude z: - the layer thickness - the pressure P - the temperature T and - the gas densities for H2O, O3, CO, N2O, NO2, SO2.<br>
This object is needed for computing the absorption and phase coefficients, as well as for performing radiative transfer calculations (only layer thickness/T are needed).
This class builds an atmospheric profile that can be used to calculate absorption and phase coefficients, as well as to perform forward and/or retrieval radiative transfer calculations. It is composed of a set of parameters needed to build a layer thickness/P/T/gas densities densities profile from simple parameters currently available at observatories (from weather stations for example) using functions from the ATM library. The set of input parameters consists of the pressure P, the temperature T and the relative humidity at the ground, the altitude of the site, the tropospheric temperature lapse rate,... The profile is built as: thickness of the considered atmospheric layers above the site, and mean P,T,H2O,O3,CO,N2O, NO2, SO2 in them. The total number of atmospheric layers in the particular profile is also available (a negative value indicates an error).
The zenith column of water vapor can be calculated by simply integrating the H2O profile.
Definition at line 78 of file ATMProfile.h.
AtmProfile::AtmProfile | ( | unsigned int | n | ) |
A constructor of an empty profile with n layers, that can be filled up later.
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const Pressure & | groundPressure, | ||
const Temperature & | groundTemperature, | ||
double | tropoLapseRate, | ||
const Humidity & | relativeHumidity, | ||
const Length & | wvScaleHeight, | ||
const Pressure & | pressureStep, | ||
double | pressureStepFactor, | ||
const Length & | topAtmProfile, | ||
unsigned int | atmType | ||
) |
A long constructor of the atmospheric profile from the basic set of parameters described above.
Please note that this constructor assumes that the &altitude of the antenna is the SAME of the weather station that provides: &groundPressure, &groundTemperature, and &relativeHumidity
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const Pressure & | groundPressure, | ||
const Temperature & | groundTemperature, | ||
double | tropoLapseRate, | ||
const Humidity & | relativeHumidity, | ||
const Length & | wvScaleHeight, | ||
const Pressure & | pressureStep, | ||
double | pressureStepFactor, | ||
const Length & | topAtmProfile, | ||
unsigned int | atmType, | ||
const vector< Length > & | v_layerBoundaries, | ||
const vector< Temperature > & | v_layerTemperature | ||
) |
A long constructor of the atmospheric profile from the basic set of parameters described above which, in addition, includes user-defined temperature profile.
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const Pressure & | groundPressure, | ||
const Temperature & | groundTemperature, | ||
double | tropoLapseRate, | ||
const Humidity & | relativeHumidity, | ||
const Length & | wvScaleHeight, | ||
unsigned int | atmType | ||
) |
A long constructor of the atmospheric profile from the basic set of parameters described above.
A short constructor of the atmospheric profile. With respect to the long constructor, this one considers
the following (recomended) default values: pressureStep = 10 mb, pressureStepFactor = 1.2, topAtmProfile = 48.0 km
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const vector< Length > & | v_layerThickness, | ||
const vector< Pressure > & | v_layerPressure, | ||
const vector< Temperature > & | v_layerTemperature, | ||
const vector< MassDensity > & | v_layerWaterVapor | ||
) |
The user provides his own atmospheric profile (basic one: four vectors for layer thickness in m, average pressure in each layer in mb, average temperature in each layer in K, and average water vapor density in each layer in kg/m**3).
QUESTION: SHOULD O3, CO, N2O, NO2, SO2 PROFILES BE FILLED UP INTERNALLY FROM A STANDARD ATMOSPHERE OR LEFT ITS ABUNDANCES EQUAL TO ZERO ?
AtmProfile::AtmProfile | ( | const vector< Length > & | v_layerBoundaries, |
const vector< Pressure > & | v_layerPressure, | ||
const vector< Temperature > & | v_layerTemperature, | ||
const vector< MassDensity > & | v_layerWaterVapor | ||
) |
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const vector< Length > & | v_layerThickness, | ||
const vector< Pressure > & | v_layerPressure, | ||
const vector< Temperature > & | v_layerTemperature, | ||
const vector< NumberDensity > & | v_layerWaterVapor | ||
) |
AtmProfile::AtmProfile | ( | const vector< Length > & | v_layerBoundaries, |
const vector< Pressure > & | v_layerPressure, | ||
const vector< Temperature > & | v_layerTemperature, | ||
const vector< NumberDensity > & | v_layerWaterVapor | ||
) |
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const vector< Length > & | v_layerThickness, | ||
const vector< Pressure > & | v_layerPressure, | ||
const vector< Temperature > & | v_layerTemperature, | ||
const vector< MassDensity > & | v_layerWaterVapor, | ||
const vector< NumberDensity > & | v_layerO3 | ||
) |
The user provides his own atmospheric profile (in this case five vectors for layer thickness in m, average pressure in each layer in mb, average temperature in each layer in K, average water vapor density in each layer in kg/m**3, and average ozone number density in each layer in molecules/m**3) QUESTION: SHOULD CO and N2O, NO2, SO2 PROFILES BE FILLED UP INTERNALLY FROM A STANDARD ATMOSPHERE OR LEFT ITS ABUNDANCES EQUAL TO ZERO ?
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const vector< Length > & | v_layerThickness, | ||
const vector< Pressure > & | v_layerPressure, | ||
const vector< Temperature > & | v_layerTemperature, | ||
const vector< NumberDensity > & | v_layerWaterVapor, | ||
const vector< NumberDensity > & | v_layerO3 | ||
) |
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const vector< Length > & | v_layerThickness, | ||
const vector< Pressure > & | v_layerPressure, | ||
const vector< Temperature > & | v_layerTemperature, | ||
const vector< MassDensity > & | v_layerWaterVapor, | ||
const vector< NumberDensity > & | v_layerO3, | ||
const vector< NumberDensity > & | v_layerCO, | ||
const vector< NumberDensity > & | v_layerN2O, | ||
const vector< NumberDensity > & | v_layerNO2, | ||
const vector< NumberDensity > & | v_layerSO2 | ||
) |
The user provides his own atmospheric profile (in this case seven vectors for layer thickness in m, average pressure in each layer in mb, average temperature in each layer in K, average water vapor density in each layer in kg/m**3, average ozone number density in each layer in molecules/m**3, average CO number density in each layer in molecules/m**3, average N2O, NO2, SO2 number density in each layer in molecules/m**3)
AtmProfile::AtmProfile | ( | const Length & | altitude, |
const vector< Length > & | v_layerThickness, | ||
const vector< Pressure > & | v_layerPressure, | ||
const vector< Temperature > & | v_layerTemperature, | ||
const vector< NumberDensity > & | v_layerWaterVapor, | ||
const vector< NumberDensity > & | v_layerO3, | ||
const vector< NumberDensity > & | v_layerCO, | ||
const vector< NumberDensity > & | v_layerN2O, | ||
const vector< NumberDensity > & | v_layerNO2, | ||
const vector< NumberDensity > & | v_layerSO2 | ||
) |
AtmProfile::AtmProfile | ( | const AtmProfile & | a | ) |
|
inlinevirtual |
Definition at line 218 of file ATMProfile.h.
|
inlineprotected |
Default constructor (required if copy constructor in derived classes)
Definition at line 525 of file ATMProfile.h.
|
inline |
Accessor to the ground altitude of site (length units)
Definition at line 279 of file ATMProfile.h.
References altitude_.
|
inline |
string AtmProfile::getAtmosphereType | ( | ) | const |
Accessor to the type of current atmosphere.
|
static |
Accessor to the type of atmosphere specified by the number.
|
inline |
Alternative accessor to the ground altitude of site (length units)
Definition at line 282 of file ATMProfile.h.
References altitude_.
|
inline |
Accessor to the current Ground Pressure used in the object (pressure units)
Definition at line 255 of file ATMProfile.h.
References groundPressure_.
|
inline |
Definition at line 463 of file ATMProfile.h.
References groundPressureThreshold_.
|
inline |
Accessor to the current Ground Temperature used in the object.
Definition at line 249 of file ATMProfile.h.
References groundTemperature_.
Referenced by SkyStatus::getAverageTebbSky(), and SkyStatus::getAverageTrjSky().
|
inline |
Definition at line 464 of file ATMProfile.h.
References groundTemperatureThreshold_.
Length AtmProfile::getGroundWH2O | ( | ) | const |
Method to get the zenith column of water vapor.
It is computed by simply integrating the H2O profile:
Referenced by SkyStatus::getAverageH2OContOpacity(), SkyStatus::getAverageH2OLinesOpacity(), SkyStatus::getAverageWetOpacity(), RefractiveIndexProfile::getDispersiveH2OPathLength(), RefractiveIndexProfile::getDispersiveH2OPhaseDelay(), RefractiveIndexProfile::getH2OContOpacity(), RefractiveIndexProfile::getH2OLinesOpacity(), RefractiveIndexProfile::getNonDispersiveH2OPathLength(), RefractiveIndexProfile::getNonDispersiveH2OPhaseDelay(), and RefractiveIndexProfile::getWetOpacity().
Length AtmProfile::getLayerBottomHeightAboveGround | ( | unsigned int | i | ) | const |
void setLayerThickness(const Length &layerThickness, unsigned int i) { setLayerThickness(i, layerThickness); }
Method to access the Bottom Height of layer i above the Ground
AtmException | if the layer is not valid. |
Length AtmProfile::getLayerBottomHeightAboveSeaLevel | ( | unsigned int | i | ) | const |
Method to access the Bottom Height of layer i above the Sea Level
AtmException | if the layer is not valid. |
Pressure AtmProfile::getLayerBottomPressure | ( | unsigned int | i | ) | const |
Method to access the Pressure at bottom of layer i
AtmException | if the layer is not valid. |
Temperature AtmProfile::getLayerBottomTemperature | ( | unsigned int | i | ) | const |
Method to access the Temperature at bottom of layer i (thickness of layers in ThicknessProfile)
AtmException | if the layer is not valid. |
MassDensity AtmProfile::getLayerBottomWaterVaporMassDensity | ( | unsigned int | i | ) | const |
NumberDensity AtmProfile::getLayerBottomWaterVaporNumberDensity | ( | unsigned int | i | ) | const |
|
inline |
void setLayerPressure(const Pressure &layerPressure, unsigned int i) { setLayerPressure(i, layerPressure); }
Function to retrieve CO density in a given layer (thickness of layers in ThicknessProfile)
Definition at line 409 of file ATMProfile.h.
References v_layerCO_.
|
inline |
void setLayerO3(const NumberDensity &layerO3, unsigned int i) { setLayerO3(i, layerO3); }
Function to retrieve N2O density in a given layer (thickness of layers in ThicknessProfile)
Definition at line 425 of file ATMProfile.h.
References v_layerN2O_.
|
inline |
void setLayerN2O(const NumberDensity &layerN2O, unsigned int i) { setLayerN2O(i, layerN2O); }
Function to retrieve NO2 density in a given layer (thickness of layers in ThicknessProfile)
Definition at line 433 of file ATMProfile.h.
References v_layerNO2_.
|
inline |
void setLayerCO(const NumberDensity &layerCO, unsigned int i) { setLayerCO(i, layerCO); }
Function to retrieve O3 density in a given layer (thickness of layers in ThicknessProfile)
Definition at line 417 of file ATMProfile.h.
References v_layerO3_.
Pressure AtmProfile::getLayerPressure | ( | unsigned int | i | ) | const |
Method to access the average Pressure in layer i
AtmException | if the layer is not valid. |
|
inline |
void setLayerNO2(const NumberDensity &layerNO2, unsigned int i) { setLayerNO2(i, layerNO2); }
Function to retrieve SO2 density in a given layer (thickness of layers in ThicknessProfile)
Definition at line 441 of file ATMProfile.h.
References v_layerSO2_.
Temperature AtmProfile::getLayerTemperature | ( | unsigned int | i | ) | const |
Method to access the average Temperature in layer i (thickness of layers in ThicknessProfile)
AtmException | if the layer is not valid. |
Length AtmProfile::getLayerThickness | ( | unsigned int | i | ) | const |
Method to access the layer thickness of layer i
AtmException | if the layer is not valid. |
Length AtmProfile::getLayerTopHeightAboveGround | ( | unsigned int | i | ) | const |
Method to access the Top Height of layer i above the Ground
AtmException | if the layer is not valid. |
Length AtmProfile::getLayerTopHeightAboveSeaLevel | ( | unsigned int | i | ) | const |
Method to access the Top Height of layer i above the Sea Level
AtmException | if the layer is not valid. |
Pressure AtmProfile::getLayerTopPressure | ( | unsigned int | i | ) | const |
Method to access the Pressure at top of layer i
AtmException | if the layer is not valid. |
Temperature AtmProfile::getLayerTopTemperature | ( | unsigned int | i | ) | const |
Method to access the Temperature at top of layer i (thickness of layers in ThicknessProfile)
AtmException | if the layer is not valid. |
MassDensity AtmProfile::getLayerTopWaterVaporMassDensity | ( | unsigned int | i | ) | const |
NumberDensity AtmProfile::getLayerTopWaterVaporNumberDensity | ( | unsigned int | i | ) | const |
MassDensity AtmProfile::getLayerWaterVaporMassDensity | ( | unsigned int | i | ) | const |
Function to retrieve Average Water vapor density in a given layer in kg/m**3 (thickness of layers in ThicknessProfile)
AtmException | if the layer is not valid. |
NumberDensity AtmProfile::getLayerWaterVaporNumberDensity | ( | unsigned int | i | ) | const |
|
inline |
Accessor to the number of layers of the atmospheric profile.
Definition at line 299 of file ATMProfile.h.
References numLayer_.
vector<Pressure> AtmProfile::getPressureProfile | ( | ) | const |
void setLayerWaterVapor(const NumberDensity &layerWaterVapor, unsigned int i) { setLayerWaterVapor(i, layerWaterVapor); }
Method to get the Pressure Profile
|
inline |
Accessor to the current Primary Pressure Step in the object.
The Primary Pressure Step (pressure units) is used to define the thickness of the first layer in the profile. Pressure difference between the boundaries of first layer will be equal to the Primary Pressure Step.
Definition at line 270 of file ATMProfile.h.
References pressureStep_.
|
inline |
Accessor to the current Pressure_Step_Factor in the object.
The Pressure_Step_Factor (no units) is the Pressure step change between consecutive layers when moving upwards. Pressure difference between the boundaries of the (n+1)-th layer (DP_n+1) will be DP_n**DP1.
Definition at line 276 of file ATMProfile.h.
References pressureStepFactor_.
|
inline |
Accessor to the current Ground Relative Humidity in the object (humidity units)
Definition at line 261 of file ATMProfile.h.
References relativeHumidity_.
|
inline |
Definition at line 466 of file ATMProfile.h.
References relativeHumidityThreshold_.
vector<Temperature> AtmProfile::getTemperatureProfile | ( | ) | const |
Method to access the Temperature Profile.
vector<Length> AtmProfile::getThicknessProfile | ( | ) | const |
Method to retrieve the layer thickness from site altitude upwards.
Use Altitude to + ThicknessProfile to know the vertical grid.
|
inline |
Accessor to the Maximum allowed altitude for the Atmospheric Profile above the site (length units)
Definition at line 296 of file ATMProfile.h.
References topAtmProfile_.
|
inline |
Accessor to the current Tropospheric Lapse Rate used in the object (temperature/length units)
Definition at line 252 of file ATMProfile.h.
References tropoLapseRate_.
|
inline |
Definition at line 465 of file ATMProfile.h.
References tropoLapseRateThreshold_.
|
inline |
Alternative setter for the ground altitude of site (length units).
Careful! It will remove or add layers if necessary. Ground values of T/P/h would change as well void setGroundAltitude(const Length &groundaltitude);Accessor to the altitude of the tropopause (length units)
Definition at line 293 of file ATMProfile.h.
References tropoAltitude_.
|
inline |
Accessor to the current Tropopause Temperature used in the object.
Definition at line 258 of file ATMProfile.h.
References tropoTemperature_.
|
inline |
Accessor to the current Water Vapor Scale Height in the object (length units)
Definition at line 264 of file ATMProfile.h.
References wvScaleHeight_.
|
inline |
Definition at line 467 of file ATMProfile.h.
References wvScaleHeightThreshold_.
|
protected |
|
protected |
|
private |
|
private |
|
private |
void AtmProfile::setAltitude | ( | const Length & | groundaltitude | ) |
setter for the ground altitude of site (length units).
Careful! It will remove or add layers if necessary. Ground values of T/P/h would change as well
|
inline |
Definition at line 469 of file ATMProfile.h.
References altitudeThreshold_.
bool AtmProfile::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.
altitude | the new altitude, a Length |
groundPressure | the Pressure at the ground level |
groundTemperature | the Temperature at the ground level |
tropoLapseRate | the tropospheric lapse rate |
relativeHumidity | the relative Humidity |
wvScaleHeight | the scale height of the water vapor, a Length |
void AtmProfile::setBasicAtmosphericParameterThresholds | ( | const Length & | altitudeThreshold, |
const Pressure & | groundPressureThreshold, | ||
const Temperature & | groundTemperatureThreshold, | ||
double | tropoLapseRateThreshold, | ||
const Humidity & | relativeHumidityThreshold, | ||
const Length & | wvScaleHeightThreshold | ||
) |
void setLayerSO2(const NumberDensity &layerSO2, unsigned int i) { setLayerSO2(i, layerSO2); }
|
inline |
Definition at line 470 of file ATMProfile.h.
References groundPressureThreshold_.
|
inline |
Definition at line 471 of file ATMProfile.h.
|
inline |
Setter for the average number density of CO in layer i in molecules/m**3 (allows to touch one layer each time once a profile has been defined)
Definition at line 412 of file ATMProfile.h.
References NumberDensity::get(), and v_layerCO_.
|
inline |
Setter for the average number density of N2O in layer i in molecules/m**3 (allows to touch one layer each time once a profile has been defined)
Definition at line 428 of file ATMProfile.h.
References NumberDensity::get(), and v_layerN2O_.
|
inline |
Setter for the average number density of NO2 in layer i in molecules/m**3 (allows to touch one layer each time once a profile has been defined)
Definition at line 436 of file ATMProfile.h.
References NumberDensity::get(), and v_layerNO2_.
|
inline |
Setter for the average number density of O3 in layer i in molecules/m**3 (allows to touch one layer each time once a profile has been defined)
Definition at line 420 of file ATMProfile.h.
References NumberDensity::get(), and v_layerO3_.
|
inline |
Setter for the average Pressure in layer i (allows to touch one layer each time once a profile has been defined)
Definition at line 404 of file ATMProfile.h.
References Pressure::get(), and v_layerPressure_.
|
inline |
Setter for the average number density of SO2 in layer i in molecules/m**3 (allows to touch one layer each time once a profile has been defined)
Definition at line 444 of file ATMProfile.h.
References NumberDensity::get(), and v_layerSO2_.
void AtmProfile::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 been defined)
void AtmProfile::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 defined).
We do not advise to use this one unless you change P and T accordingly
void AtmProfile::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 once a profile has been defined)
void AtmProfile::setLayerWaterVaporNumberDensity | ( | unsigned int | i, |
const NumberDensity & | layerWaterVapor | ||
) |
void setLayerWaterVaporMassDensity(const MassDensity &layerWaterVapor, unsigned int i) { setLayerWaterVaporMassDensity(i, layerWaterVapor); }
|
private |
|
protected |
returns error code: <0 unsuccessful
Method to update an atmospheric profile based on one or more new basic parameter(s)
altitude | the new altitude, a Length |
groundPressure | the Pressure at the ground level |
groundTemperature | the Temperature at the ground level |
tropoLapseRate | the tropospheric lapse rate |
relativeHumidity | the relative Humidity |
wvScaleHeight | the scale height of the water vapor, a Length |
|
protected |
Multiplicative factor for presure steps.
Example of pressure parameters: P_ground=550; DP: 10; DP1: 1.2 ==> The pressure levels will then be 550, 560, 572, 586.4, .... Altitude of the site (km)
Definition at line 495 of file ATMProfile.h.
Referenced by getAltitude(), and getGroundAltitude().
|
protected |
Definition at line 515 of file ATMProfile.h.
Referenced by getAltitudeThreshold(), and setAltitudeThreshold().
|
protected |
Fraction of last layer needed for some calculations.
Definition at line 498 of file ATMProfile.h.
|
protected |
Ground pressure at the site.
Definition at line 483 of file ATMProfile.h.
Referenced by getGroundPressure().
|
protected |
Definition at line 516 of file ATMProfile.h.
Referenced by getGroundPressureThreshold(), and setGroundPressureThreshold().
|
protected |
Ambient temperature at the site (K)
Definition at line 478 of file ATMProfile.h.
Referenced by getGroundTemperature().
|
protected |
Definition at line 517 of file ATMProfile.h.
Referenced by getGroundTemperatureThreshold().
|
protected |
Definition at line 522 of file ATMProfile.h.
|
protected |
Definition at line 499 of file ATMProfile.h.
|
protected |
Total number of layers in the output atmospheric profiles.
Definition at line 497 of file ATMProfile.h.
Referenced by getNumLayer().
|
protected |
Pressure basic step (mb)
Definition at line 488 of file ATMProfile.h.
Referenced by getPressureStep().
|
staticprivate |
Definition at line 564 of file ATMProfile.h.
|
protected |
Definition at line 489 of file ATMProfile.h.
Referenced by getPressureStepFactor().
|
staticprivate |
Definition at line 567 of file ATMProfile.h.
|
protected |
Definition at line 484 of file ATMProfile.h.
Referenced by getRelativeHumidity().
|
protected |
Definition at line 519 of file ATMProfile.h.
Referenced by getRelativeHumidityThreshold().
|
protected |
Top of atmospheric profile (km)
Definition at line 496 of file ATMProfile.h.
Referenced by getTopAtmProfile().
|
staticprivate |
static double pSFd; // = 1.2;
Definition at line 572 of file ATMProfile.h.
|
protected |
Altitude where tropopause starts.
Definition at line 482 of file ATMProfile.h.
Referenced by getTropopauseAltitude().
|
protected |
tropospheric lapse rate in K/km
Definition at line 479 of file ATMProfile.h.
Referenced by getTropoLapseRate().
|
protected |
Definition at line 518 of file ATMProfile.h.
Referenced by getTropoLapseRateThreshold().
|
protected |
Layer where tropopause starts.
Definition at line 481 of file ATMProfile.h.
|
protected |
Temperature at the tropopause.
Definition at line 480 of file ATMProfile.h.
Referenced by getTropopauseTemperature().
|
protected |
1: tropical, 2: midlatSummer, 3: midlatWinter, 4: subarcticSummer, 5: subarcticWinter
Definition at line 471 of file ATMProfile.h.
|
protected |
CO in molecules per m**3.
Definition at line 510 of file ATMProfile.h.
Referenced by getLayerCO(), and setLayerCO().
|
protected |
N2O in molecules per m**3.
Definition at line 512 of file ATMProfile.h.
Referenced by getLayerN2O(), and setLayerN2O().
|
protected |
NO2 in molecules per m**3.
Definition at line 513 of file ATMProfile.h.
Referenced by getLayerNO2(), and setLayerNO2().
|
protected |
O3 in molecules per m**3.
Definition at line 511 of file ATMProfile.h.
Referenced by getLayerO3(), and setLayerO3().
|
protected |
Pressure at bottom of layers (mb)
Definition at line 508 of file ATMProfile.h.
|
protected |
Pressure at top of layers (mb)
Definition at line 509 of file ATMProfile.h.
|
protected |
Pressure of layers (mb)
Definition at line 507 of file ATMProfile.h.
Referenced by setLayerPressure().
|
protected |
SO2 in molecules per m**3.
Definition at line 514 of file ATMProfile.h.
Referenced by getLayerSO2(), and setLayerSO2().
|
protected |
Temp. at bottom of layers (K)
Definition at line 502 of file ATMProfile.h.
|
protected |
Temp. at top of layer (K)
Definition at line 503 of file ATMProfile.h.
|
protected |
Temp. of layers (K)
Definition at line 501 of file ATMProfile.h.
|
protected |
Thickness of layer (m)
Definition at line 500 of file ATMProfile.h.
|
protected |
Water vapor kg/m**3 at bottom of layer.
Definition at line 505 of file ATMProfile.h.
|
protected |
Water vapor kg/m**3 at top of layer.
Definition at line 506 of file ATMProfile.h.
|
protected |
Average water vapor kg/m**3 in the layer.
Definition at line 504 of file ATMProfile.h.
|
protected |
Relative humidity at the site (%)
used only to make an estimate of the water vapor column, first guess)
scale height of water vapor distribution (km)
Definition at line 487 of file ATMProfile.h.
Referenced by getWvScaleHeight().
|
protected |
Definition at line 520 of file ATMProfile.h.
Referenced by getWvScaleHeightThreshold().