casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ATMRefractiveIndexProfile.h
Go to the documentation of this file.
1 #ifndef _ATM_REFRACTIVEINDEXPROFILE_H
2 #define _ATM_REFRACTIVEINDEXPROFILE_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: ATMRefractiveIndexProfile.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 "ATMAngle.h"
33 #include "ATMCommon.h"
34 #include "ATMInverseLength.h"
35 #include "ATMOpacity.h"
36 #include "ATMProfile.h"
37 #include "ATMSpectralGrid.h"
38 #include "ATMRefractiveIndex.h"
39 
40 #include <complex>
41 
43 
59 {
60 public:
61 
63 
66  RefractiveIndexProfile(const Frequency &frequency,
67  const AtmProfile &atmProfile);
68 
72  RefractiveIndexProfile(const SpectralGrid &spectralGrid,
73  const AtmProfile &atmProfile);
74 
78 
80 
81  virtual ~RefractiveIndexProfile();
82 
84 
86 
101  bool setBasicAtmosphericParameters(const Length &altitude,
102  const Pressure &groundPressure,
103  const Temperature &groundTemperature,
104  double tropoLapseRate,
105  const Humidity &relativeHumidity,
106  const Length &wvScaleHeight);
108 
110 
112  inline void addNewSpectralWindow(unsigned int numChan,
113  unsigned int refChan,
114  const Frequency &refFreq,
115  const Frequency &chanSep)
116  {
117  SpectralGrid::add(numChan, refChan, refFreq, chanSep);
119  }
121  inline void addNewSpectralWindow(unsigned int numChan,
122  unsigned int refChan,
123  double* chanFreq,
124  const string &freqUnits)
125  {
126  SpectralGrid::add(numChan, refChan, chanFreq, freqUnits);
128  }
130  inline void addNewSpectralWindow(unsigned int numChan,
131  double refFreq,
132  double* chanFreq,
133  const string &freqUnits)
134  {
135  SpectralGrid::add(numChan, refFreq, chanFreq, freqUnits);
137  }
139  inline void addNewSpectralWindow(unsigned int numChan,
140  double refFreq,
141  const vector<double> &chanFreq,
142  const string &freqUnits)
143  {
144  SpectralGrid::add(numChan, refFreq, chanFreq, freqUnits);
146  }
148  inline void addNewSpectralWindow(unsigned int numChan,
149  unsigned int refChan,
150  const Frequency &refFreq,
151  const Frequency &chanSep,
152  const Frequency &intermediateFreq,
153  const SidebandSide &sbSide,
154  const SidebandType &sbType)
155  {
156  SpectralGrid::add(numChan,
157  refChan,
158  refFreq,
159  chanSep,
160  intermediateFreq,
161  sbSide,
162  sbType);
164  }
165  inline void addNewSpectralWindow(const vector<Frequency> &chanFreq)
166  {
167  SpectralGrid::add(chanFreq);
169  }
170 
172  inline unsigned int getNumIndividualFrequencies() const
173  {
174  return v_chanFreq_.size();
175  }
176 
179  inline double getFrequency() const
180  {
181  return getChanFreq(0).get();
182  }
183 
187  inline double getFrequency(const string &freqUnits) const
188  {
189  return getChanFreq(0).get(freqUnits);
190  }
192 
194 
195  InverseLength getAbsH2OLines(unsigned int nl) const
196  {
197  return InverseLength(imag((vv_N_H2OLinesPtr_[0]->at(nl))), "m-1");
198  }
200  InverseLength getAbsH2OLines(unsigned int nf, unsigned int nl) const
201  {
202  return InverseLength(imag((vv_N_H2OLinesPtr_[nf]->at(nl))), "m-1");
203  }
205  InverseLength getAbsH2OLines(unsigned int spwid,
206  unsigned int nf,
207  unsigned int nl) const
208  {
209  unsigned int j = v_transfertId_[spwid] + nf;
210  return InverseLength(imag((vv_N_H2OLinesPtr_[j]->at(nl))), "m-1");
211  }
212 
214  InverseLength getAbsH2OCont(unsigned int nl) const
215  {
216  return InverseLength(imag((vv_N_H2OContPtr_[0]->at(nl))), "m-1");
217  }
219  InverseLength getAbsH2OCont(unsigned int nf, unsigned int nl) const
220  {
221  return InverseLength(imag((vv_N_H2OContPtr_[nf]->at(nl))), "m-1");
222  }
224  InverseLength getAbsH2OCont(unsigned int spwid,
225  unsigned int nf,
226  unsigned int nl) const
227  {
228  unsigned int j = v_transfertId_[spwid] + nf;
229  return InverseLength(imag((vv_N_H2OContPtr_[j]->at(nl))), "m-1");
230  }
231 
233  InverseLength getAbsO2Lines(unsigned int nl) const
234  {
235  return InverseLength(imag((vv_N_O2LinesPtr_[0]->at(nl))), "m-1");
236  }
238  InverseLength getAbsO2Lines(unsigned int nf, unsigned int nl) const
239  {
240  return InverseLength(imag((vv_N_O2LinesPtr_[nf]->at(nl))), "m-1");
241  }
243  InverseLength getAbsO2Lines(unsigned int spwid,
244  unsigned int nf,
245  unsigned int nl) const
246  {
247  unsigned int j = v_transfertId_[spwid] + nf;
248  return InverseLength(imag((vv_N_O2LinesPtr_[j]->at(nl))), "m-1");
249  }
250 
252  InverseLength getAbsDryCont(unsigned int nl) const
253  {
254  return InverseLength(imag((vv_N_DryContPtr_[0]->at(nl))), "m-1");
255  }
257  InverseLength getAbsDryCont(unsigned int nf, unsigned int nl) const
258  {
259  return InverseLength(imag((vv_N_DryContPtr_[nf]->at(nl))), "m-1");
260  }
262  InverseLength getAbsDryCont(unsigned int spwid,
263  unsigned int nf,
264  unsigned int nl) const
265  {
266  unsigned int j = v_transfertId_[spwid] + nf;
267  return InverseLength(imag((vv_N_DryContPtr_[j]->at(nl))), "m-1");
268  }
269 
271  InverseLength getAbsO3Lines(unsigned int nl) const
272  {
273  return InverseLength(imag((vv_N_O3LinesPtr_[0]->at(nl))), "m-1");
274  }
276  InverseLength getAbsO3Lines(unsigned int nf, unsigned int nl) const
277  {
278  return InverseLength(imag((vv_N_O3LinesPtr_[nf]->at(nl))), "m-1");
279  }
281  InverseLength getAbsO3Lines(unsigned int spwid,
282  unsigned int nf,
283  unsigned int nl) const
284  {
285  unsigned int j = v_transfertId_[spwid] + nf;
286  return InverseLength(imag((vv_N_O3LinesPtr_[j]->at(nl))), "m-1");
287  }
288 
290  InverseLength getAbsCOLines(unsigned int nl) const
291  {
292  return InverseLength(imag((vv_N_COLinesPtr_[0]->at(nl))), "m-1");
293  }
295  InverseLength getAbsCOLines(unsigned int nf, unsigned int nl) const
296  {
297  return InverseLength(imag((vv_N_COLinesPtr_[nf]->at(nl))), "m-1");
298  }
300  InverseLength getAbsCOLines(unsigned int spwid,
301  unsigned int nf,
302  unsigned int nl) const
303  {
304  unsigned int j = v_transfertId_[spwid] + nf;
305  return InverseLength(imag((vv_N_COLinesPtr_[j]->at(nl))), "m-1");
306  }
307 
308 
309 
311  InverseLength getAbsN2OLines(unsigned int nl) const
312  {
313  return InverseLength(imag((vv_N_N2OLinesPtr_[0]->at(nl))), "m-1");
314  }
316  InverseLength getAbsN2OLines(unsigned int nf, unsigned int nl) const
317  {
318  return InverseLength(imag((vv_N_N2OLinesPtr_[nf]->at(nl))), "m-1");
319  }
321  InverseLength getAbsN2OLines(unsigned int spwid,
322  unsigned int nf,
323  unsigned int nl) const
324  {
325  unsigned int j = v_transfertId_[spwid] + nf;
326  return InverseLength(imag((vv_N_N2OLinesPtr_[j]->at(nl))), "m-1");
327  }
328 
330  InverseLength getAbsNO2Lines(unsigned int nl) const
331  {
332  return InverseLength(imag((vv_N_NO2LinesPtr_[0]->at(nl))), "m-1");
333  }
335  InverseLength getAbsNO2Lines(unsigned int nf, unsigned int nl) const
336  {
337  return InverseLength(imag((vv_N_NO2LinesPtr_[nf]->at(nl))), "m-1");
338  }
340  InverseLength getAbsNO2Lines(unsigned int spwid,
341  unsigned int nf,
342  unsigned int nl) const
343  {
344  unsigned int j = v_transfertId_[spwid] + nf;
345  return InverseLength(imag((vv_N_NO2LinesPtr_[j]->at(nl))), "m-1");
346  }
347 
348 
350  InverseLength getAbsSO2Lines(unsigned int nl) const
351  {
352  return InverseLength(imag((vv_N_SO2LinesPtr_[0]->at(nl))), "m-1");
353  }
355  InverseLength getAbsSO2Lines(unsigned int nf, unsigned int nl) const
356  {
357  return InverseLength(imag((vv_N_SO2LinesPtr_[nf]->at(nl))), "m-1");
358  }
360  InverseLength getAbsSO2Lines(unsigned int spwid,
361  unsigned int nf,
362  unsigned int nl) const
363  {
364  unsigned int j = v_transfertId_[spwid] + nf;
365  return InverseLength(imag((vv_N_SO2LinesPtr_[j]->at(nl))), "m-1");
366  }
367 
368 
369 
370 
371 
373  InverseLength getAbsTotalDry(unsigned int nl) const
374  {
375  return getAbsTotalDry(nl, 0);
376  }
378  InverseLength getAbsTotalDry(unsigned int nf, unsigned int nl) const
379  {
380  return InverseLength(imag(
381  vv_N_O2LinesPtr_[nf]->at(nl)
382  + vv_N_DryContPtr_[nf]->at(nl) + vv_N_O3LinesPtr_[nf]->at(nl)
383  + vv_N_COLinesPtr_[nf]->at(nl) + vv_N_N2OLinesPtr_[nf]->at(nl)
384  + vv_N_NO2LinesPtr_[nf]->at(nl) + vv_N_SO2LinesPtr_[nf]->at(nl)), "m-1");
385  }
387  InverseLength getAbsTotalDry(unsigned int spwid,
388  unsigned int nf,
389  unsigned int nl) const
390  {
391  unsigned int j = v_transfertId_[spwid] + nf;
392  return InverseLength(imag(
393  vv_N_O2LinesPtr_[j]->at(nl)
394  + vv_N_DryContPtr_[j]->at(nl) + vv_N_O3LinesPtr_[j]->at(nl)
395  + vv_N_COLinesPtr_[j]->at(nl) + vv_N_N2OLinesPtr_[j]->at(nl)
396  + vv_N_NO2LinesPtr_[j]->at(nl) + vv_N_SO2LinesPtr_[j]->at(nl)), "m-1");
397  }
398 
400  InverseLength getAbsTotalWet(unsigned int nl) const
401  {
402  return getAbsTotalWet(nl, 0);
403  }
405  InverseLength getAbsTotalWet(unsigned int nf, unsigned int nl) const
406  {
407  return InverseLength(imag((vv_N_H2OLinesPtr_[nf]->at(nl)
408  + vv_N_H2OContPtr_[nf]->at(nl))), "m-1");
409  }
411  InverseLength getAbsTotalWet(unsigned int spwid,
412  unsigned int nf,
413  unsigned int nl) const
414  {
415  unsigned int j = v_transfertId_[spwid] + nf;
416  return InverseLength(imag((vv_N_H2OLinesPtr_[j]->at(nl)
417  + vv_N_H2OContPtr_[j]->at(nl))), "m-1");
418  }
419 
420  Opacity getAverageO2LinesOpacity(unsigned int spwid);
421  Opacity getAverageO3LinesOpacity(unsigned int spwid);
422  Opacity getAverageN2OLinesOpacity(unsigned int spwid);
423  Opacity getAverageNO2LinesOpacity(unsigned int spwid);
424  Opacity getAverageSO2LinesOpacity(unsigned int spwid);
425  Opacity getAverageCOLinesOpacity(unsigned int spwid);
426  Opacity getAverageDryContOpacity(unsigned int spwid);
427 
430  Opacity getDryOpacityUpTo(Length refalti){return getDryOpacityUpTo(0,refalti);}
432  Opacity getDryOpacity(unsigned int nc);
433  Opacity getDryOpacityUpTo(unsigned int nc, Length refalti);
434  Opacity getDryOpacity(unsigned int spwid, unsigned int nc){ if(!spwidAndIndexAreValid(spwid, nc)) return Opacity(-999.0); return getDryOpacity(v_transfertId_[spwid] + nc);}
435  Opacity getDryOpacityUpTo(unsigned int spwid, unsigned int nc, Length refalti)
436  {
437  if(!spwidAndIndexAreValid(spwid, nc))return Opacity(-999.0);
438  return getDryOpacityUpTo(v_transfertId_[spwid] + nc, refalti);
439  }
440  Opacity getAverageDryOpacity(unsigned int spwid);
441 
445  Opacity getDryContOpacity(unsigned int nc);
446  Opacity getDryContOpacity(unsigned int spwid, unsigned int nc);
450  Opacity getO2LinesOpacity(unsigned int nc);
451  Opacity getO2LinesOpacity(unsigned int spwid, unsigned int nc);
455  Opacity getO3LinesOpacity(unsigned int nc);
456  Opacity getO3LinesOpacity(unsigned int spwid, unsigned int nc);
460  Opacity getCOLinesOpacity(unsigned int nc);
461  Opacity getCOLinesOpacity(unsigned int spwid, unsigned int nc);
465  Opacity getN2OLinesOpacity(unsigned int nc);
466  Opacity getN2OLinesOpacity(unsigned int spwid, unsigned int nc);
470  Opacity getNO2LinesOpacity(unsigned int nc);
471  Opacity getNO2LinesOpacity(unsigned int spwid, unsigned int nc);
475  Opacity getSO2LinesOpacity(unsigned int nc);
476  Opacity getSO2LinesOpacity(unsigned int spwid, unsigned int nc);
477 
484  Opacity getWetOpacity(const Length &integratedwatercolumn);
489  Opacity getWetOpacity(const Length &integratedwatercolumn, unsigned int nc);
494  Opacity getWetOpacity(const Length &integratedwatercolumn, unsigned int spwid, unsigned int nc);
505  Opacity getH2OLinesOpacity(const Length &integratedwatercolumn);
509  Opacity getH2OLinesOpacity(const Length &integratedwatercolumn, unsigned int nc);
513  Opacity getH2OLinesOpacity(const Length &integratedwatercolumn, unsigned int spwid, unsigned int nc);
523  Opacity getH2OContOpacity(const Length &integratedwatercolumn);
527  Opacity getH2OContOpacity(const Length &integratedwatercolumn, unsigned int nc);
531  Opacity getH2OContOpacity(const Length &integratedwatercolumn, unsigned int spwid, unsigned int nc);
532 
533 
534 
535 
536 
537  Opacity getAverageWetOpacity(const Length &integratedwatercolumn, unsigned int spwid);
538  Opacity getAverageH2OLinesOpacity(const Length &integratedwatercolumn, unsigned int spwid);
539  Opacity getAverageH2OContOpacity(const Length &integratedwatercolumn, unsigned int spwid);
540 
552  Angle getNonDispersiveDryPhaseDelay(unsigned int nc);
556  Length getNonDispersiveDryPathLength(unsigned int nc);
560  Angle getNonDispersiveDryPhaseDelay(unsigned int spwid, unsigned int nc);
564  Length getNonDispersiveDryPathLength(unsigned int spwid, unsigned int nc);
565 
577  Angle getDispersiveDryPhaseDelay(unsigned int nc);
581  Length getDispersiveDryPathLength(unsigned int nc);
585  Angle getDispersiveDryPhaseDelay(unsigned int spwid, unsigned int nc);
589  Length getDispersiveDryPathLength(unsigned int spwid, unsigned int nc);
590 
592  Length getAverageNonDispersiveDryPathLength(unsigned int spwid);
594  Length getAverageDispersiveDryPathLength(unsigned int spwid);
596  Angle getAverageNonDispersiveDryPhaseDelay(unsigned int spwid);
598  Angle getAverageDispersiveDryPhaseDelay(unsigned int spwid);
599 
611  Angle getO2LinesPhaseDelay(unsigned int nc);
615  Length getO2LinesPathLength(unsigned int nc);
619  Angle getO2LinesPhaseDelay(unsigned int spwid, unsigned int nc);
621  Angle getAverageO2LinesPhaseDelay(unsigned int spwid);
625  Length getO2LinesPathLength(unsigned int spwid, unsigned int nc);
627  Length getAverageO2LinesPathLength(unsigned int spwid);
628 
640  Angle getO3LinesPhaseDelay(unsigned int nc);
644  Length getO3LinesPathLength(unsigned int nc);
648  Angle getO3LinesPhaseDelay(unsigned int spwid, unsigned int nc);
650  Angle getAverageO3LinesPhaseDelay(unsigned int spwid);
654  Length getO3LinesPathLength(unsigned int spwid, unsigned int nc);
656  Length getAverageO3LinesPathLength(unsigned int spwid);
657 
669  Angle getCOLinesPhaseDelay(unsigned int nc);
673  Length getCOLinesPathLength(unsigned int nc);
677  Angle getCOLinesPhaseDelay(unsigned int spwid, unsigned int nc);
679  Angle getAverageCOLinesPhaseDelay(unsigned int spwid);
683  Length getCOLinesPathLength(unsigned int spwid, unsigned int nc);
685  Length getAverageCOLinesPathLength(unsigned int spwid);
686 
687 
688 
689 
701  Angle getN2OLinesPhaseDelay(unsigned int nc);
705  Length getN2OLinesPathLength(unsigned int nc);
709  Angle getN2OLinesPhaseDelay(unsigned int spwid, unsigned int nc);
711  Angle getAverageN2OLinesPhaseDelay(unsigned int spwid);
715  Length getN2OLinesPathLength(unsigned int spwid, unsigned int nc);
717  Length getAverageN2OLinesPathLength(unsigned int spwid);
718 
719 
720 
732  Angle getNO2LinesPhaseDelay(unsigned int nc);
736  Length getNO2LinesPathLength(unsigned int nc);
740  Angle getNO2LinesPhaseDelay(unsigned int spwid, unsigned int nc);
742  Angle getAverageNO2LinesPhaseDelay(unsigned int spwid);
746  Length getNO2LinesPathLength(unsigned int spwid, unsigned int nc);
748  Length getAverageNO2LinesPathLength(unsigned int spwid);
749 
750 
762  Angle getSO2LinesPhaseDelay(unsigned int nc);
766  Length getSO2LinesPathLength(unsigned int nc);
770  Angle getSO2LinesPhaseDelay(unsigned int spwid, unsigned int nc);
772  Angle getAverageSO2LinesPhaseDelay(unsigned int spwid);
776  Length getSO2LinesPathLength(unsigned int spwid, unsigned int nc);
778  Length getAverageSO2LinesPathLength(unsigned int spwid);
779 
780 
781 
782 
783 
784 
785 
786 
787 
795  Angle getDispersiveH2OPhaseDelay(const Length &integratedwatercolumn);
803  Length getDispersiveH2OPathLength(const Length &integratedwatercolumn);
807  Angle getDispersiveH2OPhaseDelay(const Length &integratedwatercolumn, unsigned int nc);
811  Length getDispersiveH2OPathLength(const Length &integratedwatercolumn, unsigned int nc);
815  Angle getDispersiveH2OPhaseDelay(const Length &integratedwatercolumn, unsigned int spwid, unsigned int nc);
817  Angle getAverageDispersiveH2OPhaseDelay(const Length &integratedwatercolumn, unsigned int spwid);
821  Length getDispersiveH2OPathLength(const Length &integratedwatercolumn, unsigned int spwid, unsigned int nc);
823  Length getAverageDispersiveH2OPathLength(const Length &integratedwatercolumn, unsigned int spwid);
831  Angle getNonDispersiveH2OPhaseDelay(const Length &integratedwatercolumn);
839  Length getNonDispersiveH2OPathLength(const Length &integratedwatercolumn);
843  Angle getNonDispersiveH2OPhaseDelay(const Length &integratedwatercolumn, unsigned int nc);
847  Length getNonDispersiveH2OPathLength(const Length &integratedwatercolumn, unsigned int nc);
851  Angle getNonDispersiveH2OPhaseDelay(const Length &integratedwatercolumn, unsigned int spwid, unsigned int nc);
853  Length getAverageNonDispersiveH2OPathLength(const Length &integratedwatercolumn, unsigned int spwid);
855  Angle getAverageNonDispersiveH2OPhaseDelay(const Length &integratedwatercolumn, unsigned int spwid);
859  Length getNonDispersiveH2OPathLength(const Length &integratedwatercolumn, unsigned int spwid, unsigned int nc);
860 
862 
864 
865 protected:
866 
867  vector<vector<std::complex<double> >*> vv_N_H2OLinesPtr_;
868  vector<vector<std::complex<double> >*> vv_N_H2OContPtr_;
869  vector<vector<std::complex<double> >*> vv_N_O2LinesPtr_;
870  vector<vector<std::complex<double> >*> vv_N_DryContPtr_;
871  vector<vector<std::complex<double> >*> vv_N_O3LinesPtr_;
872  vector<vector<std::complex<double> >*> vv_N_COLinesPtr_;
873  vector<vector<std::complex<double> >*> vv_N_N2OLinesPtr_;
874  vector<vector<std::complex<double> >*> vv_N_NO2LinesPtr_;
875  vector<vector<std::complex<double> >*> vv_N_SO2LinesPtr_;
876 
877  /* vecteur de vecteurs ???? */
878 
882  void mkRefractiveIndexProfile();
883  void rmRefractiveIndexProfile();
884 
885  bool updateRefractiveIndexProfile(const Length &altitude,
886  const Pressure &groundPressure,
887  const Temperature &groundTemperature,
888  double tropoLapseRate,
889  const Humidity &relativeHumidity,
890  const Length &wvScaleHeight);
891 
903  bool chanIndexIsValid(unsigned int nc);
914  bool spwidAndIndexAreValid(unsigned int spwid, unsigned int idx);
915 }; // class RefractiveIndexProfile
916 
918 
919 #endif
#define ATM_NAMESPACE_END
Definition: ATMCommon.h:38
Length getCOLinesPathLength()
Function to retrieve the integrated Atmospheric Path length (due to CO Lines) along the atmospheric p...
InverseLength getAbsDryCont(unsigned int nl) const
Function to retrieve Dry continuum Absorption Coefficient at layer nl, for single frequency Refractiv...
Opacity getAverageO2LinesOpacity(unsigned int spwid)
Angle getAverageN2OLinesPhaseDelay(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (due to N2O Lines) in spectral Wi...
Angle getAverageNonDispersiveDryPhaseDelay(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (Dry part) in spectral Window spw...
Opacity getAverageNO2LinesOpacity(unsigned int spwid)
InverseLength getAbsH2OLines(unsigned int nf, unsigned int nl) const
Accessor to get H2O lines Absorption Coefficient at layer nl and frequency channel nf...
InverseLength getAbsO2Lines(unsigned int nl) const
Function to retrieve O2 lines Absorption Coefficient at layer nl, for single frequency RefractiveInde...
std::vector< unsigned int > v_transfertId_
Spectral grid defined as a list of frequencies with basic complementary informations.
Angle getAverageO2LinesPhaseDelay(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (due to O2 Lines) in spectral Win...
bool updateRefractiveIndexProfile(const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight)
Length getO2LinesPathLength()
Function to retrieve the integrated Atmospheric Path length (due to O2 Lines) along the atmospheric p...
Opacity getAverageDryContOpacity(unsigned int spwid)
InverseLength getAbsO2Lines(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve O2 lines Absorption Coefficient at layer nl, spectral window spwid and channel n...
unsigned int getNumIndividualFrequencies() const
Accessor to total number of Frequency points in the SpectralGrid object.
Opacity getO2LinesOpacity()
Function to retrieve the integrated O2 Lines Opacity along the atmospheric path for single frequency ...
Angle getAverageNonDispersiveH2OPhaseDelay(const Length &integratedwatercolumn, unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (Non-Dispersive part) in spectral...
bool setBasicAtmosphericParameters(const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight)
Setter to update the AtmProfile and RefractiveIndexProfile if some basic atmospheric parameter has ch...
Length getO3LinesPathLength()
Function to retrieve the integrated Atmospheric Path length (due to O3 Lines) along the atmospheric p...
Angle getCOLinesPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (due to CO lines) along the atmospheric p...
ATM_NAMESPACE_BEGIN typedef ATM_NAMESPACE::Percent Humidity
Definition: ATMHumidity.h:37
void addNewSpectralWindow(unsigned int numChan, double refFreq, const vector< double > &chanFreq, const string &freqUnits)
Setter of new spectral windows (adds frequencies to the SpectralGrid and calculates the corresponding...
Opacity getAverageN2OLinesOpacity(unsigned int spwid)
Length getGroundWH2O() const
Method to get the zenith column of water vapor.
Opacity getAverageH2OContOpacity(const Length &integratedwatercolumn, unsigned int spwid)
LatticeExprNode imag(const LatticeExprNode &expr)
bool spwidAndIndexAreValid(unsigned int spwid, unsigned int idx)
Method to assess if a channel frequency index of a given spectral window is valid.
void mkRefractiveIndexProfile()
Method to build the profile of the absorption coefficients,.
InverseLength getAbsH2OLines(unsigned int spwid, unsigned int nf, unsigned int nl) const
Accessor to get H2O Continuum Absorption Coefficient at layer nl, spectral window spwid and channel n...
Angle getNonDispersiveH2OPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (Non-Dispersive part) along the atmospher...
InverseLength getAbsO3Lines(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve O3 lines Absorption Coefficient at layer nl, spectral window spwid and channel n...
Length getNO2LinesPathLength()
Function to retrieve the integrated Atmospheric Path length (due to NO2 Lines) along the atmospheric ...
vector< vector< std::complex< double > > * > vv_N_H2OContPtr_
H2O continuum absorption coefficient and delay term (rad m^-1,m^-1)
InverseLength getAbsNO2Lines(unsigned int nf, unsigned int nl) const
Function to retrieve NO2 lines Absorption Coefficient at layer nl and frequency channel nf...
Opacity getN2OLinesOpacity()
Function to retrieve the integrated N2O Lines Opacity along the atmospheric path for single frequency...
InverseLength getAbsNO2Lines(unsigned int nl) const
Function to retrieve NO2 lines Absorption Coefficient at layer nl, for single frequency RefractiveInd...
Angle getO3LinesPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (due to O3 lines) along the atmospheric p...
InverseLength getAbsH2OCont(unsigned int spwid, unsigned int nf, unsigned int nl) const
Accessor to get H2O Continuum Absorption Coefficient at layer nl, spectral window spwid and channel n...
Length getAverageDispersiveH2OPathLength(const Length &integratedwatercolumn, unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (Dispersive part) in spectral Win...
SidebandType
Defines the kind of sideband separations.
void addNewSpectralWindow(const vector< Frequency > &chanFreq)
InverseLength getAbsN2OLines(unsigned int nf, unsigned int nl) const
Function to retrieve N2O lines Absorption Coefficient at layer nl and frequency channel nf...
Opacity getAverageWetOpacity(const Length &integratedwatercolumn, unsigned int spwid)
Length getSO2LinesPathLength()
Function to retrieve the integrated Atmospheric Path length (due to SO2 Lines) along the atmospheric ...
InverseLength getAbsTotalDry(unsigned int nl) const
Function to retrieve total Dry Absorption Coefficient at layer nl, for single frequency RefractiveInd...
void addNewSpectralWindow(unsigned int numChan, unsigned int refChan, double *chanFreq, const string &freqUnits)
Setter of new spectral windows (adds frequencies to the SpectralGrid and calculates the corresponding...
InverseLength getAbsNO2Lines(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve NO2 lines Absorption Coefficient at layer nl, spectral window spwid and channel ...
Length getN2OLinesPathLength()
Function to retrieve the integrated Atmospheric Path length (due to N2O Lines) along the atmospheric ...
void addNewSpectralWindow(unsigned int numChan, unsigned int refChan, const Frequency &refFreq, const Frequency &chanSep, const Frequency &intermediateFreq, const SidebandSide &sbSide, const SidebandType &sbType)
Setter of new spectral windows (adds frequencies to the SpectralGrid and calculates the corresponding...
Opacity getDryContOpacity()
Function to retrieve the integrated Dry Continuum Opacity along the atmospheric path for single frequ...
void addNewSpectralWindow(unsigned int numChan, double refFreq, double *chanFreq, const string &freqUnits)
Setter of new spectral windows (adds frequencies to the SpectralGrid and calculates the corresponding...
Opacity getDryOpacity()
Function to retrieve the integrated Dry Opacity along the atmospheric path for single frequency Refra...
Opacity getCOLinesOpacity()
Function to retrieve the integrated CO Lines Opacity along the atmospheric path for single frequency ...
Angle getN2OLinesPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (due to N2O lines) along the atmospheric ...
Opacity getAverageSO2LinesOpacity(unsigned int spwid)
InverseLength getAbsO2Lines(unsigned int nf, unsigned int nl) const
Function to retrieve O2 lines Absorption Coefficient at layer nl and frequency channel nf...
Length getDispersiveDryPathLength()
Function to retrieve the integrated Atmospheric Path length (Dry part) along the atmospheric path cor...
InverseLength getAbsH2OCont(unsigned int nf, unsigned int nl) const
Accessor to get H2O Continuum Absorption Coefficient at layer nl and frequency channel nf...
Angle getAverageO3LinesPhaseDelay(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (due to O3 Lines) in spectral Win...
vector< vector< std::complex< double > > * > vv_N_DryContPtr_
Dry continuum absorption coefficient and delay term (rad m^-1,m^-1)
InverseLength getAbsN2OLines(unsigned int nl) const
Function to retrieve N2O lines Absorption Coefficient at layer nl, for single frequency RefractiveInd...
Opacity getAverageO3LinesOpacity(unsigned int spwid)
vector< vector< std::complex< double > > * > vv_N_SO2LinesPtr_
SO2 lines absorption coefficient and delay term (rad m^-1,m^-1)
Opacity getH2OLinesOpacity()
Function to retrieve the integrated H2O Lines Opacity along the atmospheric path corresponding to a g...
Class for those physical parameters having dimensions of Inverse Length [L^-1].
SidebandSide
Defines the side of a sideband.
vector< vector< std::complex< double > > * > vv_N_NO2LinesPtr_
NO2 lines absorption coefficient and delay term (rad m^-1,m^-1)
Opacity getSO2LinesOpacity()
Function to retrieve the integrated SO2 Lines Opacity along the atmospheric path for single frequency...
InverseLength getAbsCOLines(unsigned int nl) const
Function to retrieve CO lines Absorption Coefficient at layer nl, for single frequency RefractiveInde...
Opacity getDryOpacityUpTo(Length refalti)
Angle getSO2LinesPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (due to SO2 lines) along the atmospheric ...
double getFrequency(const string &freqUnits) const
Accessor to the single frequency (or the frequency of the first grid point in case of a spectrum) in ...
InverseLength getAbsDryCont(unsigned int nf, unsigned int nl) const
Function to retrieve Dry continuum Absorption Coefficient at layer nl and frequency channel nf...
#define ATM_NAMESPACE_BEGIN
Definition: ATMCommon.h:37
InverseLength getAbsSO2Lines(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve SO2 lines Absorption Coefficient at layer nl, spectral window spwid and channel ...
Angle getAverageNO2LinesPhaseDelay(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (due to NO2 Lines) in spectral Wi...
Length getAverageDispersiveDryPathLength(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (Dry part) in spectral Window spw...
InverseLength getAbsTotalWet(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve total Wet Absorption Coefficient at layer nl, spectral window spwid and channel ...
Length getAverageO2LinesPathLength(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (due to O2 Lines) in spectral Win...
Angle getNO2LinesPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (due to NO2 lines) along the atmospheric ...
InverseLength getAbsSO2Lines(unsigned int nf, unsigned int nl) const
Function to retrieve SO2 lines Absorption Coefficient at layer nl and frequency channel nf...
virtual ~RefractiveIndexProfile()
Angle getDispersiveDryPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (Dry part) along the atmospheric path cor...
Opacity getWetOpacity()
Function to retrieve the integrated Wet Opacity along the atmospheric path corresponding to the 1st g...
Opacity getAverageH2OLinesOpacity(const Length &integratedwatercolumn, unsigned int spwid)
double get() const
Accessor to get the numerical value of frequency (in International System units: Hz) ...
Definition: ATMFrequency.h:64
InverseLength getAbsTotalWet(unsigned int nl) const
Function to retrieve total Wet Absorption Coefficient at layer nl, for single frequency RefractiveInd...
Frequency getChanFreq(unsigned int chanNum) const
Accessor to the frequency (Hz) for a given grid point (for the first spectral window) ...
Length getAverageSO2LinesPathLength(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (due to SO2 Lines) in spectral Wi...
Length getAverageNonDispersiveH2OPathLength(const Length &integratedwatercolumn, unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (Non-Dispersive part) in spectral...
Profile of the absorption and Phase coefficient(s) at given frequency(ies) for an atmospheric profile...
InverseLength getAbsTotalWet(unsigned int nf, unsigned int nl) const
Function to retrieve total Wet Absorption Coefficient at layer nl and frequency channel nf...
Length getAverageN2OLinesPathLength(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (due to N2O Lines) in spectral Wi...
InverseLength getAbsTotalDry(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve total Dry Absorption Coefficient at layer nl, spectral window spwid and channel ...
InverseLength getAbsH2OCont(unsigned int nl) const
Accessor to get H2O Continuum Absorption Coefficient at layer nl, for single frequency RefractiveInde...
unsigned int add(unsigned int numChan, unsigned int refChan, const Frequency &refFreq, const Frequency &chanSep)
Add a new spectral window, uniformly sampled, this spectral window having no sideband.
bool chanIndexIsValid(unsigned int nc)
Method to assess if a channel frequency index is valid.
Defines pressure with units.
Definition: ATMPressure.h:43
InverseLength getAbsCOLines(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve CO lines Absorption Coefficient at layer nl, spectral window spwid and channel n...
Class for an atmospheric profile object.
Definition: ATMProfile.h:78
Class for opacities [no dimensions].
Definition: ATMOpacity.h:44
InverseLength getAbsCOLines(unsigned int nf, unsigned int nl) const
Function to retrieve CO lines Absorption Coefficient at layer nl and frequency channel nf...
vector< vector< std::complex< double > > * > vv_N_H2OLinesPtr_
H2O lines absorption coefficient and delay term (rad m^-1,m^-1)
Length getNonDispersiveH2OPathLength()
Function to retrieve the integrated Atmospheric Path Length (Non-Dispersive part) along the atmospher...
std::vector< double > v_chanFreq_
Channel frequencies of ALL the channels (i.e. all spectral window appended)
Length getNonDispersiveDryPathLength()
Function to retrieve the integrated Atmospheric Path length (Dry part) along the atmospheric path cor...
Length getDispersiveH2OPathLength()
Function to retrieve the integrated Atmospheric Path length (Dispersive part) along the atmospheric p...
Length getAverageO3LinesPathLength(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (due to O3 Lines) in spectral Win...
vector< vector< std::complex< double > > * > vv_N_O3LinesPtr_
O3 lines absorption coefficient and delay term (rad m^-1,m^-1)
vector< vector< std::complex< double > > * > vv_N_N2OLinesPtr_
N2O lines absorption coefficient and delay term (rad m^-1,m^-1)
vector< vector< std::complex< double > > * > vv_N_O2LinesPtr_
O2 lines absorption coefficient and delay term (rad m^-1,m^-1)
Length getAverageNonDispersiveDryPathLength(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (Dry part) in spectral Window spw...
Angle getAverageDispersiveDryPhaseDelay(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (Dry part) in spectral Window spw...
Angle getNonDispersiveDryPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (Dry part) along the atmospheric path cor...
Opacity getAverageDryOpacity(unsigned int spwid)
Opacity getDryOpacity(unsigned int spwid, unsigned int nc)
void rmRefractiveIndexProfile()
deletes all the layer profiles for all the frequencies
InverseLength getAbsH2OLines(unsigned int nl) const
Accessor to get H2O lines Absorption Coefficient at layer nl, for single frequency RefractiveIndexPro...
Length getAverageNO2LinesPathLength(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (due to NO2 Lines) in spectral Wi...
Defines a Class for those parameters being angles.
Definition: ATMAngle.h:44
InverseLength getAbsDryCont(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve Dry continuum Absorption Coefficient at layer nl, spectral window spwid and chan...
Temperature value with units.
Opacity getNO2LinesOpacity()
Function to retrieve the integrated NO2 Lines Opacity along the atmospheric path for single frequency...
InverseLength getAbsO3Lines(unsigned int nf, unsigned int nl) const
Function to retrieve O3 lines Absorption Coefficient at layer nl and frequency channel nf...
Defines a frequency value with units.
Definition: ATMFrequency.h:48
InverseLength getAbsTotalDry(unsigned int nf, unsigned int nl) const
Function to retrieve total Dry Absorption Coefficient at layer nl and frequency channel nf...
InverseLength getAbsO3Lines(unsigned int nl) const
Function to retrieve O3 lines Absorption Coefficient at layer nl, for single frequency RefractiveInde...
Angle getO2LinesPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (due to O2 lines) along the atmospheric p...
Angle getAverageSO2LinesPhaseDelay(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (due to SO2 Lines) in spectral Wi...
Angle getDispersiveH2OPhaseDelay()
Function to retrieve the integrated Atmospheric Phase Delay (Dispersive part) along the atmospheric p...
double getFrequency() const
Accessor to the single frequency (or the frequency of the first grid point in case of a spectrum) in ...
Class for those physical parameters having dimensions of Length [L].
Definition: ATMLength.h:44
Opacity getO3LinesOpacity()
Function to retrieve the integrated O3 Lines Opacity along the atmospheric path for single frequency ...
Length getAverageCOLinesPathLength(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Path Length (due to CO Lines) in spectral Win...
Opacity getDryOpacityUpTo(unsigned int spwid, unsigned int nc, Length refalti)
Opacity getH2OContOpacity()
Function to retrieve the integrated H2O Continuum Opacity along the atmospheric path corresponding to...
InverseLength getAbsSO2Lines(unsigned int nl) const
Function to retrieve SO2 lines Absorption Coefficient at layer nl, for single frequency RefractiveInd...
vector< vector< std::complex< double > > * > vv_N_COLinesPtr_
CO lines absorption coefficient and delay term (rad m^-1,m^-1)
void addNewSpectralWindow(unsigned int numChan, unsigned int refChan, const Frequency &refFreq, const Frequency &chanSep)
Setter of new spectral windows (adds frequencies to the SpectralGrid and calculates the corresponding...
Angle getAverageDispersiveH2OPhaseDelay(const Length &integratedwatercolumn, unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (Dispersive part) in spectral Win...
InverseLength getAbsN2OLines(unsigned int spwid, unsigned int nf, unsigned int nl) const
Function to retrieve N2O lines Absorption Coefficient at layer nl, spectral window spwid and channel ...
Angle getAverageCOLinesPhaseDelay(unsigned int spwid)
Function to retrieve the average integrated Atmospheric Phase Delay (due to CO Lines) in spectral Win...
Opacity getAverageCOLinesOpacity(unsigned int spwid)