DP3
UVWCalculator.h
Go to the documentation of this file.
1 // UVWCalculator.h: Class to calculate UVW coordinates
2 // Copyright (C) 2020 ASTRON (Netherlands Institute for Radio Astronomy)
3 // SPDX-License-Identifier: GPL-3.0-or-later
4 
9 
10 #ifndef DPPP_UVWCALCULATOR_H
11 #define DPPP_UVWCALCULATOR_H
12 
13 #include <casacore/measures/Measures/MeasFrame.h>
14 #include <casacore/measures/Measures/MDirection.h>
15 #include <casacore/measures/Measures/MPosition.h>
16 #include <casacore/measures/Measures/MBaseline.h>
17 #include <casacore/measures/Measures/MeasConvert.h>
18 #include <casacore/measures/Measures/MCDirection.h>
19 #include <casacore/measures/Measures/MCPosition.h>
20 #include <casacore/measures/Measures/MCBaseline.h>
21 #include <casacore/casa/Arrays/Vector.h>
22 
23 namespace dp3 {
24 namespace base {
25 
27 
34 
36  public:
39  UVWCalculator(const casacore::MDirection& phaseDir,
40  const casacore::MPosition& arrayPosition,
41  const std::vector<casacore::MPosition>& stationPositions);
42 
44  std::array<double, 3> getUVW(unsigned int ant1, unsigned int ant2,
45  double time);
46 
47  private:
48  casacore::MDirection itsPhaseDir;
49  bool itsMovingPhaseDir;
50  casacore::MDirection::Convert itsDirToJ2000;
51  casacore::MBaseline::Convert itsBLToJ2000;
52  casacore::MeasFrame itsFrame;
53  std::vector<casacore::MBaseline> itsAntMB;
54  std::vector<std::array<double, 3>> itsAntUvw;
55  casacore::Block<bool> itsUvwFilled;
56  double itsLastTime;
57 };
58 
59 } // namespace base
60 } // namespace dp3
61 
62 #endif
Class to calculate UVW coordinates.
Definition: UVWCalculator.h:35
UVWCalculator(const casacore::MDirection &phaseDir, const casacore::MPosition &arrayPosition, const std::vector< casacore::MPosition > &stationPositions)
std::array< double, 3 > getUVW(unsigned int ant1, unsigned int ant2, double time)
get the UVW coordinates for the given baseline and time.
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53