Isis Developer Reference
GainTemperature.h
Go to the documentation of this file.
1#ifndef GainTemperature_h
2#define GainTemperature_h
3
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <cmath>
13#include <string>
14#include <vector>
15
16#include "IString.h"
17#include "HiCalTypes.h"
18#include "HiCalUtil.h"
19#include "HiCalConf.h"
20#include "Module.h"
21#include "FileName.h"
22#include "Statistics.h"
23#include "IException.h"
24
25namespace Isis {
48 class GainTemperature : public Module {
49
50 public:
51 // Constructors and Destructor
52 GainTemperature() : Module("GainTemperature") { }
53 GainTemperature(const HiCalConf &conf) : Module("GainTemperature") {
54 init(conf);
55 }
56
58 virtual ~GainTemperature() { }
59
60 private:
61 std::string _fpaFile;
62 double _refTemp; // Reference temperature
63 double _fpaFactor; // Temperature factor
64
65 void init(const HiCalConf &conf) {
67 DbProfile prof = conf.getMatrixProfile();
68 _history.add("Profile["+ prof.Name()+"]");
69
70 // Get temperature factor
71 HiVector factor = loadCsv("FpaGain", conf, prof, 1);
72 _fpaFactor = factor[0];
73
74 // Get temperature parameters
75 _refTemp = toDouble(ConfKey(prof, "FpaReferenceTemperature", toString(21.0)));
76
77 double fpa_py_temp = ToDouble(prof("FpaPositiveYTemperature"));
78 double fpa_my_temp = ToDouble(prof("FpaNegativeYTemperature"));
79
80
81 double FPA_temp = (fpa_py_temp+fpa_my_temp) / 2.0;
82 double _baseT = 1.0 - (_fpaFactor * (FPA_temp - _refTemp));
83
84 // Create data
85 int nsamps = ToInteger(prof("Samples"));
86 _data = HiVector(nsamps, _baseT);
87
88 // History
89 _history.add("FpaTemperatureFactor[" + ToString(_fpaFactor) + "]");
90 _history.add("FpaAverageTemperature[" + ToString(FPA_temp) + "]");
91 _history.add("FpaReferenceTemperature[" + ToString(_refTemp) + "]");
92 _history.add("Correction[" + ToString(_baseT) + "]");
93 return;
94 }
95
96 };
97
98} // namespace Isis
99#endif
A DbProfile is a container for access parameters to a database.
Definition DbProfile.h:51
GaingTemperature Module - Applies temperature-dependant gain correction (column)
Definition GainTemperature.h:48
GainTemperature(const HiCalConf &conf)
Definition GainTemperature.h:53
GainTemperature()
Definition GainTemperature.h:52
virtual ~GainTemperature()
Destructor.
Definition GainTemperature.h:58
void clear()
Definition HiCalTypes.h:65
void add(const QString &event)
Definition HiCalTypes.h:55
Module manages HiRISE calibration vectors from various sources.
Definition Module.h:39
HiVector _data
Data vector.
Definition Module.h:151
HiHistory _history
Hierarchial component history.
Definition Module.h:152
HiVector loadCsv(const QString &csvBase, const HiCalConf &conf, const DbProfile &prof, const int &elements=0)
Provide generic loading of CSV file for all modules.
Definition Module.h:101
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition IString.cpp:211
T ConfKey(const DbProfile &conf, const QString &keyname, const T &defval, int index=0)
Find a keyword in a profile using default for non-existant keywords.
Definition HiCalUtil.h:205
TNT::Array1D< double > HiVector
1-D Buffer
Definition HiCalTypes.h:27
QString ToString(const T &value)
Helper function to convert values to strings.
Definition HiCalUtil.h:246
double ToDouble(const T &value)
Helper function to convert values to doubles.
Definition HiCalUtil.h:234
double toDouble(const QString &string)
Global function to convert from a string to a double.
Definition IString.cpp:149
int ToInteger(const T &value)
Helper function to convert values to Integers.
Definition HiCalUtil.h:222