82 double xmunot_0, ymunot_0;
84 double xmunot_1, ymunot_1;
89 if(p_atmosBha == 0.0) {
93 if(p_atmosTau == 0.0) {
102 if(p_atmosWha == 1.0) {
103 QString msg =
"Anisotropic conservative case not implemented yet - WHA parameter cannot be set to 1.0";
104 msg +=
"This will cause negative planetary curvature to occur.";
124 (1.0 + (1.0 / 3.0) * p_atmosBha *
p_atmosWham)) / (1.0 -
158 (1.0 / 3.0) * p_atmosWha * p_atmosBha) / (1.0 - (
p_atmosX0_1 -
162 SetOldTau(p_atmosTau);
163 SetOldWha(p_atmosWha);
169 if(incidence == 90.0) {
173 munot = cos((
PI / 180.0) * incidence);
176 maxval = max(1.0e-30, hpsq1 + munot * munot);
178 munotp = max(munotp, p_atmosTau / 69.0);
179 if(emission == 90.0) {
183 mu = cos((
PI / 180.0) * emission);
186 maxval = max(1.0e-30, hpsq1 + mu * mu);
188 mup = max(mup, p_atmosTau / 69.0);
190 maxval = max(1.0e-30, munotp);
191 xx = -p_atmosTau / maxval;
200 emunot = exp(-p_atmosTau / munotp);
203 maxval = max(1.0e-30, mup);
204 xx = -p_atmosTau / maxval;
213 emu = exp(-p_atmosTau / mup);
241 cosazss = 0.0 - munot * mu;
244 cosazss = cos((
PI / 180.0) * phase) - munot * mu;
247 xystuff = cxx * xmunot_0 * xmu_0 - cyy * ymunot_0 *
248 ymu_0 -
p_atmosP0 * sum * (xmu_0 * ymunot_0 + ymu_0 *
249 xmunot_0) + cosazss * p_atmosBha * (xmu_1 *
250 xmunot_1 - ymu_1 * ymunot_1);
251 p_pstd = 0.25 * p_atmosWha * munotp / (munotp + mup) * xystuff;
double p_atmosHnorm
Atmospheric shell thickness normalized to planet radius.
double p_trans0
Transmission of surface reflected light through the atmosphere with no scatterings in the atmosphere...
const double PI
The mathematical constant PI.
Anisotropic1(Pvl &pvl, PhotoModel &pmodel)
Constructs an Anisotropic1 object.
bool TauOrWhaChanged() const
Checks whether tau or wha have changed.
double p_trans
Transmission of surface reflected light through the atmosphere overall.
Isotropic atmos scattering model.
double p_sbar
Illumination of the ground by the sky.
static double En(unsigned int n, double x)
This routine evaluates the generalized exponential integral, En(x).
double p_atmosAlpha1_0
???
virtual void AtmosModelAlgorithm(double phase, double incidence, double emission)
Anisotropic atmospheric scattering with P1 single-particle phase fn, in the second approximation...
#define _FILEINFO_
Macro for the filename and line number.
A type of error that could only have occurred due to a mistake on the user's part (e...
double p_atmosAlpha0_0
???
Container for cube-like labels.
double p_transs
Transmission of light that must be subtracted from the flat surface model to get the shadow model...
double p_pstd
Pure atmospheric-scattering term.
Namespace for ISIS/Bullet specific routines.