Isis 3.0 Programmer Reference
Back | Home
ControlMeasure.h
Go to the documentation of this file.
1 #ifndef ControlMeasure_h
2 #define ControlMeasure_h
3 
26 #include <QObject>
27 
28 template< class A> class QVector;
29 template< class A> class QList;
30 class QString;
31 class QStringList;
32 class QVariant;
33 
34 namespace Isis {
35  class Application;
36  class Camera;
37  class ControlMeasureLogData;
38  class ControlPoint;
39  class ControlPointFileEntryV0002_Measure;
40  class ControlCubeGraphNode;
41  class PvlGroup;
42  class PvlKeyword;
43 
171  class ControlMeasure : public QObject {
172 
173  Q_OBJECT
174 
175  friend class ControlPoint;
176  friend class ControlCubeGraphNode;
177  public:
203  enum MeasureType {
212  };
213 
214  enum Status {
215  Success,
216  MeasureLocked
217  };
218 
219  enum DataField {
220  AprioriLine = 1,
221  AprioriSample = 2,
222  ChooserName = 4,
223  CubeSerialNumber = 8,
224  Coordinate = 16,
225  DateTime = 32,
226  Diameter = 64,
227  EditLock = 128,
228  Rejected = 256,
229  FocalPlaneMeasured = 512,
230  FocalPlaneComputed = 1024,
231  Ignore = 2048,
232  SampleResidual = 4096,
233  LineResidual = 8192,
234  SampleSigma = 16384,
235  LineSigma = 32768,
236  Type = 65536
237  };
238 
239  ControlMeasure();
240  ControlMeasure(const ControlPointFileEntryV0002_Measure &);
241  ControlMeasure(const ControlMeasure &other);
242  ~ControlMeasure();
243 
244  ControlPoint *Parent() { return parentPoint; }
245  ControlCubeGraphNode *ControlSN() { return associatedCSN; }
246 
247  Status SetAprioriLine(double aprioriLine);
248  Status SetAprioriSample(double aprioriSample);
249  Status SetCamera(Isis::Camera *camera);
250  Status SetChooserName();
251  Status SetChooserName(QString name);
252  Status SetCoordinate(double sample, double line);
253  Status SetCoordinate(double sample, double line, MeasureType type);
254  Status SetCubeSerialNumber(QString newSerialNumber);
255  Status SetDateTime();
256  Status SetDateTime(QString datetime);
257  Status SetDiameter(double diameter);
258  Status SetEditLock(bool editLock);
259  Status SetFocalPlaneMeasured(double x, double y);
260  Status SetFocalPlaneComputed(double x, double y);
261  Status SetIgnored(bool newIgnoredStatus);
262  Status SetLineSigma(double lineSigma);
263  Status SetRejected(bool rejected);
264  Status SetResidual(double sampResidual, double lineResidual);
265  Status SetSampleSigma(double sampleSigma);
266  Status SetType(MeasureType type);
267 
268  void DeleteLogData(long dataType);
269  QVariant GetLogValue(long dataType) const;
270  bool HasLogData(long dataType) const;
271  void SetLogData(ControlMeasureLogData);
272  void UpdateLogData(ControlMeasureLogData);
273 
274  double GetAprioriLine() const;
275  double GetAprioriSample() const;
276  Isis::Camera *Camera() const;
277  QString GetChooserName() const;
278  QString GetCubeSerialNumber() const;
279  QString GetDateTime() const;
280  double GetDiameter() const;
281  ControlMeasureLogData GetLogData(long dataType) const;
282  bool IsEditLocked() const;
283  bool IsRejected() const;
284  double GetFocalPlaneComputedX() const;
285  double GetFocalPlaneComputedY() const;
286  double GetFocalPlaneMeasuredX() const;
287  double GetFocalPlaneMeasuredY() const;
288  double GetMeasureData(QString) const;
289  bool IsIgnored() const;
290  bool IsMeasured() const;
291  bool IsRegistered() const;
292  bool IsStatisticallyRelevant(DataField field) const;
293  double GetLine() const;
294  double GetLineResidual() const;
295  double GetLineSigma() const;
296  QVector<ControlMeasureLogData> GetLogDataEntries() const;
297  QVector<ControlMeasureLogData> GetLastRunLogDataEntries() const;
298  double GetResidualMagnitude() const;
299  double GetSample() const;
300  double GetSampleResidual() const;
301  double GetSampleSigma() const;
302  MeasureType GetType() const;
303  QString GetPointId() const;
304 
305  double GetSampleShift() const;
306  double GetLineShift() const;
307  double GetPixelShift() const;
308 
310 
312 
313  static QString MeasureTypeToString(MeasureType type);
314  static MeasureType StringToMeasureType(QString str);
315  QString GetMeasureTypeString() const;
316 
317  const ControlMeasure &operator=(const ControlMeasure &other);
318  bool operator != (const Isis::ControlMeasure &pMeasure) const;
319  bool operator == (const Isis::ControlMeasure &pMeasure) const;
320 
321  ControlPointFileEntryV0002_Measure ToProtocolBuffer() const;
322 
323  private: // methods
324  void InitializeToNull();
325  void MeasureModified();
326 
327  private: // data
330  // structure connecting measures in an image
331 
332  QString *p_serialNumber;
333  MeasureType p_measureType;
334 
335  QVector<ControlMeasureLogData> * p_loggedData;
336  PvlGroup *p_comments;
337 
342  QString *p_chooserName;
343  QString *p_dateTime;
344  bool p_editLock;
345  bool p_ignore;
347  double p_sample;
348  double p_line;
349  double p_diameter;
350 
352  double p_aprioriLine;
353 
356 
357  double p_computedEphemerisTime;
358 
359  double p_sampleSigma;
360  double p_lineSigma;
362  double p_lineResidual;
363  Isis::Camera *p_camera;
364  double p_focalPlaneMeasuredX;
365  double p_focalPlaneMeasuredY;
366  double p_focalPlaneComputedX;
367  double p_focalPlaneComputedY;
368  double p_measuredEphemerisTime;
369  };
370 }
371 
372 #endif
Status SetType(MeasureType type)
Set how the coordinate was obtained.
double p_aprioriSample
The first identified location of the.
QString GetDateTime() const
Return the date/time the coordinate was last changed.
Serial Number with added functionality for Control Networks.
double p_lineResidual
Jigsaw information - Solution error - replaces p_lineError.
(e.g., autoseed, interest) AKA predicted, unmeasured, unverified
bool p_jigsawRejected
Status of measure for last bundle adjust iteration.
double GetResidualMagnitude() const
Return Residual magnitude.
ControlPoint * parentPoint
Pointer to parent ControlPoint, may be null.
double p_sample
Current sample/line measurement.
ControlCubeGraphNode * associatedCSN
Pointer to the Serial Number.
QVariant GetLogValue(long dataType) const
Get the value of the log data with the specified type as a variant.
bool operator!=(const Isis::ControlMeasure &pMeasure) const
Compare 2 Control Measures for inequality.
QList< QStringList > PrintableClassData() const
Data accessor method, provides access to string representations of all variable values and names...
QString * p_chooserName
list the program used and the definition file or include the user name for qnet
Registered to whole pixel (e.g.,pointreg)
Registered to sub-pixel (e.g., pointreg)
static QVector< QString > GetMeasureDataNames()
Returns a list of all valid options to pass to GetMeasureData.
Status SetRejected(bool rejected)
Set &quot;jigsaw&quot; rejected flag for a measure.
bool p_editLock
If true do not edit anything in measure.
double p_sampleSigma
Uncertainty/sigma in pixels of the measurement (current sample/line)
double p_lineSigma
Not sure how we determine this for automated or manual picking.
Status SetDiameter(double diameter)
Set the crater diameter at the coordinate.
const ControlMeasure & operator=(const ControlMeasure &other)
Assignment operator.
ControlMeasure()
Create a new control measure and initialize it to nulls and zeros.
double GetMeasureData(QString) const
One Getter to rule them all.
void UpdateLogData(ControlMeasureLogData)
This updates existing log data information associated with data&#39;s type.
double p_line
Jigsaw uses this measure.
QString GetMeasureTypeString() const
Obtain a string representation of the MeasureType.
Status SetResidual(double sampResidual, double lineResidual)
Set the BundleAdjust Residual of the coordinate.
bool operator==(const Isis::ControlMeasure &pMeasure) const
Check for Control Measures equality.
Hand Measured (e.g., qnet)
Status SetCamera(Isis::Camera *camera)
Set pointer to camera associated with a measure.
Contains multiple PvlContainers.
Definition: PvlGroup.h:57
void SetLogData(ControlMeasureLogData)
This adds or updates the log data information associated with data&#39;s type.
double p_aprioriLine
measure by autoseed. Pointreg/Interest &lt; always use this location to star...
A single control point.
Definition: ControlPoint.h:339
bool IsEditLocked() const
Return value for p_editLock or implicit lock on reference measure.
MeasureType
Control network measurement types.
~ControlMeasure()
Free the memory allocated by a control.
double p_sampleResidual
Jigsaw information - Solution error - replaces p_sampleError.
Status SetFocalPlaneMeasured(double x, double y)
Set the focal plane x/y for the measured line/sample.
void InitializeToNull()
initialize pointers and other data to NULL
Status SetChooserName()
Set chooser name to a user who last changed the coordinate.
a control measurement
QString GetCubeSerialNumber() const
Return the serial number of the cube containing the coordinate.
Status SetCubeSerialNumber(QString newSerialNumber)
Set cube serial number.
Status SetCoordinate(double sample, double line)
Set the coordinate of the measurement.
void DeleteLogData(long dataType)
This deletes log data of the specified type.
Status SetDateTime()
Date Time - Creation Time.
double GetDiameter() const
Return the diameter of the crater in pixels (0 implies no crater)
QString GetChooserName() const
Return the chooser name.
Status SetFocalPlaneComputed(double x, double y)
Set the computed focal plane x/y for the apriori lat/lon.
bool HasLogData(long dataType) const
Test if we have a valid log data value of the specified type.
static MeasureType StringToMeasureType(QString str)
static QString MeasureTypeToString(MeasureType type)
Return the String Control Measure type.

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:16:22