Isis 3 Programmer Reference
Photometry.h
Go to the documentation of this file.
1 #ifndef Photometry_h
2 #define Photometry_h
3 
26 #include <string>
27 #include <vector>
28 #include <gsl/gsl_errno.h>
29 #include <gsl/gsl_math.h>
30 #include <gsl/gsl_min.h>
31 #include <gsl/gsl_roots.h>
32 
33 namespace Isis {
34  class Pvl;
35  class PhotoModel;
36  class AtmosModel;
37  class NormModel;
51  class Photometry {
52  public:
53  Photometry(Pvl &pvl);
54  Photometry() {};
55  virtual ~Photometry();
56 
58  void Compute(double pha, double inc, double ema, double dn,
59  double &albedo, double &mult, double &base);
60  void Compute(double pha, double inc, double ema, double deminc,
61  double demema, double dn, double &albedo,
62  double &mult, double &base);
63 
65  virtual void SetPhotomWl(double wl);
66 
69  static void minbracket(double &xa, double &xb, double &xc, double &fa,
70  double &fb, double &fc, double Func(double par, void *params),
71  void *params);
72 
74  static int brentminimizer(double x_lower, double x_upper, gsl_function *Func,
75  double & x_minimum, double tolerance);
76 
79  static int brentsolver(double x_lo, double x_hi, gsl_function *Func, double tolerance, double &root);
80 
81  PhotoModel *GetPhotoModel() const {
82  return p_phtPmodel;
83  }
84 
85  AtmosModel *GetAtmosModel() const {
86  return p_phtAmodel;
87  }
88 
89  NormModel *GetNormModel() const {
90  return p_phtNmodel;
91  }
92 
93  protected:
94  AtmosModel *p_phtAmodel;
95  PhotoModel *p_phtPmodel;
96  NormModel *p_phtNmodel;
97  };
98 };
99 
100 #endif
virtual ~Photometry()
Destroy Photometry object.
Definition: Photometry.cpp:45
static void minbracket(double &xa, double &xb, double &xc, double &fa, double &fb, double &fc, double Func(double par, void *params), void *params)
Double precision version of bracketing algorithm ported from Python. Solution bracketing for 1-D mini...
Definition: Photometry.cpp:207
virtual void SetPhotomWl(double wl)
Set the wavelength.
Definition: Photometry.cpp:67
Isotropic atmos scattering model.
Definition: AtmosModel.h:76
static int brentsolver(double x_lo, double x_hi, gsl_function *Func, double tolerance, double &root)
GSL&#39;s the Brent-Dekker method (Brent&#39;s method) combines an interpolation strategy with the bisection ...
Definition: Photometry.cpp:125
Container for cube-like labels.
Definition: Pvl.h:135
void Compute(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
Calculate the surface brightness.
Definition: Photometry.cpp:77
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
static int brentminimizer(double x_lower, double x_upper, gsl_function *Func, double &x_minimum, double tolerance)
Brent&#39;s method 1-D minimization routine using GSL&#39;s r8Brent minimization Algorithm.
Definition: Photometry.cpp:168