1 #ifndef SZA_UTIL_REGCAL_H
2 #define SZA_UTIL_REGCAL_H
16 #include "carma/szaarrayutils/regset.h"
17 #include "carma/szaarrayutils/regdata.h"
18 #include "carma/szaarrayutils/input.h"
26 class MonitorDataType;
72 std::vector<double> slots_;
76 inline bool isEmpty() {
85 void getCalChar(RegDescription* reg,
char* data, CoordRange* range=0);
86 void getCalUchar(RegDescription* reg,
unsigned char* data, CoordRange* range=0);
87 void getCalUshort(RegDescription* reg,
unsigned short* data, CoordRange* range=0);
88 void getCalShort(RegDescription* reg,
short* data, CoordRange* range=0);
89 void getCalUint(RegDescription* reg,
unsigned* data, CoordRange* range=0);
90 void getCalInt(RegDescription* reg,
int* data, CoordRange* range=0);
91 void getCalUlong(RegDescription* reg,
unsigned long *data, CoordRange* range=0);
92 void getCalLong(RegDescription* reg,
long* data, CoordRange* range=0);
93 void getCalFloat(RegDescription* reg,
float* data, CoordRange* range=0);
94 void getCalDouble(RegDescription* reg,
double* data, CoordRange* range=0);
95 void getCalDate(RegDescription* reg, sza::util::RegDate::Data* data, CoordRange* range=0);
96 void getCalComplexFloat(RegDescription* reg,
97 sza::util::Complex<float>::Data* data,
111 void getCalComplexFloat(RegDescription* reg, sza::util::MonitorDataType* data,
114 void getCalDouble(RegDescription* reg,
double* data,
RegAxisRange& iRange);
116 void getCalString(RegDescription* reg,
char *
string,
unsigned length);
121 void checkCalArgs(std::string caller, RegDescription* reg,
122 void* data, CoordRange* range=0);
124 RegCalData(ArrayMap* arrayMap,
bool archivedOnly=
false);
155 double sinPhi_,cosPhi_;
179 RegCal(ArrayMap* arrayMap=NULL,
bool archivedOnly=
false);
184 RegCal(RegCal& regCal);
196 void loadCalFile(std::string dir, std::string name,
bool doThrow=
true);
201 void loadCalStream(InputStream *stream,
bool doThrow=
true);
207 void calibrateRegData(RegisterSet* registerSet,
210 void calibrateRegData(RegisterSet& regset,
211 ArrayDataFrameManager& fm);
213 void calibrateRegData(RegSet* registerSet,
214 ArrayDataFrameManager* fm);
225 void printCalFactors(std::vector<RegDescription>& regs);
230 inline RegCal::RegCalData* calData() {
236 double* getSlotPtr(
unsigned iSlot);
240 RegCal::RegCalSlot getRegCalSlot(
unsigned iSlot);
246 ArrayMapBase arrayMapBase_;
255 std::vector<RegCalSlot> slots_;
257 RegCalData* calData_;
259 int nsnapByteOffset_;
266 void readCalGroup(InputStream* stream, std::vector<RegDescription>& regs);
273 void skipCalGroup(InputStream* stream);
279 void readCalRecord(RegMapBlock *block,
287 void installCalPars(
double pars[4], RegMapBlock* blk,
288 unsigned ia,
unsigned ib);
297 #endif // End #ifndef SZA_UTIL_REGCAL_H
The following structure contains a double precision array having the same dimension as an archive fra...
Tagged: Mon Sep 27 21:37:46 UTC 2004.
The calibration of a scalar register is:
Tagged: Wed Oct 6 11:04:54 PDT 2004.
Tagged: Wed Oct 6 11:00:37 PDT 2004.
A class for iterating over slot ranges specified in a CoordRange object.
Tagged: Fri Sep 17 15:51:07 PDT 2004.