Isis 3.0 Programmer Reference
Back | 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 {
35  enum LookDirection { Left, Right };
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
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.
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:59
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...
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...
virtual bool GetXY(const SurfacePoint &spoint, double *cudx, double *cudy)
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage cal...

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:28:02