Go to the documentation of this file.
35 Vector itw1(2), itwl(2), itwr(2);
48 return itw1[0] * yl + itw1[1] * yr;
58 os <<
"SLIData2 : Output operator not implemented";
75 Index anr = a[0].nrows();
76 Index anc = a[0].ncols();
78 assert(tia.
nrows() == anr);
79 assert(tia.
ncols() == anc);
81 for (
Index inr = 0; inr < anr; inr++)
82 for (
Index inc = 0; inc < anc; inc++) {
84 a[tc.
idx](inr, inc) * itw[0] + a[tc.
idx + 1](inr, inc) * itw[1];
102 assert(tia.
nelem() == an);
104 for (
Index i = 0; i < an; ++i) {
105 tia[i] = a[tc.
idx][i] * itw[0] + a[tc.
idx + 1][i] * itw[1];
126 if (
abs(aa_sca - aa_inc) < ANG_TOL) {
128 }
else if (
abs(
abs(aa_sca - aa_inc) - 180) < ANG_TOL) {
129 theta_rad =
DEG2RAD * (za_sca + za_inc);
130 if (theta_rad >
PI) {
131 theta_rad = 2 *
PI - theta_rad;
143 acos(cos(za_sca_rad) * cos(za_inc_rad) +
144 sin(za_sca_rad) * sin(za_inc_rad) * cos(aa_sca_rad - aa_inc_rad));
158 for (
Index i = 0; i < 6; i++) {
168 for (
Index i = 0; i < 6; i++) {
SingleScatteringData scat_data_single(Workspace &ws) noexcept
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)
interp.
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 nrows() const
Returns the number of rows.
void interp_scat_angle_temperature(VectorView pha_mat_int, Numeric &theta_rad, const SingleScatteringData &scat_data_single, const Numeric &za_sca, const Numeric &aa_sca, const Numeric &za_inc, const Numeric &aa_inc, const Numeric &rtp_temperature)
interp_scat_angle_temperature.
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.
This can be used to make arrays out of anything.
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.
Numeric rtp_temperature(Workspace &ws) noexcept
Header file for logic.cc.
A 2D sequential linear interpolation (SLI) lookup table This class holds the gridded for 2D SLI as we...
Numeric interpolate(Numeric x1, Numeric x2) const
INDEX Index
The type to use for all integer numbers and indices.
A constant view of a Vector.
Index nelem() const
Number of elements.
void interpweights(VectorView itw, const GridPos &tc)
Red 1D interpolation weights.
const Numeric PI
Global constant, pi.