Isis Developer Reference
HiCalConf.h
Go to the documentation of this file.
1#ifndef HiCalConf_h
2#define HiCalConf_h
3
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <string>
13#include <vector>
14#include <iostream>
15#include "HiCalTypes.h"
16#include "HiCalUtil.h"
17#include "Pvl.h"
18#include "DbAccess.h"
19#include "IException.h"
20
21namespace Isis {
22
23 class Cube;
24
83 class HiCalConf : public DbAccess {
84 public:
85 typedef enum { Matrix, Scalar, Keyword } CalType;
86 typedef std::vector<QString> ValueList;
87
88 public:
89 // Constructors and Destructor
90 HiCalConf();
91 HiCalConf(Pvl &label);
92 HiCalConf(Pvl &label, const QString &conf);
93
95 virtual ~HiCalConf () { }
96
97 void setLabel(Pvl &label);
98 PvlKeyword &getKey(const QString &key, const QString &group = "");
99
100 QString filepath(const QString &fname) const;
101 void setConf(const QString &conf);
102 void selectProfile(const QString &profile = "");
103
104 QString getProfileName() const;
105 QString getMatrixSource(const QString &name) const;
106 QString getMatrixSource(const QString &name,
107 const DbProfile &matconf) const;
108 HiVector getMatrix(const QString &name, int expected_size = 0) const;
109 HiVector getMatrix(const QString &name, const DbProfile &profile,
110 int expected_size = 0) const;
111 HiVector getScalar(const QString &name, const DbProfile &profile,
112 int expected_size) const;
113 int getMatrixBand() const;
114 int getMatrixBand(const DbProfile &p) const;
115
116 double sunDistanceAU(Cube *cube);
117
118 DbProfile getMatrixProfile(const QString &profile = "") const;
119 ValueList getList(const DbProfile &profile, const QString &key) const;
120 QString resolve(const QString &composite,
121 const DbProfile &matconf) const;
122
123 private:
124 static bool _naifLoaded;
125 QString _profName;
126 Pvl _label;
127
128 QString _filter;
129
130
131 void init();
132 void init(Pvl &label);
133 void loadNaifTiming();
134 DbProfile getLabelProfile(const DbProfile &profile) const;
135 int getChannelIndex(const int &ccd, const int &channel) const;
136 DbProfile makeParameters(Pvl &label) const;
137 DbProfile makeParameters(const DbProfile &profile) const;
138 QString makePattern(const QString &str) const;
139 QString parser(const QString &s, const ValueList &options,
140 const DbProfile &prof ) const;
141 };
142
143} // namespace Isis
144#endif
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
TNT::Array1D< double > HiVector
1-D Buffer
Definition HiCalTypes.h:27