Isis 3.0
Home
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 {
36  }
37 #define RADAR_LOOK_DIR
38 #endif
39 
109  public:
110  RadarGroundMap(Camera *parent, Radar::LookDirection ldir, double waveLength);
111 
113  virtual ~RadarGroundMap() {};
114 
115  virtual bool SetFocalPlane(const double ux, const double uy,
116  const double uz);
117  virtual bool SetGround(const Latitude &lat, const Longitude &lon);
118  virtual bool SetGround(const SurfacePoint &surfacePoint);
119  virtual bool GetXY(const SurfacePoint &spoint, double *cudx,
120  double *cudy);
121  virtual bool GetdXYdPosition(const SpicePosition::PartialType varType,
122  int coefIndex, double *cudx, double *cudy);
123  virtual bool GetdXYdPoint(std::vector<double> d_lookB, double *dx,
124  double *dy);
125 
127  void SetRangeSigma(double rangeSigma) {
128  p_rangeSigma = rangeSigma;
129  };
130 
132  double RangeSigma() {
133  return p_rangeSigma;
134  };
135 
137  void SetDopplerSigma(double dopplerSigma) {
138  p_dopplerSigma = dopplerSigma;
139  };
140 
142  double YScale() {
143  return p_dopplerSigma;
144  };
145 
147  double WaveLength() {
148  return p_waveLength;
149  };
150 
151  private:
152  double ComputeXv(SpiceDouble X[3]);
153  double GetRadius(const Latitude &lat, const Longitude &lon);
154 
155  bool Iterate(SpiceDouble &R, const double &slantRangeSqr, const SpiceDouble c[],
156  const SpiceDouble r[], SpiceDouble X[], SpiceDouble &lat,
157  SpiceDouble &lon, const std::vector<double> &Xsc, const bool &useSlopeEqn,
158  const double &slope);
159 
160  Radar::LookDirection p_lookDirection;
161  double p_tolerance;
162  double p_slantRange;
163  double p_dopplerFreq;
164  double p_timeTolerance;
165  double p_rangeSigma;
166  double p_dopplerSigma;
167  double p_waveLength; // km/sec/hertz ??
168  std::vector<double> p_lookB;
169  std::vector<double> p_sB;
170  //std::vector<double> p_Xsc(3); //!< body fixed position
171  double p_groundSlantRange;
172  double p_groundDopplerFreq;
173 
174  Camera *p_camera;
175  };
176 };
177 #endif
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:86
virtual bool SetFocalPlane(const double ux, const double uy, const double uz)
Compute ground position from slant range.
Definition: RadarGroundMap.cpp:61
double YScale()
Return the doppler sigma.
Definition: RadarGroundMap.h:142
RadarGroundMap(Camera *parent, Radar::LookDirection ldir, double waveLength)
Definition: RadarGroundMap.cpp:32
Definition: RadarGroundMap.h:35
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:59
virtual bool SetGround(const Latitude &lat, const Longitude &lon)
Compute undistorted focal plane coordinate from ground position.
Definition: RadarGroundMap.cpp:216
void SetDopplerSigma(double dopplerSigma)
Set the doppler sigma.
Definition: RadarGroundMap.h:137
void SetRangeSigma(double rangeSigma)
Set the range sigma.
Definition: RadarGroundMap.h:127
Definition: Camera.h:240
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
virtual ~RadarGroundMap()
Destructor.
Definition: RadarGroundMap.h:113
Convert between undistorted focal plane and ground coordinates.
Definition: CameraGroundMap.h:85
Convert between undistorted focal plane coordinate (slant range) and ground coordinates.
Definition: RadarGroundMap.h:108
PartialType
Definition: SpicePosition.h:208
LookDirection
Definition: RadarGroundMap.h:35
double WaveLength()
Return the wavelength.
Definition: RadarGroundMap.h:147
double RangeSigma()
Return the range sigma.
Definition: RadarGroundMap.h:132
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...
Definition: RadarGroundMap.cpp:503
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...
Definition: RadarGroundMap.cpp:468
Definition: RadarGroundMap.h:35
virtual bool GetXY(const SurfacePoint &spoint, double *cudx, double *cudy)
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage cal...
Definition: RadarGroundMap.cpp:373