Isis 3 Programmer Reference
RosettaVirtisCamera.h
1#ifndef RosettaVirtisCamera_h
2#define RosettaVirtisCamera_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
20namespace Isis {
33 public:
34 typedef TNT::Array2D<SpiceDouble> SMatrix;
35
37
39
41 virtual int CkFrameId() const;
42
44 virtual int CkReferenceId() const;
45
47 virtual int SpkReferenceId() const;
48
49 private:
50 void readHouseKeeping(const QString &filename, double lineRate);
51 void readSCET(const QString &filename);
52
53 QString scrub(const QString &text) const;
54 double exposureTime() const;
55 double scanLineTime() const;
56 int pixelSumming() const;
57
58 int hkLineCount() const;
59 double lineStartTime(const double midExpTime) const;
60 double lineEndTime(const double midExpTime) const;
61
62 double startTime() const;
63 double endTime() const;
64
65 Table getPointingTable(const QString &channelId,
66 const int zeroFrame);
67 SMatrix getStateRotation(const QString &frame1,
68 const QString &frame2,
69 const double &et) const;
70
71 bool hasArticulationKernel(Pvl &label) const;
72
87
88
93 double m_scanRate;
94
95 std::vector<LineRateChange> m_lineRates;
96 std::vector<ScanMirrorInfo> m_mirrorData;
97
98 };
99};
100
101#endif
IO Handler for Isis Cubes.
Definition Cube.h:168
Generic class for Line Scan Cameras.
Container for cube-like labels.
Definition Pvl.h:119
Camera model for both Rosetta VIRTIS-M instruments.
double startTime() const
Return start time for the entire cube.
double m_scanRate
Line scan rate.
double lineStartTime(const double midExpTime) const
Return the start time for a given line exposure time.
std::vector< ScanMirrorInfo > m_mirrorData
vector of mirror info for each line
double exposureTime() const
Return the exposure time.
RosettaVirtisCamera(Cube &cube)
Creates a camera for a Rosetta VIRTIS-M cube.
std::vector< LineRateChange > m_lineRates
vector of timing info for each line
char m_slitMode
Slit mode of the instrument.
double endTime() const
Return end time for the entire cube.
virtual int CkReferenceId() const
CK Reference ID - J2000.
int pixelSumming() const
Return the pixel summing rate.
void readHouseKeeping(const QString &filename, double lineRate)
Read the VIRTIS houskeeping table from cube.
int m_summing
Summing/binnning mode.
int hkLineCount() const
Returns number of housekeeping records found in the cube Table.
Table getPointingTable(const QString &channelId, const int zeroFrame)
Compute the pointing table for each line.
TNT::Array2D< SpiceDouble > SMatrix
2-D buffer
bool m_is1BCalibrated
is determined by Archive/ProcessingLevelId
virtual int CkFrameId() const
CK Frame ID - Instrument Code from spacit run on CK.
double scanLineTime() const
Return the line scan rate.
virtual int SpkReferenceId() const
SPK Reference ID - J2000.
SMatrix getStateRotation(const QString &frame1, const QString &frame2, const double &et) const
Compute the state rotation at a given time for given frames.
bool hasArticulationKernel(Pvl &label) const
determine if the CK articulation kernels are present/given
double m_exposureTime
Line exposure time.
double lineEndTime(const double midExpTime) const
Return the end time for a given line exposure time.
void readSCET(const QString &filename)
For calibrated VIRTIS-M images, read the SCET values from the cube.
Class for storing Table blobs information.
Definition Table.h:61
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
bool m_isDarkCurrent
If the line is dark current data.
double m_opticalAngle
Optical angle in degrees.
double m_mirrorCos
Raw mirror cosine value.
double m_scanLineEt
Center of line time in ET.