Source
Opacity getH2OLinesOpacityUpTo(unsigned int spwid, unsigned int nc, Length refalti){ if(!spwidAndIndexAreValid(spwid, nc)) return (double) -999.0; return getH2OLinesOpacityUpTo(v_transfertId_[spwid] + nc, refalti);}
/*******************************************************************************
* ALMA - Atacama Large Millimiter Array
* (c) Instituto de Estructura de la Materia, 2009
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* "@(#) $Id: ATMSkyStatus.h Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* pardo 24/03/09 created
*/
//#include <math.h>
using std::string;
using std::vector;
ATM_NAMESPACE_BEGIN
/*! \brief From the layerThickness and layerTemperature arrays (from AtmProfile),
* the RefractiveIndexProfile array, and a brightness temperature measured to
* the sky at the corresponding frequency, this Class retrieves the water vapor
* column that corresponds to the measurement.
*
* The strating point will therefore be an RefractiveIndexProfile object form
* which the essential information will be inherited: layerThickness,
* layerTemperature vectors (these two inherited themselves from AtmProfile),
* and absTotalDry and absTotalWet arrays. The numerical methods
* will be an iteration wh2o to match the measured brightness temperature
*/
class SkyStatus: public RefractiveIndexProfile
{
public:
//@{
/** The basic constructor. It will allow to perform forward radiative transfer enquires in
* the spectral bands of refractiveIndexProfile, and to use some of these bands for water vapor retrievals.
* The basic constructor needs at least an RefractiveIndexProfile object (it brings the spectral information via the
* SpectralGrid object inherited by it). Additional inputs can be the
* Air mass (default 1.0), sky background temperature (default 2.73 K), and user water vapor column (default 1 mm).
* Methods inside the class allow to retrieve the water vapor column and eventually update the user value to the retrieved one.
* In order to perform such retrievals, the numerical methods will need as inputs the measured T_EBBs towards the sky in
* some spectral bands that will be designed as water vapor radiometry channels. The sideband gains and coupling to the sky
* of these vapor radiometry channels should also be inputs of the retrieval methods, otherwise they will be set to default
* values. See documentation ef particular methods for more information.
*/
SkyStatus(const RefractiveIndexProfile &refractiveIndexProfile);
/** Class constructor with additional inputs */
SkyStatus(const RefractiveIndexProfile &refractiveIndexProfile,
double airMass);
/** Class constructor with additional inputs */
SkyStatus(const RefractiveIndexProfile &refractiveIndexProfile,
const Temperature &temperatureBackground);
/** Class constructor with additional inputs */
SkyStatus(const RefractiveIndexProfile &refractiveIndexProfile,
const Length &wh2o);
/** Class constructor with additional inputs */
SkyStatus(const RefractiveIndexProfile &refractiveIndexProfile,
const Temperature &temperatureBackground,
double airMass);
/** Class constructor with additional inputs */
SkyStatus(const RefractiveIndexProfile &refractiveIndexProfile,
double airMass,
const Temperature &temperatureBackground);