Go to the documentation of this file.
55 Vector itw1(2),itwl(2),itwr(2);
68 return itw1[0]*yl+itw1[1]*yr;
80 os <<
"SLIData2 : Output operator not implemented";
127 Index anr = a[0].nrows();
128 Index anc = a[0].ncols();
130 assert(tia.
nrows() == anr);
131 assert(tia.
ncols() == anc);
133 for (
Index inr = 0; inr < anr; inr++)
134 for (
Index inc = 0; inc < anc; inc++)
136 tia(inr,inc) = a[tc.
idx](inr,inc)*itw[0] + a[tc.
idx+1](inr,inc)*itw[1];
175 assert(tia.
nelem() == an);
177 for (
Index i=0; i<an; ++i )
179 tia[i] = a[tc.
idx][i]*itw[0] + a[tc.
idx+1][i]*itw[1];
202 if(
abs(aa_sca-aa_inc)<ANG_TOL)
206 else if (
abs(
abs(aa_sca-aa_inc)-180)<ANG_TOL)
208 theta_rad=
DEG2RAD*(za_sca+za_inc);
209 if (theta_rad>
PI){theta_rad=2*
PI-theta_rad;}
221 theta_rad = acos(cos(za_sca_rad) * cos(za_inc_rad) +
222 sin(za_sca_rad) * sin(za_inc_rad) *
223 cos(aa_sca_rad - aa_inc_rad));
238 for (
Index i = 0; i < 6; i++)
250 for (
Index i = 0; i < 6; i++)
bool is_same_within_epsilon(const Numeric &a, const Numeric &b, const Numeric &epsilon)
Check, if two numbers agree within a given epsilon.
void interp(MatrixView tia, ConstVectorView itw, const ArrayOfMatrix &a, const GridPos &tc)
Red 1D Interpolate.
ostream & operator<<(ostream &os, const SLIData2 &)
void gridpos(ArrayOfGridPos &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Numeric &extpolfac)
Set up a grid position Array.
Interpolation classes and functions created for use within Monte Carlo scattering simulations.
const Numeric RAD2DEG
Global constant, conversion from radians to degrees.
Index ncols() const
Returns the number of columns.
Index nrows() const
Returns the number of rows.
const Numeric DEG2RAD
Global constant, conversion from degrees to radians.
bool is_size(ConstVectorView x, const Index &n)
Verifies that the size of x is l.
Structure which describes the single scattering properties of a particle or a particle distribution.
Index ncols() const
Returns the number of columns.
Index nelem() const
Returns the number of elements.
Numeric sum() const
The sum of all elements of a Vector.
NUMERIC Numeric
The type to use for all floating point numbers.
Structure to store a grid position.
Header file for logic.cc.
A 2D sequential linear interpolation (SLI) lookup table.
Numeric interpolate(Numeric x1, Numeric x2) const
Perform sequential interpolation.
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 &rtp_temperature)
INDEX Index
The type to use for all integer numbers and indices.
const Numeric sum_check_epsilon
The maximum difference from 1 that we allow for a sum check.
A constant view of a Vector.
Index nelem() const
Number of elements.
void interpweights(VectorView itw, const GridPos &tc)
Red 1D interpolation weights.