Isis 3 Developer 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 {
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
174  double p_groundSlantRange;
175  double p_groundDopplerFreq;
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.
Definition: RadarGroundMap.cpp:61
double YScale()
Return the doppler sigma.
Definition: RadarGroundMap.h:145
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:63
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:140
void SetRangeSigma(double rangeSigma)
Set the range sigma.
Definition: RadarGroundMap.h:130
Definition: Camera.h:249
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
virtual ~RadarGroundMap()
Destructor.
Definition: RadarGroundMap.h:116
Convert between undistorted focal plane and ground coordinates.
Definition: CameraGroundMap.h:90
Convert between undistorted focal plane coordinate (slant range) and ground coordinates.
Definition: RadarGroundMap.h:111
PartialType
Definition: SpicePosition.h:211
LookDirection
Definition: RadarGroundMap.h:35
double WaveLength()
Return the wavelength.
Definition: RadarGroundMap.h:150
double RangeSigma()
Return the range sigma.
Definition: RadarGroundMap.h:135
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:512
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...
Definition: RadarGroundMap.cpp:377
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:477
Definition: RadarGroundMap.h:35