54   VimsGroundMap::VimsGroundMap(
Camera *parent, 
Pvl &lab) :
 
   65       IString msg = 
"The Vims ground map does not understand cubes that " 
   66                     "initially have more than 64 lines or 64 samples.";
 
  135     QString stime = (QString) inst [
"NativeStartTime"];
 
  136     QString intTime = stime.split(
".").first();
 
  137     stime = stime.split(
".").last();
 
  150     QString sampMode = QString((QString)inst [
"SamplingMode"]).toUpper();
 
  153     int sampOffset = inst [
"XOffset"];
 
  154     int lineOffset = inst [
"ZOffset"];
 
  161       if (sampMode == 
"NORMAL") {
 
  168       else if (sampMode == 
"HI-RES") {
 
  178         string msg = 
"Unsupported SamplingMode [" + 
IString(sampMode) + 
"]";
 
  183       if (sampMode == 
"NORMAL") {
 
  189       else if (sampMode == 
"HI-RES") {
 
  198         string msg = 
"Unsupported SamplingMode [" + 
IString(sampMode) + 
"]";
 
  235           if (xyz[0] != 
Null && xyz[1] != 
Null && xyz[2] != 
Null) {
 
  236             p_xyzMap[line][samp].setX(xyz[0]);
 
  237             p_xyzMap[line][samp].setY(xyz[1]);
 
  238             p_xyzMap[line][samp].setZ(xyz[2]);
 
  247             if (xyz[0] < p_minX) p_minX = xyz[0];
 
  248             if (xyz[0] > p_maxX) p_maxX = xyz[0];
 
  249             if (xyz[1] < p_minY) p_minY = xyz[1];
 
  250             if (xyz[1] > p_maxY) p_maxY = xyz[1];
 
  251             if (xyz[2] < p_minZ) p_minZ = xyz[2];
 
  252             if (xyz[2] > p_maxZ) p_maxZ = xyz[2];
 
  267     if (abs(abs(p_minZ) - radii[2].kilometers()) < 1.0) {
 
  268       p_minZ = radii[2].
kilometers() * (int(abs(p_minZ) / p_minZ));
 
  270     if (abs(abs(p_maxZ) - radii[2].kilometers()) < 1.0) {
 
  271       p_maxZ = radii[2].
kilometers() * (int(abs(p_maxZ) / p_maxZ));
 
  331     SpiceDouble lookC[3];
 
  334     SpiceDouble unitLookC[3];
 
  335     vhat_c(lookC, unitLookC);
 
  375     if (p_minX == DBL_MAX || p_maxX == -DBL_MAX ||
 
  376         p_minY == DBL_MAX || p_maxY == -DBL_MAX ||
 
  377         p_minZ == DBL_MAX || p_maxZ == -DBL_MAX) 
return false;
 
  385         double xCheck = radius * 0.001 * cos(lon.
radians());
 
  386         double yCheck = radius * 0.001 * sin(lon.
radians());
 
  399         if (pB[0] < p_minX || pB[0] > p_maxX ||
 
  400             pB[1] < p_minY || pB[1] > p_maxY ||
 
  401             pB[2] < p_minZ || pB[2] > p_maxZ) 
return false;
 
  408     double minDist = DBL_MAX;
 
  416         if (p_xyzMap[line][samp].isNull()) 
continue;
 
  419         QVector3D deltaXyz = xyz - p_xyzMap[line][samp];
 
  420         if (deltaXyz.length() < minDist) {
 
  421           minDist = deltaXyz.length();
 
  433     if (minDist >= DBL_MAX) 
return false;
 
  444     vector<double> knownXyz(4);
 
  447     for (
int line = minLine - 1; line < minLine + 2; line++) {
 
  449       for (
int samp = minSamp - 1; samp < minSamp + 2; samp++) {
 
  452         if (p_xyzMap[line][samp].isNull()) 
continue;
 
  454         knownXyz[0] = p_xyzMap[line][samp].x();
 
  455         knownXyz[1] = p_xyzMap[line][samp].y();
 
  456         knownXyz[2] = p_xyzMap[line][samp].z();
 
  458         sampXyzLsq.
AddKnown(knownXyz, samp + 1);
 
  459         lineXyzLsq.
AddKnown(knownXyz, line + 1);
 
  463     if (sampXyzLsq.
Knowns() < 4) 
return false;
 
  469     knownXyz[0] = xyz.x();
 
  470     knownXyz[1] = xyz.y();
 
  471     knownXyz[2] = xyz.z();
 
  473     double inSamp = sampXyzLsq.
Evaluate(knownXyz);
 
  474     double inLine = lineXyzLsq.
Evaluate(knownXyz);
 
  532     v[0] = sin(theta) * cos(phi);
 
  534     v[2] = sin(theta) * sin(phi) / -1.;
 
This class defines a body-fixed surface point. 
 
const double Null
Value for an Isis Null pixel. 
 
double p_focalPlaneY
Camera's y focal plane coordinate. 
 
PvlGroupIterator findGroup(const QString &name, PvlGroupIterator beg, PvlGroupIterator end)
Find a group with the specified name, within these indexes. 
 
double p_xBore
X boresight. 
 
double p_interlineDelay
InterlineDelayDuration keyword value from the instrument group of the labels, divided by 1000...
 
double degrees() const 
Get the angle in units of Degrees. 
 
QString name() const 
Gets the shape name. 
 
double p_focalPlaneX
Camera's x focal plane coordinate. 
 
double radians() const 
Convert an angle to a double. 
 
double p_uy
Distorted focal plane y, in millimeters. 
 
virtual bool SetGround(const Latitude &lat, const Longitude &lon)
Compute undistorted focal plane coordinate from ground position. 
 
void radii(Distance r[3]) const 
Returns the radii of the body in km. 
 
double p_ux
Distorted focal plane x, in millimeters. 
 
This class is designed to encapsulate the concept of a Latitude. 
 
const double HALFPI(1.57079632679489661923)
The mathematical constant PI/2. 
 
bool SetLookDirection(const double v[3])
Sets the look direction of the spacecraft. 
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain. 
 
double toDouble(const QString &string)
Global function to convert from a string to a double. 
 
This error is for when a programmer made an API call that was illegal. 
 
Distance measurement, usually in meters. 
 
double Et() const 
Returns the ephemeris time (TDB) representation of the time as a double. 
 
double p_yBore
Y boresight. 
 
Longitude GetLongitude() const 
Return the body-fixed longitude for the surface point. 
 
int p_swathWidth
SwathWidth keyword value from the instrument group of the labels. 
 
bool SetImage(const double sample, const double line)
Sets the sample/line values of the image to get the lat/lon values. 
 
This class is designed to encapsulate the concept of a Longitude. 
 
Target * target() const 
Returns a pointer to the target object. 
 
virtual bool SetFocalPlane(const double ux, const double uy, const double uz)
Compute ground position from focal plane coordinate. 
 
QString p_channel
Channel keyword value from the instrument group of the labels. 
 
double Evaluate(const std::vector< double > &input)
Invokes the BasisFunction Evaluate method. 
 
Convert between undistorted focal plane and ground coordinates. 
 
SpiceDouble p_etStart
Start ephemeris time. 
 
double p_xPixSize
X pixel size. 
 
int p_camLineOffset
Line offset. 
 
Latitude GetLatitude() const 
Return the body-fixed latitude for the surface point. 
 
Contains multiple PvlContainers. 
 
#define _FILEINFO_
Macro for the filename and line number. 
 
double p_visExp
VIS exposure duration, divided by 1000. 
 
void setTime(const iTime &time)
By setting the time you essential set the position of the spacecraft and body as indicated in the cla...
 
double p_yPixSize
Y pixel size. 
 
bool HasSurfaceIntersection() const 
Returns if the last call to either SetLookDirection or SetUniversalGround had a valid intersection wi...
 
virtual ~VimsGroundMap()
Destroys the VimsGroundMap object. 
 
Generic least square fitting class. 
 
Container for cube-like labels. 
 
int p_camSampOffset
Sample offset. 
 
void Coordinate(double p[3]) const 
Returns the x,y,z of the surface intersection in BodyFixed km. 
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain. 
 
void AddKnown(const std::vector< double > &input, double expected, double weight=1.0)
Invoke this method for each set of knowns. 
 
Distance LocalRadius() const 
Returns the local radius at the intersection point. 
 
void LookDirection(double v[3])
Determines the look direction in the camera coordinate system. 
 
Generic linear equation class. 
 
Adds specific functionality to C++ strings. 
 
double p_irExp
IR exposure duration, divided by 1000. 
 
iTime getClockTime(QString clockValue, int sclkCode=-1)
This converts the spacecraft clock ticks value (clockValue) to an iTime. 
 
void IgnoreProjection(bool ignore)
Set whether or not the camera should ignore the Projection. 
 
double kilometers() const 
Get the distance in kilometers. 
 
double p_uz
Distorted focal plane z, in millimeters. 
 
int ParentLines() const 
Returns the number of lines in the parent alphacube. 
 
ShapeModel * shape() const 
Return the shape. 
 
void Init(Pvl &lab)
Initialize vims camera model. 
 
int ParentSamples() const 
Returns the number of samples in the parent alphacube. 
 
int Knowns() const 
The number of knowns (or times AddKnown was invoked) linear combination of the variables. 
 
int Solve(Isis::LeastSquares::SolveMethod method=SVD)
After all the data has been registered through AddKnown, invoke this method to solve the system of eq...
 
int p_swathLength
SwathLength keyword value from the instrument group of the labels. 
 
Unless noted otherwise, the portions of Isis written by the USGS are public domain.