Isis Developer Reference
RadarGroundMap.h
Go to the documentation of this file.
1#ifndef RadarGroundMap_h
2#define RadarGroundMap_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include "Camera.h"
11#include "CameraGroundMap.h"
12#include "SurfacePoint.h"
13
14namespace Isis {
15
16#ifndef RADAR_LOOK_DIR
17 namespace Radar {
19 }
20#define RADAR_LOOK_DIR
21#endif
22
95 public:
96 RadarGroundMap(Camera *parent, Radar::LookDirection ldir, double waveLength);
97
99 virtual ~RadarGroundMap() {};
100
101 virtual bool SetFocalPlane(const double ux, const double uy,
102 const double uz);
103 virtual bool SetGround(const Latitude &lat, const Longitude &lon);
104 virtual bool SetGround(const SurfacePoint &surfacePoint);
105 virtual bool GetXY(const SurfacePoint &spoint, double *cudx,
106 double *cudy, bool test=false);
107 virtual bool GetdXYdPosition(const SpicePosition::PartialType varType,
108 int coefIndex, double *cudx, double *cudy);
109 virtual bool GetdXYdPoint(std::vector<double> d_lookB, double *dx,
110 double *dy);
111
113 void SetRangeSigma(double rangeSigma) {
114 p_rangeSigma = rangeSigma;
115 };
116
118 double RangeSigma() {
119 return p_rangeSigma;
120 };
121
123 void SetDopplerSigma(double dopplerSigma) {
124 p_dopplerSigma = dopplerSigma;
125 };
126
128 double YScale() {
129 return p_dopplerSigma;
130 };
131
133 double WaveLength() {
134 return p_waveLength;
135 };
136
137 private:
138 double ComputeXv(SpiceDouble X[3]);
139 double GetRadius(const Latitude &lat, const Longitude &lon);
140
141 bool Iterate(SpiceDouble &R, const double &slantRangeSqr, const SpiceDouble c[],
142 const SpiceDouble r[], SpiceDouble X[], SpiceDouble &lat,
143 SpiceDouble &lon, const std::vector<double> &Xsc, const bool &useSlopeEqn,
144 const double &slope);
145
146 Radar::LookDirection p_lookDirection;
147 double p_tolerance;
148 double p_slantRange;
149 double p_dopplerFreq;
150 double p_timeTolerance;
151 double p_rangeSigma;
152 double p_dopplerSigma;
153 double p_waveLength; // km/sec/hertz ??
154 std::vector<double> p_lookB;
155 std::vector<double> p_sB;
156 //std::vector<double> p_Xsc(3); //!< body fixed position
157 double p_groundSlantRange;
158 double p_groundDopplerFreq;
159
160 Camera *p_camera;
161 };
162};
163#endif
Convert between undistorted focal plane and ground coordinates.
Definition CameraGroundMap.h:73
Definition Camera.h:236
This class is designed to encapsulate the concept of a Latitude.
Definition Latitude.h:51
This class is designed to encapsulate the concept of a Longitude.
Definition Longitude.h:40
Convert between undistorted focal plane coordinate (slant range) and ground coordinates.
Definition RadarGroundMap.h:94
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:361
double RangeSigma()
Return the range sigma.
Definition RadarGroundMap.h:118
double YScale()
Return the doppler sigma.
Definition RadarGroundMap.h:128
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:496
virtual bool SetFocalPlane(const double ux, const double uy, const double uz)
Compute ground position from slant range.
Definition RadarGroundMap.cpp:45
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:461
virtual ~RadarGroundMap()
Destructor.
Definition RadarGroundMap.h:99
virtual bool SetGround(const Latitude &lat, const Longitude &lon)
Compute undistorted focal plane coordinate from ground position.
Definition RadarGroundMap.cpp:200
void SetDopplerSigma(double dopplerSigma)
Set the doppler sigma.
Definition RadarGroundMap.h:123
RadarGroundMap(Camera *parent, Radar::LookDirection ldir, double waveLength)
Definition RadarGroundMap.cpp:16
void SetRangeSigma(double rangeSigma)
Set the range sigma.
Definition RadarGroundMap.h:113
double WaveLength()
Return the wavelength.
Definition RadarGroundMap.h:133
PartialType
Definition SpicePosition.h:204
This class defines a body-fixed surface point.
Definition SurfacePoint.h:132
LookDirection
Definition RadarGroundMap.h:18
@ Right
Definition RadarGroundMap.h:18
@ Left
Definition RadarGroundMap.h:18
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16