Isis 3 Programmer Reference
DawnVirCamera.h
1 #ifndef DawnVirCamera_h
2 #define DawnVirCamera_h
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include "LineScanCamera.h"
13 
14 #include <QString>
15 
16 #include <tnt/tnt_array2d.h>
17 
18 #include "VariableLineScanCameraDetectorMap.h"
19 
20 namespace Isis {
76  class DawnVirCamera : public LineScanCamera {
77  public:
78  typedef TNT::Array2D<SpiceDouble> SMatrix;
79 
80  DawnVirCamera(Cube &cube);
81 
83 
85  virtual int CkFrameId() const;
86 
88  virtual int CkReferenceId() const;
89 
91  virtual int SpkReferenceId() const;
92 
93  private:
94  void readHouseKeeping(const QString &filename, double lineRate);
95  QString scrub(const QString &text) const;
96  double exposureTime() const;
97  double scanLineTime() const;
98  int pixelSumming() const;
99 
100  int hkLineCount() const;
101  double lineStartTime(const double midExpTime) const;
102  double lineEndTime(const double midExpTime) const;
103 
104  double startTime() const;
105  double endTime() const;
106 
107  Table getPointingTable(const QString &channelId,
108  const int zeroFrame);
109  SMatrix getStateRotation(const QString &frame1,
110  const QString &frame2,
111  const double &et) const;
112 
113  bool hasArticulationKernel(Pvl &label) const;
114 
121  struct ScanMirrorInfo {
122  int m_lineNum;
123  double m_scanLineEt;
124  double m_mirrorCos;
125  double m_mirrorSin;
126  double m_opticalAngle;
128  };
129 
130 
132  char m_slitMode;
133  double m_exposureTime;
134  int m_summing;
135  double m_scanRate;
136 
137  std::vector<LineRateChange> m_lineRates;
138  std::vector<ScanMirrorInfo> m_mirrorData;
139 
140  };
141 };
142 
143 #endif
Isis::DawnVirCamera::ScanMirrorInfo::m_mirrorSin
double m_mirrorSin
Raw mirror sine value.
Definition: DawnVirCamera.h:125
Isis::DawnVirCamera::m_summing
int m_summing
Summing/binnning mode.
Definition: DawnVirCamera.h:134
Isis::DawnVirCamera::ScanMirrorInfo::m_isDarkCurrent
bool m_isDarkCurrent
If the line is dark current data.
Definition: DawnVirCamera.h:127
Isis::DawnVirCamera::ScanMirrorInfo::m_scanLineEt
double m_scanLineEt
Center of line time in ET.
Definition: DawnVirCamera.h:123
Isis::DawnVirCamera::~DawnVirCamera
~DawnVirCamera()
Destructor.
Definition: DawnVirCamera.cpp:159
Isis::DawnVirCamera::SMatrix
TNT::Array2D< SpiceDouble > SMatrix
2-D buffer
Definition: DawnVirCamera.h:78
Isis::DawnVirCamera::SpkReferenceId
virtual int SpkReferenceId() const
SPK Reference ID - J2000.
Definition: DawnVirCamera.cpp:187
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::DawnVirCamera::ScanMirrorInfo::m_opticalAngle
double m_opticalAngle
Optical angle in degrees.
Definition: DawnVirCamera.h:126
Isis::DawnVirCamera::m_mirrorData
std::vector< ScanMirrorInfo > m_mirrorData
vector of mirror info for each line
Definition: DawnVirCamera.h:138
Isis::DawnVirCamera::CkReferenceId
virtual int CkReferenceId() const
CK Reference ID - J2000.
Definition: DawnVirCamera.cpp:177
Isis::DawnVirCamera::DawnVirCamera
DawnVirCamera(Cube &cube)
Creates a camera for a Dawn VIR cube.
Definition: DawnVirCamera.cpp:45
Isis::DawnVirCamera::endTime
double endTime() const
Return end time for the entire cube.
Definition: DawnVirCamera.cpp:279
Isis::DawnVirCamera::m_slitMode
char m_slitMode
Slit mode of the instrument.
Definition: DawnVirCamera.h:132
Isis::DawnVirCamera::ScanMirrorInfo::m_lineNum
int m_lineNum
The line the info is for.
Definition: DawnVirCamera.h:122
Isis::DawnVirCamera::lineStartTime
double lineStartTime(const double midExpTime) const
Return the start time for a given line exposure time.
Definition: DawnVirCamera.cpp:249
Isis::DawnVirCamera
Camera model for both Danw VIR VIS and IR instruments.
Definition: DawnVirCamera.h:76
Isis::DawnVirCamera::lineEndTime
double lineEndTime(const double midExpTime) const
Return the end time for a given line exposure time.
Definition: DawnVirCamera.cpp:259
Isis::Table
Class for storing Table blobs information.
Definition: Table.h:61
Isis::DawnVirCamera::scrub
QString scrub(const QString &text) const
Scrubs a string coming out of the housekeeping table.
Definition: DawnVirCamera.cpp:205
Isis::DawnVirCamera::exposureTime
double exposureTime() const
Return the exposure time.
Definition: DawnVirCamera.cpp:229
Isis::LineScanCamera
Generic class for Line Scan Cameras.
Definition: LineScanCamera.h:36
Isis::DawnVirCamera::startTime
double startTime() const
Return start time for the entire cube.
Definition: DawnVirCamera.cpp:269
Isis::Cube
IO Handler for Isis Cubes.
Definition: Cube.h:167
Isis::DawnVirCamera::CkFrameId
virtual int CkFrameId() const
CK Frame ID - Instrument Code from spacit run on CK.
Definition: DawnVirCamera.cpp:167
Isis::DawnVirCamera::m_is1BCalibrated
bool m_is1BCalibrated
is determined by Archive/ProcessingLevelId
Definition: DawnVirCamera.h:131
Isis::DawnVirCamera::m_exposureTime
double m_exposureTime
Line exposure time.
Definition: DawnVirCamera.h:133
Isis::DawnVirCamera::m_scanRate
double m_scanRate
Line scan rate.
Definition: DawnVirCamera.h:135
Isis::DawnVirCamera::getStateRotation
SMatrix getStateRotation(const QString &frame1, const QString &frame2, const double &et) const
Compute the state rotation at a given time for given frames.
Definition: DawnVirCamera.cpp:533
Isis::DawnVirCamera::scanLineTime
double scanLineTime() const
Return the line scan rate.
Definition: DawnVirCamera.cpp:239
Isis::DawnVirCamera::ScanMirrorInfo::m_mirrorCos
double m_mirrorCos
Raw mirror cosine value.
Definition: DawnVirCamera.h:124
Isis::DawnVirCamera::m_lineRates
std::vector< LineRateChange > m_lineRates
vector of timing info for each line
Definition: DawnVirCamera.h:137
Isis::DawnVirCamera::readHouseKeeping
void readHouseKeeping(const QString &filename, double lineRate)
Read the VIR houskeeping table from cube.
Definition: DawnVirCamera.cpp:308
Isis::DawnVirCamera::ScanMirrorInfo
Definition: DawnVirCamera.h:121
Isis::DawnVirCamera::hkLineCount
int hkLineCount() const
Returns number of housekeeping records found in the cube Table.
Definition: DawnVirCamera.cpp:289
Isis::DawnVirCamera::pixelSumming
int pixelSumming() const
Return the pixel summing rate.
Definition: DawnVirCamera.cpp:219
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::DawnVirCamera::hasArticulationKernel
bool hasArticulationKernel(Pvl &label) const
determine if the CK articulation kernels are present/given
Definition: DawnVirCamera.cpp:580
Isis::DawnVirCamera::getPointingTable
Table getPointingTable(const QString &channelId, const int zeroFrame)
Compute the pointing table for each line.
Definition: DawnVirCamera.cpp:410