casacore
Loading...
Searching...
No Matches
DerivedColumn.h
Go to the documentation of this file.
1// # DerivedColumn.h: A derived MS column.
2// # Copyright (C) 2010
3// # Associated Universities, Inc. Washington DC, USA.
4// #
5// # This library is free software; you can redistribute it and/or modify it
6// # under the terms of the GNU Library General Public License as published by
7// # the Free Software Foundation; either version 2 of the License, or (at your
8// # option) any later version.
9// #
10// # This library is distributed in the hope that it will be useful, but WITHOUT
11// # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12// # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13// # License for more details.
14// #
15// # You should have received a copy of the GNU Library General Public License
16// # along with this library; if not, write to the Free Software Foundation,
17// # Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18// #
19// # Correspondence concerning AIPS++ should be addressed as follows:
20// # Internet email: casa-feedback@nrao.edu.
21// # Postal address: AIPS++ Project Office
22// # National Radio Astronomy Observatory
23// # 520 Edgemont Road
24// # Charlottesville, VA 22903-2475 USA
25
26#ifndef DERIVEDMSCAL_DERIVEDCOLUMN_H
27#define DERIVEDMSCAL_DERIVEDCOLUMN_H
28
29// # Includes
30#include <casacore/casa/aips.h>
31#include <casacore/derivedmscal/DerivedMC/MSCalEngine.h>
32#include <casacore/tables/DataMan/VirtScaCol.h>
33#include <casacore/tables/DataMan/VirtArrCol.h>
34
35namespace casacore {
36
37// <summary>Hourangle derived from TIME, etc.</summary>
38// <use visibility=local>
39class HourangleColumn : public VirtualScalarColumn<Double> {
40 public:
41 explicit HourangleColumn(MSCalEngine* engine, Int antnr) : itsEngine(engine), itsAntNr(antnr) {}
43 virtual void get(rownr_t rowNr, Double& data);
45 private:
47 Int itsAntNr; // # -1=array 0=antenna1 1=antenna2
48};
49
50// <summary>Local sidereal time derived from TIME, etc.</summary>
51// <use visibility=local>
52class LASTColumn : public VirtualScalarColumn<Double> {
53 public:
54 explicit LASTColumn(MSCalEngine* engine, Int antnr) : itsEngine(engine), itsAntNr(antnr) {}
55 virtual ~LASTColumn();
56 virtual void get(rownr_t rowNr, Double& data);
58 private:
60 Int itsAntNr; // # -1=array 0=antenna1 1=antenna2
61};
62
63// <summary>Parallactic angle derived from TIME, etc.</summary>
64// <use visibility=local>
65class ParAngleColumn : public VirtualScalarColumn<Double> {
66 public:
67 explicit ParAngleColumn(MSCalEngine* engine, Int antnr) : itsEngine(engine), itsAntNr(antnr) {}
68 virtual ~ParAngleColumn();
69 virtual void get(rownr_t rowNr, Double& data);
71 private:
73 Int itsAntNr; // # 0=antenna1 1=antenna2
74};
75
76// <summary>Hourangle/declination derived from TIME, etc.</summary>
77// <use visibility=local>
78class HaDecColumn : public VirtualArrayColumn<Double> {
79 public:
80 explicit HaDecColumn(MSCalEngine* engine, Int antnr) : itsEngine(engine), itsAntNr(antnr) {}
81 virtual ~HaDecColumn();
82 virtual IPosition shape(rownr_t rownr);
83 virtual Bool isShapeDefined(rownr_t rownr);
84 virtual void getArray(rownr_t rowNr, Array<Double>& data);
86 private:
88 Int itsAntNr; // # 0=antenna1 1=antenna2
89};
90
91// <summary>Azimuth/elevation derived from TIME, etc.</summary>
92// <use visibility=local>
93class AzElColumn : public VirtualArrayColumn<Double> {
94 public:
95 explicit AzElColumn(MSCalEngine* engine, Int antnr) : itsEngine(engine), itsAntNr(antnr) {}
96 virtual ~AzElColumn();
97 virtual IPosition shape(rownr_t rownr);
98 virtual Bool isShapeDefined(rownr_t rownr);
99 virtual void getArray(rownr_t rowNr, Array<Double>& data);
101 private:
103 Int itsAntNr; // # 0=antenna1 1=antenna2
104};
105
106// <summary>Pointing ITRF coordinate derived from TIME, etc.</summary>
107// <use visibility=local>
108class ItrfColumn : public VirtualArrayColumn<Double> {
109 public:
110 explicit ItrfColumn(MSCalEngine* engine, Int antnr) : itsEngine(engine), itsAntNr(antnr) {}
111 virtual ~ItrfColumn();
112 virtual IPosition shape(rownr_t rownr);
114 virtual void getArray(rownr_t rowNr, Array<Double>& data);
116 private:
118 Int itsAntNr; // # 0=antenna1 1=antenna2
119};
120
121// <summary>UVW J2000 derived from TIME, etc.</summary>
122// <use visibility=local>
123class UVWJ2000Column : public VirtualArrayColumn<Double> {
124 public:
125 explicit UVWJ2000Column(MSCalEngine* engine) : itsEngine(engine) {}
127 virtual IPosition shape(rownr_t rownr);
129 virtual void getArray(rownr_t rowNr, Array<Double>& data);
131 private:
133};
134
135} // namespace casacore
136
137#endif
Azimuth/elevation derived from TIME, etc.
virtual Bool isShapeDefined(rownr_t rownr)
Is the value shape defined in the given row?
virtual void getArray(rownr_t rowNr, Array< Double > &data)
Get the array value in the given row.
AzElColumn(MSCalEngine *engine, Int antnr)
virtual IPosition shape(rownr_t rownr)
Get the shape of the item in the given row.
MSCalEngine * itsEngine
Hourangle/declination derived from TIME, etc.
virtual IPosition shape(rownr_t rownr)
Get the shape of the item in the given row.
virtual Bool isShapeDefined(rownr_t rownr)
Is the value shape defined in the given row?
HaDecColumn(MSCalEngine *engine, Int antnr)
virtual void getArray(rownr_t rowNr, Array< Double > &data)
Get the array value in the given row.
MSCalEngine * itsEngine
virtual void get(rownr_t rowNr, Double &data)
Let a derived class get the scalar value in the given row.
HourangleColumn(MSCalEngine *engine, Int antnr)
Pointing ITRF coordinate derived from TIME, etc.
ItrfColumn(MSCalEngine *engine, Int antnr)
virtual void getArray(rownr_t rowNr, Array< Double > &data)
Get the array value in the given row.
virtual IPosition shape(rownr_t rownr)
Get the shape of the item in the given row.
MSCalEngine * itsEngine
virtual Bool isShapeDefined(rownr_t rownr)
Is the value shape defined in the given row?
Local sidereal time derived from TIME, etc.
MSCalEngine * itsEngine
virtual void get(rownr_t rowNr, Double &data)
Let a derived class get the scalar value in the given row.
LASTColumn(MSCalEngine *engine, Int antnr)
Parallactic angle derived from TIME, etc.
virtual void get(rownr_t rowNr, Double &data)
Let a derived class get the scalar value in the given row.
ParAngleColumn(MSCalEngine *engine, Int antnr)
UVW J2000 derived from TIME, etc.
virtual IPosition shape(rownr_t rownr)
Get the shape of the item in the given row.
virtual void getArray(rownr_t rowNr, Array< Double > &data)
Get the array value in the given row.
virtual Bool isShapeDefined(rownr_t rownr)
Is the value shape defined in the given row?
UVWJ2000Column(MSCalEngine *engine)
For temporary backward namespace compatibility, use casa as alias for casacore.
Definition mainpage.dox:28
int Int
Definition aipstype.h:48
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
double Double
Definition aipstype.h:53
const T & get() const
uInt64 rownr_t
Define the type of a row number in a table.
Definition aipsxtype.h:44