Isis Developer Reference
RadarGroundMap.h
Go to the documentation of this file.
1 #ifndef RadarGroundMap_h
2 #define RadarGroundMap_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 
10 #include "Camera.h"
11 #include "CameraGroundMap.h"
12 #include "SurfacePoint.h"
13 
14 namespace 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
Isis::Distance::kilometers
double kilometers() const
Get the distance in kilometers.
Definition: Distance.cpp:106
Isis::SpicePosition::PartialType
PartialType
Definition: SpicePosition.h:201
Isis::Spice::radii
void radii(Distance r[3]) const
Returns the radii of the body in km.
Definition: Spice.cpp:930
Isis::Spice::instrumentPosition
void instrumentPosition(double p[3]) const
Returns the spacecraft position in body-fixed frame km units.
Definition: Spice.cpp:822
Isis::RadarGroundMap::SetFocalPlane
virtual bool SetFocalPlane(const double ux, const double uy, const double uz)
Compute ground position from slant range.
Definition: RadarGroundMap.cpp:45
Isis::RadarGroundMap::GetXY
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
Isis::SpicePosition
Obtain SPICE position information for a body.
Definition: SpicePosition.h:173
Isis::Target::shape
ShapeModel * shape() const
Return the shape.
Definition: Target.cpp:655
Isis::SurfacePoint::GetX
Displacement GetX() const
Definition: SurfacePoint.cpp:1436
Isis::CameraGroundMap::p_focalPlaneY
double p_focalPlaneY
Camera's y focal plane coordinate.
Definition: CameraGroundMap.h:136
Isis::PI
const double PI
The mathematical constant PI.
Definition: Constants.h:40
Isis::Latitude
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:51
Isis::Radar::LookDirection
LookDirection
Definition: RadarGroundMap.h:18
Isis::ShapeModel::setSurfacePoint
virtual void setSurfacePoint(const SurfacePoint &surfacePoint)
Set surface intersection point.
Definition: ShapeModel.cpp:565
Isis::RadarGroundMap::SetDopplerSigma
void SetDopplerSigma(double dopplerSigma)
Set the doppler sigma.
Definition: RadarGroundMap.h:123
Isis::SpicePosition::CoordinatePartial
std::vector< double > CoordinatePartial(SpicePosition::PartialType partialVar, int coeffIndex)
Set the coefficients of a polynomial fit to each of the three coordinates of the position vector for ...
Definition: SpicePosition.cpp:1167
Target.h
Longitude.h
Isis::SpicePosition::Coordinate
const std::vector< double > & Coordinate()
Return the current J2000 position.
Definition: SpicePosition.h:211
Isis::RadarGroundMap::SetGround
virtual bool SetGround(const Latitude &lat, const Longitude &lon)
Compute undistorted focal plane coordinate from ground position.
Definition: RadarGroundMap.cpp:200
Isis::SurfacePoint::GetZ
Displacement GetZ() const
Definition: SurfacePoint.cpp:1450
Isis::Camera
Definition: Camera.h:236
Isis::RadarGroundMap::RadarGroundMap
RadarGroundMap(Camera *parent, Radar::LookDirection ldir, double waveLength)
Definition: RadarGroundMap.cpp:16
Isis::SpiceRotation::J2000Vector
std::vector< double > J2000Vector(const std::vector< double > &rVec)
Given a direction vector in the reference frame, return a J2000 direction.
Definition: SpiceRotation.cpp:1408
Isis::CameraGroundMap::p_focalPlaneX
double p_focalPlaneX
Camera's x focal plane coordinate.
Definition: CameraGroundMap.h:135
Isis::Camera::SetFocalLength
void SetFocalLength(double v)
Sets the focal length.
Definition: Camera.cpp:3014
Isis::Distance
Distance measurement, usually in meters.
Definition: Distance.h:34
Isis::Radar::Right
@ Right
Definition: RadarGroundMap.h:18
Isis::Longitude
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
Isis::RadarGroundMap::~RadarGroundMap
virtual ~RadarGroundMap()
Destructor.
Definition: RadarGroundMap.h:99
Isis::CameraGroundMap
Convert between undistorted focal plane and ground coordinates.
Definition: CameraGroundMap.h:73
Isis::Spice::target
virtual Target * target() const
Returns a pointer to the target object.
Definition: Spice.cpp:1368
Isis::Spice::instrumentRotation
virtual SpiceRotation * instrumentRotation() const
Accessor method for the instrument rotation.
Definition: Spice.cpp:1622
Isis::RadarGroundMap::SetRangeSigma
void SetRangeSigma(double rangeSigma)
Set the range sigma.
Definition: RadarGroundMap.h:113
Latitude.h
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
Isis::RadarGroundMap::WaveLength
double WaveLength()
Return the wavelength.
Definition: RadarGroundMap.h:133
CameraGroundMap.h
Isis::SurfacePoint::Valid
bool Valid() const
Definition: SurfacePoint.cpp:947
SurfacePoint.h
Isis::Distance::isValid
bool isValid() const
Test if this distance has been initialized or not.
Definition: Distance.cpp:192
Isis::Spice::bodyRotation
virtual SpiceRotation * bodyRotation() const
Accessor method for the body rotation.
Definition: Spice.cpp:1611
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::Radar::Left
@ Left
Definition: RadarGroundMap.h:18
Camera.h
RadarGroundMap.h
Isis::Displacement::kilometers
double kilometers() const
Get the displacement in kilometers.
Definition: Displacement.cpp:94
Isis::IException::Programmer
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
std
Namespace for the standard library.
Isis::RadarGroundMap
Convert between undistorted focal plane coordinate (slant range) and ground coordinates.
Definition: RadarGroundMap.h:94
Isis::SpicePosition::Velocity
const std::vector< double > & Velocity()
Return the current J2000 velocity.
Definition: SpicePosition.cpp:1269
Isis::SurfacePoint::ToNaifArray
void ToNaifArray(double naifOutput[3]) const
A naif array is a c-style array of size 3.
Definition: SurfacePoint.cpp:870
Isis::RadarGroundMap::GetdXYdPoint
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
Isis::RadarGroundMap::GetdXYdPosition
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
Isis::Camera::Lines
int Lines() const
Returns the number of lines in the image.
Definition: Camera.cpp:2786
iTime.h
Isis::SpiceRotation::ReferenceVector
std::vector< double > ReferenceVector(const std::vector< double > &jVec)
Given a direction vector in J2000, return a reference frame direction.
Definition: SpiceRotation.cpp:1700
Isis::RadarGroundMap::YScale
double YScale()
Return the doppler sigma.
Definition: RadarGroundMap.h:128
Isis::SurfacePoint
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:132
Isis::SurfacePoint::GetY
Displacement GetY() const
Definition: SurfacePoint.cpp:1443
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::Sensor::LocalRadius
Distance LocalRadius() const
Returns the local radius at the intersection point.
Definition: Sensor.cpp:267
Isis::RadarGroundMap::RangeSigma
double RangeSigma()
Return the range sigma.
Definition: RadarGroundMap.h:118
Isis::SpiceRotation
Obtain SPICE rotation information for a body.
Definition: SpiceRotation.h:209
Isis::SpicePosition::VelocityPartial
std::vector< double > VelocityPartial(SpicePosition::PartialType partialVar, int coeffIndex)
Compute the derivative of the velocity with respect to the specified variable.
Definition: SpicePosition.cpp:1208