ARTS  2.0.49
mc_interp.h
Go to the documentation of this file.
1 /* Copyright (C) 2005-2008 Cory Davis <cory@met.ed.ac.uk>
2 
3  This program is free software; you can redistribute it and/or modify it
4  under the terms of the GNU General Public License as published by the
5  Free Software Foundation; either version 2, or (at your option) any
6  later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16  USA. */
17 
18 
19 
20 /*===========================================================================
21  === File description
22  ===========================================================================*/
23 
33 /*===========================================================================
34  === External declarations
35  ===========================================================================*/
36 
37 #ifndef mc_interp_h
38 #define mc_interp_h
39 #include "arts.h"
40 #include "matpackI.h"
41 #include "array.h"
42 #include "interpolation.h"
43 #include "optproperties.h"
44 #include "ppath.h"
45 
46 extern const Numeric DEG2RAD;
47 extern const Numeric RAD2DEG;
48 extern const Numeric PI;
49 
50 
51 
52 
54 
57 class SLIData2
58 {
59 public:
60  //grid of x1 values where y is known
62  //A vector of x2 values for every x1a
64  //y values for every x1a, x2a
66  //performs SLI.
67  Numeric interpolate(Numeric x1, Numeric x2) const;
68  //checks that it is not empty
69  //void check() const;
70 
71 };
72 
73 ostream& operator<< (ostream& os, const SLIData2& sli);
74 
75 
76 void interp(MatrixView tia,
77  ConstVectorView itw,
78  const ArrayOfMatrix& a,
79  const GridPos& tc );
80 
81 void interp(VectorView tia,
82  ConstVectorView itw,
83  const ArrayOfVector& a,
84  const GridPos& tc );
85 
86 void interp_scat_angle_temperature(//Output:
87  VectorView pha_mat_int,
88  Numeric& theta_rad,
89  //Input:
90  const SingleScatteringData& scat_data,
91  const Numeric& za_sca,
92  const Numeric& aa_sca,
93  const Numeric& za_inc,
94  const Numeric& aa_inc,
95  const Numeric& rte_temperature
96  );
97 
98 void interpTArray(Matrix& T,
99  Vector& Kabs,
100  Numeric& temperature,
101  MatrixView& K,
102  Vector& rte_pos,//maybe these should be VectorViews?
103  Vector& rte_los,
104  VectorView& pnd_vec,
105  const ArrayOfMatrix& TArray,
106  const ArrayOfMatrix& ext_matArray,
107  const ArrayOfVector& abs_vecArray,
108  const Vector& t_ppath,
109  const Matrix& pnd_ppath,
110  const Vector& cum_l_step,
111  const Numeric& pathlength,
112  const Index& stokes_dim,
113  const Ppath& ppath
114  );
115 
116 
117 #endif // mc_interp_h
Matrix
The Matrix class.
Definition: matpackI.h:767
SLIData2::x1a
Vector x1a
Definition: mc_interp.h:61
MatrixView
The MatrixView class.
Definition: matpackI.h:668
interp_scat_angle_temperature
void interp_scat_angle_temperature(VectorView pha_mat_int, Numeric &theta_rad, const SingleScatteringData &scat_data, const Numeric &za_sca, const Numeric &aa_sca, const Numeric &za_inc, const Numeric &aa_inc, const Numeric &rte_temperature)
Definition: mc_interp.cc:183
operator<<
ostream & operator<<(ostream &os, const SLIData2 &sli)
Definition: mc_interp.cc:78
RAD2DEG
const Numeric RAD2DEG
interpolation.h
Header file for interpolation.cc.
SLIData2::x2a
ArrayOfVector x2a
Definition: mc_interp.h:63
interpTArray
void interpTArray(Matrix &T, Vector &Kabs, Numeric &temperature, MatrixView &K, Vector &rte_pos, Vector &rte_los, VectorView &pnd_vec, const ArrayOfMatrix &TArray, const ArrayOfMatrix &ext_matArray, const ArrayOfVector &abs_vecArray, const Vector &t_ppath, const Matrix &pnd_ppath, const Vector &cum_l_step, const Numeric &pathlength, const Index &stokes_dim, const Ppath &ppath)
interpTarray
Definition: mc_interp.cc:290
array.h
This file contains the definition of Array.
Ppath
The structure to describe a propagation path and releated quantities.
Definition: ppath.h:59
SingleScatteringData
Structure which describes the single scattering properties of a.
Definition: optproperties.h:74
matpackI.h
Array< Vector >
VectorView
The VectorView class.
Definition: matpackI.h:373
optproperties.h
Scattering database structure and functions.
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
SLIData2::ya
ArrayOfVector ya
Definition: mc_interp.h:65
GridPos
Structure to store a grid position.
Definition: interpolation.h:74
ppath.h
Propagation path structure and functions.
SLIData2
A 2D sequential linear interpolation (SLI) lookup table.
Definition: mc_interp.h:58
PI
const Numeric PI
SLIData2::interpolate
Numeric interpolate(Numeric x1, Numeric x2) const
Perform sequential interpolation.
Definition: mc_interp.cc:52
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
DEG2RAD
const Numeric DEG2RAD
Vector
The Vector class.
Definition: matpackI.h:555
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:300
arts.h
The global header file for ARTS.
interp
void interp(MatrixView tia, ConstVectorView itw, const ArrayOfMatrix &a, const GridPos &tc)
Red 1D Interpolate.
Definition: mc_interp.cc:111