USGS

Isis 3.0 Object Programmers' Reference

Home

ControlNetValidMeasure.h
Go to the documentation of this file.
1 #ifndef _ControlNetValidMeasure_h_
2 #define _ControlNetValidMeasure_h_
3 
4 #include "CubeManager.h"
5 #include "IString.h"
6 #include "Pvl.h"
7 #include "PvlGroup.h"
8 #include "Progress.h"
9 #include "SerialNumberList.h"
10 
34 namespace Isis {
35  class Camera;
36  class Cube;
37  class ControlNet;
38  class MeasureValidationResults;
39  class ControlMeasure;
40 
80  public:
81  ControlNetValidMeasure(Pvl *pvl = 0);
83 
85  void InitStdOptions(void);
86 
88  void InitStdOptionsGroup(void);
89 
90  virtual ~ControlNetValidMeasure();
91 
93  void Parse(Pvl &pvlDef);
94 
96  virtual Pvl &GetLogPvl(void) {
97  return mPvlLog;
98  };
99 
101  virtual void FindCnetRef(ControlNet &pNewNet) {};
102 
104  bool ValidEmissionAngle(double pdEmissionAngle);
105 
107  bool ValidIncidenceAngle(double pdIncidenceAngle);
108 
110  bool ValidDnValue(double pdDnValue);
111 
113  bool ValidResolution(double pdResolution);
114 
116  bool ValidResidualTolerances(double pdSampleResidual, double pdLineResidual,
117  double pdResidualMagnitude, MeasureValidationResults & pResults);
118 
119  bool ValidShiftTolerances(double sampleShift, double lineShift,
120  double pixelShift, MeasureValidationResults &results);
121 
123  bool ValidLatLon(Isis::Camera *pCamera, int piSample, int piLine);
124 
127  return mStdOptionsGrp;
128  };
129 
132  return mStatisticsGrp;
133  };
134 
136  double GetMinDN(void) {
137  return mdMinDN;
138  };
139 
141  double GetMaxDN(void) {
142  return mdMaxDN;
143  };
144 
146  double GetMinEmissionAngle(void) {
147  return mdMinEmissionAngle;
148  };
149 
151  double GetMaxEmissionAngle(void) {
152  return mdMaxEmissionAngle;
153  };
154 
156  double GetMinIncidenceAngle(void) {
157  return mdMinIncidenceAngle;
158  };
159 
161  double GetMaxIncidenceAngle(void) {
162  return mdMaxIncidenceAngle;
163  };
164 
166  double GetPixelsFromEdge(void) {
167  return miPixelsFromEdge;
168  };
169 
171  double GetMetersFromEdge(void) {
172  return mdMetersFromEdge;
173  };
174 
176  QString LocationString(double pdSample, double pdLine) const {
177  return toString((int)pdSample) + "," + toString((int)pdLine);
178  };
179 
181  bool PixelsFromEdge(int piSample, int piLine, Cube *pCube);
182 
184  bool MetersFromEdge(int piSample, int piLine, Cube *pCube);
185 
188  Cube *pCube, PvlGroup *pMeasureGrp = NULL);
189 
192  Cube *pCube, Camera *camera, PvlGroup *pMeasureGrp = NULL);
193 
195  MeasureValidationResults ValidStandardOptions(double pSample, double pLine,
196  const ControlMeasure *pMeasure, Cube *pCube, PvlGroup *pMeasureGrp = NULL);
197 
198  MeasureValidationResults ValidStandardOptions(double pSample, double pLine,
199  const ControlMeasure *pMeasure, Cube *pCube, Camera *measureCamera,
200  PvlGroup *pMeasureGrp = NULL);
201 
203  MeasureValidationResults ValidStandardOptions(double pSample, double pLine,
204  Cube *pCube, PvlGroup *pMeasureGrp = NULL);
205 
206  bool IsCubeRequired() {
208  }
209 
218  return mbCameraRequired;
219  }
220 
221  protected:
223  void ValidatePvlDN(void);
224 
226  void ValidatePvlEmissionAngle(void);
227 
229  void ValidatePvlIncidenceAngle(void);
230 
232  void ValidatePvlResolution(void);
233 
235  void ValidatePvlFromEdge(void);
236 
239 
241 
243  void ReadSerialNumbers(QString psSerialNumfile);
244 
254  void SetCameraRequiredFlag(bool pbFlag){
255  mbCameraRequired = pbFlag;
256  }
257 
258  double mdMinDN;
259  double mdMaxDN;
271 
275 
278  double mdResolution;
279  double mdDnValue;
281  double mdLineResidual;
283 
284  double m_sampleShift;
285  double m_lineShift;
286  double m_pixelShift;
287 
295 
297 
300  };
301 };
302 #endif
303