Isis 3 Programmer Reference
RadarGroundMap.h
Go to the documentation of this file.
1 
24 #ifndef RadarGroundMap_h
25 #define RadarGroundMap_h
26 
27 #include "Camera.h"
28 #include "CameraGroundMap.h"
29 #include "SurfacePoint.h"
30 
31 namespace Isis {
32 
33 #ifndef RADAR_LOOK_DIR
34  namespace Radar {
35  enum LookDirection { Left, Right };
36  }
37 #define RADAR_LOOK_DIR
38 #endif
39 
112  public:
113  RadarGroundMap(Camera *parent, Radar::LookDirection ldir, double waveLength);
114 
116  virtual ~RadarGroundMap() {};
117 
118  virtual bool SetFocalPlane(const double ux, const double uy,
119  const double uz);
120  virtual bool SetGround(const Latitude &lat, const Longitude &lon);
121  virtual bool SetGround(const SurfacePoint &surfacePoint);
122  virtual bool GetXY(const SurfacePoint &spoint, double *cudx,
123  double *cudy, bool test=false);
124  virtual bool GetdXYdPosition(const SpicePosition::PartialType varType,
125  int coefIndex, double *cudx, double *cudy);
126  virtual bool GetdXYdPoint(std::vector<double> d_lookB, double *dx,
127  double *dy);
128 
130  void SetRangeSigma(double rangeSigma) {
131  p_rangeSigma = rangeSigma;
132  };
133 
135  double RangeSigma() {
136  return p_rangeSigma;
137  };
138 
140  void SetDopplerSigma(double dopplerSigma) {
141  p_dopplerSigma = dopplerSigma;
142  };
143 
145  double YScale() {
146  return p_dopplerSigma;
147  };
148 
150  double WaveLength() {
151  return p_waveLength;
152  };
153 
154  private:
155  double ComputeXv(SpiceDouble X[3]);
156  double GetRadius(const Latitude &lat, const Longitude &lon);
157 
158  bool Iterate(SpiceDouble &R, const double &slantRangeSqr, const SpiceDouble c[],
159  const SpiceDouble r[], SpiceDouble X[], SpiceDouble &lat,
160  SpiceDouble &lon, const std::vector<double> &Xsc, const bool &useSlopeEqn,
161  const double &slope);
162 
163  Radar::LookDirection p_lookDirection;
164  double p_tolerance;
165  double p_slantRange;
166  double p_dopplerFreq;
167  double p_timeTolerance;
168  double p_rangeSigma;
169  double p_dopplerSigma;
170  double p_waveLength; // km/sec/hertz ??
171  std::vector<double> p_lookB;
172  std::vector<double> p_sB;
173  //std::vector<double> p_Xsc(3); //!< body fixed position
176 
177  Camera *p_camera;
178  };
179 };
180 #endif
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:148
virtual bool SetFocalPlane(const double ux, const double uy, const double uz)
Compute ground position from slant range.
double YScale()
Return the doppler sigma.
double p_groundDopplerFreq
units are hertz
double p_slantRange
units are km
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:63
virtual bool SetGround(const Latitude &lat, const Longitude &lon)
Compute undistorted focal plane coordinate from ground position.
double p_rangeSigma
Scaling factor to convert meters to focal plane coord.
void SetDopplerSigma(double dopplerSigma)
Set the doppler sigma.
void SetRangeSigma(double rangeSigma)
Set the range sigma.
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
virtual ~RadarGroundMap()
Destructor.
Convert between undistorted focal plane and ground coordinates.
Convert between undistorted focal plane coordinate (slant range) and ground coordinates.
double p_dopplerSigma
Scaling factor to convert hertz to focal plane coord.
double p_dopplerFreq
units are hertz
bool Iterate(SpiceDouble &R, const double &slantRangeSqr, const SpiceDouble c[], const SpiceDouble r[], SpiceDouble X[], SpiceDouble &lat, SpiceDouble &lon, const std::vector< double > &Xsc, const bool &useSlopeEqn, const double &slope)
Iteration loop for computing ground position from slant range.
double WaveLength()
Return the wavelength.
double RangeSigma()
Return the range sigma.
double p_groundSlantRange
units are km
virtual bool GetdXYdPoint(std::vector< double > d_lookB, double *dx, double *dy)
Compute derivative of focal plane coordinate w/r to ground point from ground position using current S...
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
virtual bool GetXY(const SurfacePoint &spoint, double *cudx, double *cudy, bool test=false)
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage cal...
virtual bool GetdXYdPosition(const SpicePosition::PartialType varType, int coefIndex, double *cudx, double *cudy)
Compute derivative w/r to position of focal plane coordinate from ground position using current Spice...