16 CissLabels::CissLabels(
Pvl &lab) {
25 CissLabels::CissLabels(
const QString &file) {
37 void CissLabels::Init(
Pvl &lab) {
40 ComputeImgProperties();
44 string msg =
"Labels do not appear contain a valid Cassini ISS instrument";
57 void CissLabels::ReadLabels(
Pvl &lab) {
60 p_ABflag = (QString) inst[
"AntiBloomingStateFlag"];
61 p_biasStripMean = (double) inst[
"BiasStripMean"];
62 p_compressionRatio = (QString) inst[
"CompressionRatio"];
63 p_compressionType = (QString) inst[
"CompressionType"];
64 p_dataConversionType = (QString) inst[
"DataConversionType"];
65 p_delayedReadoutFlag = (QString) inst[
"DelayedReadoutFlag"];
66 p_exposureDuration = (double) inst[
"ExposureDuration"];
67 p_flightSoftwareVersion = (QString) inst[
"FlightSoftwareVersionId"];
68 p_gainModeId = (int) inst[
"GainModeId"];
69 p_gainState = (int) inst[
"GainState"];
70 p_instrumentDataRate = (double) inst[
"InstrumentDataRate"];
71 p_instrumentModeId = (QString) inst[
"InstrumentModeId"];
72 p_instrumentId = (QString) inst[
"InstrumentId"];
73 p_readoutCycleIndex = (QString) inst[
"ReadoutCycleIndex"];
74 p_readoutOrder = (int) inst[
"ReadoutOrder"];
75 p_shutterModeId = (QString) inst[
"ShutterModeId"];
76 p_shutterStateId = (QString) inst[
"ShutterStateId"];
77 p_summingMode = (int) inst[
"SummingMode"];
78 p_frontOpticsTemp =
toDouble(inst[
"OpticsTemperature"][0]);
79 p_imageTime = (QString) inst[
"ImageTime"];
80 p_targetName = (QString) inst[
"TargetName"];
83 p_imageNumber = (double) arch[
"ImageNumber"];
86 IString filter = (QString) bandbin[
"FilterName"];
87 p_filter.push_back(filter.
Token(
"/").
ToQt());
88 p_filter.push_back(filter.
ToQt());
99 void CissLabels::ComputeImgProperties() {
101 if(p_ABflag ==
"On") p_antiblooming =
true;
102 else p_antiblooming =
false;
105 if(p_instrumentId ==
"ISSNA") p_cissNA =
true;
106 else p_cissNA =
false;
109 if(p_filter[0] ==
"UV1") p_filterIndex.push_back(0);
110 else if(p_filter[0] ==
"UV2") p_filterIndex.push_back(1);
111 else if(p_filter[0] ==
"BL1") p_filterIndex.push_back(3);
112 else if(p_filter[0] ==
"RED") p_filterIndex.push_back(6);
113 else if(p_filter[0] ==
"IR2") p_filterIndex.push_back(8);
114 else if(p_filter[0] ==
"IR4") p_filterIndex.push_back(10);
115 else if(p_filter[0] ==
"CL1") p_filterIndex.push_back(17);
116 else if(p_filter[0] ==
"HAL") p_filterIndex.push_back(19);
117 else if(p_filter[0] ==
"IRP0") p_filterIndex.push_back(20);
118 else if(p_filter[0] ==
"P0") p_filterIndex.push_back(21);
119 else if(p_filter[0] ==
"P60") p_filterIndex.push_back(22);
120 else if(p_filter[0] ==
"P120") p_filterIndex.push_back(23);
121 else if(p_filter[0] ==
"IR3") p_filterIndex.push_back(24);
122 else if(p_filter[0] ==
"IR5") p_filterIndex.push_back(25);
123 else if(p_filter[0] ==
"CB3") p_filterIndex.push_back(26);
124 else if(p_filter[0] ==
"MT3") p_filterIndex.push_back(27);
125 else if(p_filter[0] ==
"CB2") p_filterIndex.push_back(28);
126 else if(p_filter[0] ==
"MT2") p_filterIndex.push_back(29);
127 else throw IException(IException::Unknown,
"Labels have invalid filter 1 name. Cannot get filter 1 index.",
_FILEINFO_);
129 if(p_filter[1] ==
"UV3") p_filterIndex.push_back(2);
130 else if(p_filter[1] ==
"BL2") p_filterIndex.push_back(4);
131 else if(p_filter[1] ==
"GRN") p_filterIndex.push_back(5);
132 else if(p_filter[1] ==
"IR1") p_filterIndex.push_back(7);
133 else if(p_filter[1] ==
"IR3") p_filterIndex.push_back(9);
134 else if(p_filter[1] ==
"CB1") p_filterIndex.push_back(11);
135 else if(p_filter[1] ==
"CB2") p_filterIndex.push_back(12);
136 else if(p_filter[1] ==
"CB3") p_filterIndex.push_back(13);
137 else if(p_filter[1] ==
"MT1") p_filterIndex.push_back(14);
138 else if(p_filter[1] ==
"MT2") p_filterIndex.push_back(15);
139 else if(p_filter[1] ==
"MT3") p_filterIndex.push_back(16);
140 else if(p_filter[1] ==
"CL2") p_filterIndex.push_back(18);
141 else if(p_filter[1] ==
"RED") p_filterIndex.push_back(30);
142 else if(p_filter[1] ==
"BL1") p_filterIndex.push_back(31);
143 else if(p_filter[1] ==
"VIO") p_filterIndex.push_back(32);
144 else if(p_filter[1] ==
"HAL") p_filterIndex.push_back(33);
145 else if(p_filter[1] ==
"IRP90") p_filterIndex.push_back(34);
146 else if(p_filter[1] ==
"IRP0") p_filterIndex.push_back(35);
147 else throw IException(IException::Unknown,
"Labels have invalid filter 2 name. Cannot get filter 2 index.",
_FILEINFO_);
PvlGroupIterator findGroup(const QString &name, PvlGroupIterator beg, PvlGroupIterator end)
Find a group with the specified name, within these indexes.
Namespace for the standard library.
double toDouble(const QString &string)
Global function to convert from a string to a double.
IString Token(const IString &separator)
Returns the first token in the IString.
Contains multiple PvlContainers.
#define _FILEINFO_
Macro for the filename and line number.
QString ToQt() const
Retuns the object string as a QString.
Container for cube-like labels.
void print() const
Prints a string representation of this exception to stderr.
Adds specific functionality to C++ strings.
Namespace for ISIS/Bullet specific routines.