Isis 3 Programmer Reference
RosettaVirtisCamera.h
1 #ifndef RosettaVirtisCamera_h
2 #define RosettaVirtisCamera_h
3 
4 #include "LineScanCamera.h"
5 
6 #include <QString>
7 
8 #include <tnt/tnt_array2d.h>
9 
11 
12 namespace Isis {
25  public:
26  typedef TNT::Array2D<SpiceDouble> SMatrix;
27 
29 
31 
33  virtual int CkFrameId() const;
34 
36  virtual int CkReferenceId() const;
37 
39  virtual int SpkReferenceId() const;
40 
41  private:
42  void readHouseKeeping(const QString &filename, double lineRate);
43  void readSCET(const QString &filename);
44 
45  QString scrub(const QString &text) const;
46  double exposureTime() const;
47  double scanLineTime() const;
48  int pixelSumming() const;
49 
50  int hkLineCount() const;
51  double lineStartTime(const double midExpTime) const;
52  double lineEndTime(const double midExpTime) const;
53 
54  double startTime() const;
55  double endTime() const;
56 
57  Table getPointingTable(const QString &channelId,
58  const int zeroFrame);
59  SMatrix getStateRotation(const QString &frame1,
60  const QString &frame2,
61  const double &et) const;
62 
63  bool hasArticulationKernel(Pvl &label) const;
64 
71  struct ScanMirrorInfo {
72  int m_lineNum;
73  double m_scanLineEt;
74  double m_mirrorCos;
75  double m_mirrorSin;
76  double m_opticalAngle;
78  };
79 
80 
82  char m_slitMode;
83  double m_exposureTime;
84  int m_summing;
85  double m_scanRate;
86 
87  std::vector<LineRateChange> m_lineRates;
88  std::vector<ScanMirrorInfo> m_mirrorData;
89 
90  };
91 };
92 
93 #endif
double m_exposureTime
Line exposure time.
double startTime() const
Return start time for the entire cube.
double endTime() const
Return end time for the entire cube.
virtual int SpkReferenceId() const
SPK Reference ID - J2000.
Camera model for both Rosetta VIRTIS-M instruments.
virtual int CkFrameId() const
CK Frame ID - Instrument Code from spacit run on CK.
double lineStartTime(const double midExpTime) const
Return the start time for a given line exposure time.
void readSCET(const QString &filename)
For calibrated VIRTIS-M images, read the SCET values from the cube.
bool m_isDarkCurrent
If the line is dark current data.
double m_opticalAngle
Optical angle in degrees.
SMatrix getStateRotation(const QString &frame1, const QString &frame2, const double &et) const
Compute the state rotation at a given time for given frames.
char m_slitMode
Slit mode of the instrument.
Generic class for Line Scan Cameras.
double lineEndTime(const double midExpTime) const
Return the end time for a given line exposure time.
int pixelSumming() const
Return the pixel summing rate.
double m_scanLineEt
Center of line time in ET.
int hkLineCount() const
Returns number of housekeeping records found in the cube Table.
double m_scanRate
Line scan rate.
double scanLineTime() const
Return the line scan rate.
RosettaVirtisCamera(Cube &cube)
Creates a camera for a Rosetta VIRTIS-M cube.
std::vector< ScanMirrorInfo > m_mirrorData
vector of mirror info for each line
double m_mirrorCos
Raw mirror cosine value.
Container for cube-like labels.
Definition: Pvl.h:135
int m_lineNum
The line the info is for.
TNT::Array2D< SpiceDouble > SMatrix
2-D buffer
bool m_is1BCalibrated
is determined by Archive/ProcessingLevelId
Class for storing Table blobs information.
Definition: Table.h:77
virtual int CkReferenceId() const
CK Reference ID - J2000.
bool hasArticulationKernel(Pvl &label) const
determine if the CK articulation kernels are present/given
std::vector< LineRateChange > m_lineRates
vector of timing info for each line
void readHouseKeeping(const QString &filename, double lineRate)
Read the VIRTIS houskeeping table from cube.
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
double exposureTime() const
Return the exposure time.
Table getPointingTable(const QString &channelId, const int zeroFrame)
Compute the pointing table for each line.
int m_summing
Summing/binnning mode.
IO Handler for Isis Cubes.
Definition: Cube.h:170
double m_mirrorSin
Raw mirror sine value.