29 #include "NumericalApproximation.h" 83 static double G11Prime(
double tau);
84 static double Ei(
double x);
85 static double En(
unsigned int n,
double x);
87 void CalcAtmEffect(
double pha,
double inc,
double ema,
double *pstd,
88 double *trans,
double *trans0,
double *sbar,
double *transs);
90 virtual void SetStandardConditions(
bool standard);
92 void GenerateAhTable();
94 void GenerateHahgTables();
100 void GenerateHahgTablesShadow();
102 void SetAtmosAtmSwitch(
const int atmswitch);
103 void SetAtmosBha(
const double bha);
104 void SetAtmosHga(
const double hga);
105 void SetAtmosInc(
const double inc);
106 void SetAtmosNulneg(
const string nulneg);
107 void SetAtmosPhi(
const double phi);
108 void SetAtmosTau(
const double tau);
109 void SetAtmosTauref(
const double tauref);
110 void SetAtmosWha(
const double wha);
111 void SetAtmosHnorm(
const double hnorm);
112 void SetAtmosIord(
const string offset);
113 void SetAtmosEstTau(
const string esttau);
117 return p_atmosAlgorithmName;
122 return p_atmosAddOffset;
148 return p_atmosTauref;
152 return p_atmosNulneg;
160 return p_atmosHahgsb;
173 return p_atmosIncTable;
177 return p_atmosAhTable;
181 return p_atmosHahgtTable;
185 return p_atmosHahgt0Table;
200 return p_atmosAhSpline;
214 return p_atmosHahgtSpline;
228 return p_atmosHahgt0Spline;
232 virtual void AtmosModelAlgorithm(
double phase,
double incidence,
double emission) = 0;
234 void SetAlgorithmName(
string name) {
235 p_atmosAlgorithmName = name;
237 void SetAtmosNulneg(
bool nulneg) {
238 p_atmosNulneg = nulneg;
240 void SetAtmosIord(
bool offset) {
241 p_atmosAddOffset = offset;
243 void SetAtmosEstTau(
bool esttau) {
244 p_atmosEstTau = esttau;
246 void SetOldTau(
double tau) {
249 void SetOldWha(
double wha) {
253 PhotoModel *GetPhotoModel()
const {
256 bool StandardConditions()
const {
257 return p_standardConditions;
259 bool TauOrWhaChanged()
const;
260 double Eulgam()
const {
261 return p_atmosEulgam;
264 int p_atmosAtmSwitch;
268 double p_atmosBhasave;
269 double p_atmosHgasave;
270 double p_atmosTauref;
271 double p_atmosTausave;
272 double p_atmosWhasave;
286 vector <double> p_atmosIncTable;
287 vector <double> p_atmosAhTable;
288 double p_atmosHahgsb;
289 vector <double> p_atmosHahgtTable;
290 vector <double> p_atmosHahgt0Table;
295 double p_atmosCosphi;
296 double p_atmosEulgam;
306 bool p_standardConditions;
308 string p_atmosAlgorithmName;
314 double p_atmosTauold;
315 double p_atmosWhaold;
NumericalApproximation AtmosHahgt0Spline()
If GenerateHahgTables() has been called this returns a clamped cubic spline of the data set (p_atmosI...
double p_atmosHnorm
Atmospheric shell thickness normalized to planet radius.
NumericalApproximation p_atmosAhSpline
Spline object for the atmospheric Ah Table. Properties are set in GenerateAhTable().
double p_trans0
Transmission of surface reflected light through the atmosphere with no scatterings in the atmosphere...
NumericalApproximation p_atmosHahgt0Spline
Spline object for the atmospheric Hahg0 Table. Properties are set in GenerateHahgTables().
bool p_atmosEstTau
Estimate optical depth tau using shadows.
bool p_atmosAddOffset
Allow additive offset in fit.
NumericalApproximation p_atmosHahgtSpline
Spline object for the atmospheric Hahg Table. Properties are set in GenerateHahgTables().
bool AtmosAdditiveOffset() const
Allow additive offset in fit?
Namespace for the standard library.
NumericalApproximation provides various numerical analysis methods of interpolation, extrapolation and approximation of a tabulated set of x, y data.
double AtmosTauref() const
Return atmospheric Tauref value.
double AtmosHga() const
Return atmospheric Hga value.
NumericalApproximation AtmosAhSpline()
If GenerateAhTable() has been called this returns a clamped cubic spline of the data set (p_atmosIncT...
double p_trans
Transmission of surface reflected light through the atmosphere overall.
Isotropic atmos scattering model.
double AtmosHahgsb() const
Return atmospheric Hahgsb value.
double p_sbar
Illumination of the ground by the sky.
vector< double > AtmosHahgt0Table()
Return atmospheric Hahgt0Table value.
vector< double > AtmosIncTable()
Return atmospheric IncTable value.
double AtmosHnorm() const
Return atmospheric Hnorm value.
double AtmosMunot() const
Return atmospheric Munot value.
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.
int AtmosNinc() const
Return atmospheric Ninc value.
bool AtmosNulneg() const
Return atmospheric Nulneg value.
double AtmosTau() const
Return atmospheric Tau value.
virtual ~AtmosModel()
Empty destructor.
Namespace for ISIS/Bullet specific routines.
double AtmosAb() const
Return atmospheric Ab value.
double AtmosWha() const
Return atmospheric Wha value.
NumericalApproximation AtmosHahgtSpline()
If GenerateHahgTables() has been called this returns a clamped cubic spline of the data set (p_atmosI...
vector< double > AtmosHahgtTable()
Return atmospheric HahgtTable value.
This class extends Isis::NumericalApproximation.
string AlgorithmName() const
Return atmospheric algorithm name.
double AtmosBha() const
Return atmospheric Bha value.
vector< double > AtmosAhTable()
Return atmospheric AhTable value.