CARMA C++
DelayInfo.h
Go to the documentation of this file.
1 
16 #ifndef CARMA_INTERFEROMETRY_DELAYINFO_H
17 #define CARMA_INTERFEROMETRY_DELAYINFO_H
18 
19 #include <vector>
20 #include "carma/monitor/Subarray.h"
21 
22 namespace carma {
23  namespace interferometry {
24 
41  class DelayInfo
42  {
43  public:
47  //@param nAntennas The number of antennas this object represents
48  DelayInfo();
49 
51  virtual ~DelayInfo();
52 
53 
55  std::string name;
56 
57 
64  // Why std::vectors instead of arrays? don't have to know
65  // size at compile time, even though we do (23=max_ant).
66  // Also range checking done for you.
67 
71  std::vector<std::string> source;
72 
74  std::vector<double> X;
75 
77  std::vector<double> Y;
78 
80  std::vector<double> Z;
81 
83  std::vector<double> U;
84 
86  std::vector<double> V;
87 
89  std::vector<double> W;
90 
91  //std::vector<AntennaCoordinates> antCoords;
92 
94  std::vector<double> latitude;
95 
97  std::vector<double> longitude;
98 
100  std::vector<double> altitude;
101 
103  std::vector<double> axisMis;
104 
112  std::vector<double> pntRa;
113 
115  std::vector<double> pntDec;
116 
118  std::vector<double> phsRa;
119 
121  std::vector<double> phsDec;
122 
124  std::vector<double> pntAz;
125 
127  std::vector<double> pntEl;
128 
130  std::vector<double> phsAz;
131 
133  std::vector<double> phsEl;
134 
140  typedef enum pntStateEnum {
141  RADEC, AZEL,
142  } pntStateType;
143 
147  std::vector<pntStateType> pntState;
148 
153  std::vector<double> axisDelay;
154 
159  std::vector<double> geometricDelay;
160 
167  std::vector<double> heightDelay;
168 
173  std::vector<double> ionosphericDelay;
174 
179  std::vector<double> pathlength;
180 
185  std::vector<double> refractivity;
186 
191  std::vector<double> thermalDelay;
192 
197  std::vector<double> totalFixedDelay;
198 
203  std::vector<double> totalDelay;
204 
208  std::vector<double> totalDelayPol1;
209 
213  std::vector<double> totalDelayPol2;
214 
219  std::vector<double> troposphericDelay;
220 
226  std::vector<double> calculatedAt;
227 
232  std::vector<double> validUntil;
233 
240  std::vector<double> timestamp;
241 
247  double airTemp;
248 
254  double atmPressure;
255 
261  double relHumid;
262 
268  void reset();
269 
277  void reset(unsigned short antid);
278 
284  void copy(unsigned short antid, DelayInfo& from);
285 
289  static unsigned short numAntennas() {
290 
291  return static_cast<unsigned short>(
292  carma::monitor::Subarray::totalNumAntennas
293  );
294  }
295 
296  private:
297 
301  void initializeMembers();
302 
306  void initializeVectors();
307 
308  };
309 
310  } // namespace interferometry
311 } // namespace carma
312 
313 
314 #endif //CARMA_INTERFEROMETRY_DELAYINFO_H
std::vector< double > phsAz
Phase center azimuth, radians.
Definition: DelayInfo.h:130
std::vector< double > pntEl
Pointing center elevation, radians.
Definition: DelayInfo.h:127
std::vector< double > X
Antenna X ground position, meters.
Definition: DelayInfo.h:74
std::vector< double > Y
Antenna Y ground position, meters.
Definition: DelayInfo.h:77
void reset()
Zero out this object (all antennas).
std::vector< double > V
Source V position in equinox of date (not J2000), meters.
Definition: DelayInfo.h:86
double relHumid
Relative humidity, percent.
Definition: DelayInfo.h:261
std::vector< std::string > source
Following are the parameters related to antenna locations (X,Y,Z,latitude,longitude, axisMis).
Definition: DelayInfo.h:71
std::vector< double > heightDelay
Array containing additional refractive height delay for each antenna.
Definition: DelayInfo.h:167
std::vector< double > pntDec
Pointing center declination, radians.
Definition: DelayInfo.h:115
double atmPressure
Atmospheric pressure, mbar.
Definition: DelayInfo.h:254
std::vector< double > calculatedAt
The time when the delays were calculated, MJD units.
Definition: DelayInfo.h:226
std::vector< double > thermalDelay
Array containing thermal delay for each antenna.
Definition: DelayInfo.h:191
std::vector< double > axisDelay
Array containing axis misalignment delay for each antenna.
Definition: DelayInfo.h:153
std::vector< double > refractivity
Array containing zeinith refractivity for each antenna (dimensionless)
Definition: DelayInfo.h:185
std::vector< double > pathlength
Array containing tropospheric pathlength for each antenna (meters)
Definition: DelayInfo.h:179
pntStateEnum
Used to identify whether an antenna had its pointing position set as RA,Dec or Az,El.
Definition: DelayInfo.h:140
std::vector< double > Z
Antenna Z ground position, meters.
Definition: DelayInfo.h:80
std::vector< double > phsDec
Phase center declination, radians.
Definition: DelayInfo.h:121
std::vector< double > phsEl
Phase center elevation, radians.
Definition: DelayInfo.h:133
std::vector< double > timestamp
Time for which these delays were calculated, MJD units.
Definition: DelayInfo.h:240
std::vector< double > troposphericDelay
Array containing tropospheric delay for each antenna.
Definition: DelayInfo.h:219
std::vector< double > validUntil
The time when the delays validity expires, MJD units.
Definition: DelayInfo.h:232
virtual ~DelayInfo()
destructor
Class to provide information about CARMA Subarray capabilities.
DelayInfo()
no-arg constructor
std::vector< double > totalDelayPol1
Total calculated delay per antenna for polarization state 1.
Definition: DelayInfo.h:208
std::vector< double > phsRa
Phase center right ascension, radians.
Definition: DelayInfo.h:118
std::vector< double > ionosphericDelay
Array containing ionospheric delay for each antenna.
Definition: DelayInfo.h:173
std::vector< double > latitude
Antenna station geocentric latitude, radians.
Definition: DelayInfo.h:94
static unsigned short numAntennas()
Number of antennas.
Definition: DelayInfo.h:289
std::vector< double > axisMis
Antenna axis misalignment, meters.
Definition: DelayInfo.h:103
std::string name
identifying name for this object
Definition: DelayInfo.h:55
std::vector< double > altitude
Antenna station altitude, meters.
Definition: DelayInfo.h:100
std::vector< double > totalDelayPol2
Total calculated delay per antenna for polarization state 2.
Definition: DelayInfo.h:213
double airTemp
Air temperature, Kelvin.
Definition: DelayInfo.h:247
std::vector< double > totalFixedDelay
Array containing the total calculated fixed delay for each antenna The constructor will set this to z...
Definition: DelayInfo.h:197
std::vector< double > geometricDelay
Array containing geometric delay (including axis misalignment delay) for each antenna.
Definition: DelayInfo.h:159
enum carma::interferometry::DelayInfo::pntStateEnum pntStateType
Used to identify whether an antenna had its pointing position set as RA,Dec or Az,El.
std::vector< double > U
Source U position in equinox of date (not J2000), meters.
Definition: DelayInfo.h:83
std::vector< double > longitude
Antenna station geocentric longitude, radians.
Definition: DelayInfo.h:97
void copy(unsigned short antid, DelayInfo &from)
Copy the values from one DelayInfo to this one.
std::vector< pntStateType > pntState
Pointing center state: AZEL or RADEC.
Definition: DelayInfo.h:147
std::vector< double > pntAz
Pointing center azimuth, radians.
Definition: DelayInfo.h:124
std::vector< double > totalDelay
Array containing the total calculated delay for each antenna The constructor will set this to zero...
Definition: DelayInfo.h:203
std::vector< double > W
Soruce W position in equinox of date (not J2000), meters.
Definition: DelayInfo.h:89
std::vector< double > pntRa
Following are the parameters of the source towards which the antenna is pointing The constructor will...
Definition: DelayInfo.h:112