SDM UVW engine: compute the uvw these being not present in the SDM but required to build MS main table. More...
#include <UvwCoords.h>
Classes | |
struct | ArrayParam |
(Sub-)array parameters constraining order and size of the output vector of 3D UVW coords triplets. More... | |
Public Member Functions | |
UvwCoords (ASDM *const datasetPtr) | |
Constructor. | |
~UvwCoords () | |
Destructor. | |
void | uvw_bl (Tag configDescriptionId, const vector< vector< Angle > > &phaseDir, double timeCentroid, Enum< CorrelationMode > correlationMode, bool reverse, bool autoTrailing, vector< Vector< casa::Double > > &v_uvw, casa::MSFieldColumns *msfc_p=0) |
Determine the baseline-based uvw in case timeCentroid is baseline-based, spw-based and bin-based invariant within a dump (i.e. | |
void | uvw_bl (Tag configDescriptionId, const vector< vector< Angle > > &phaseDir, const vector< double > &v_timeCentroid, Enum< CorrelationMode > correlationMode, bool reverse, bool autoTrailing, vector< Vector< casa::Double > > &v_uvw, casa::MSFieldColumns *msfc_p=0) |
Determine the baseline-based uvw in case timeCentroid may change vs baseline, spw or bin within a dump. | |
void | uvw_bl (asdm::MainRow *mainRow, vector< pair< unsigned int, double > > v_tci, Enum< CorrelationMode > correlationMode, pair< bool, bool > dataOrder, vector< Vector< casa::Double > > &v_uvw) |
Determine the baseline-based uvw for a sequence of epochs. | |
void | uvw_bl (asdm::MainRow *mainRow, vector< double > v_timeCentroid, Enum< CorrelationMode > correlationMode, pair< bool, bool > dataOrder, vector< casa::Vector< casa::Double > > &v_uvw, casa::MSFieldColumns *msfc_p=0) |
Determine the baseline-based uvw for a sequence of epochs. | |
Private Member Functions | |
vector< double > | antPos (const vector< double > &stationPos, const vector< double > &antOffset) |
ITRF coordinates of an ITRF point on which is added an offset defined in a ASCS. | |
void | uvw_an (double timeCentroid, const vector< vector< Angle > > &phaseDir, const vector< Tag > &v_antId) |
Determine antenna-based uvw for every member of the sequence of antennas defining a (sub)array. | |
void | uvw_bl (const vector< Tag > &v_antennaId, unsigned int nrep, bool reverse, vector< Vector< casa::Double > > &v_uvw) |
Determine the baseline-based uvw for a sequence of antenna defining a (sub)array. | |
Private Attributes | |
map< Tag, ArrayParam > | m_array_ |
map< Tag, MPosition > | m_antPos_ |
map< Tag, Vector< casa::Double > > | m_antUVW_ |
double | timeCentroid_ |
the 3 fundamental attributes of the state machine | |
vector< vector< Angle > > | phaseDir_ |
Tag | subarrayId_ |
Vector< casa::Double > | sduvw_ |
SDM UVW engine: compute the uvw these being not present in the SDM but required to build MS main table.
This UvwCoords class is an engine to determine the UVW coordinates at any time for any antenna (sub)array. It is based on the Measure classes in CASA and the ASDM classes. It requires as input the MS timeCentroids item which is an output in the ASDM DAMs.
Definition at line 42 of file UvwCoords.h.
UvwCoords::UvwCoords | ( | ASDM *const | datasetPtr | ) |
Constructor.
datasetPtr | A pointer to a SDM dataset |
UvwCoords::~UvwCoords | ( | ) |
Destructor.
vector<double> UvwCoords::antPos | ( | const vector< double > & | stationPos, | |
const vector< double > & | antOffset | |||
) | [private] |
ITRF coordinates of an ITRF point on which is added an offset defined in a ASCS.
stationPos | ITRF position of a station | |
antPos | x,y,z offset in the ASCS |
This method is used to determine the position of the phase reference point in an antenna in IERS by applying the chain of offsets up to the station position which is defined in the IERS. ITRF is also a cartesian coordinates system, its origin at the Earth center of mass, In right-handed frame. X towards the intersection of the equator and the Greenwich meridian, Z towards the pole.
void UvwCoords::uvw_an | ( | double | timeCentroid, | |
const vector< vector< Angle > > & | phaseDir, | |||
const vector< Tag > & | v_antId | |||
) | [private] |
Determine antenna-based uvw for every member of the sequence of antennas defining a (sub)array.
timeCentroid | An epoch, the 'when' characterization. | |
phaseDir | The (sub)array phase direction | |
v_antId | The sequence of antenna identifiers defining the (sub)array |
void UvwCoords::uvw_bl | ( | const vector< Tag > & | v_antennaId, | |
unsigned int | nrep, | |||
bool | reverse, | |||
vector< Vector< casa::Double > > & | v_uvw | |||
) | [private] |
Determine the baseline-based uvw for a sequence of antenna defining a (sub)array.
v_antennaId | The sequence of antenna identifiers defining the (sub)array | |
nrep | The number of repeats per baseline (i.e. SUM_k(nstep_k) where k is the spectral window index ) In case of no BIN axis nstep_k=1 and this sum is simply equal to the number of spectral windows. | |
reverse | Parameter charcterising the order of the baselines. |
Let consider v_antennaId={1,2,3,4}.
v_uvw | The resulting sequence of uvw 'points' |
A resulting baseline is defined using the first member of the pair as a the reference and the second as relative. The pair (a,b) means a |----> b i.e. u_ab = u_b - u_a.
void UvwCoords::uvw_bl | ( | asdm::MainRow * | mainRow, | |
vector< double > | v_timeCentroid, | |||
Enum< CorrelationMode > | correlationMode, | |||
pair< bool, bool > | dataOrder, | |||
vector< casa::Vector< casa::Double > > & | v_uvw, | |||
casa::MSFieldColumns * | msfc_p = 0 | |||
) |
Determine the baseline-based uvw for a sequence of epochs.
mainRow | Pointer to a SDM main table row | |
v_timeCentroid | Time centroid for every (sub)integration, baseline, spectral window and bin | |
correlationMode | Correlation mode defined by the client (a use-query) to filter out data. | |
dataOrder | A pair of booleans characterizing the order of the time centroids meta-data in the sequence v_timeCentroid. The first member of this pair is for the order of the baselines and the second to tell if the cross-data come first or not relative to the auto data. This dataOrder attribute is available via a static method of the class SDMBinData. | |
v_uvw | The returned sequence UVW coordinates for all the pair of antenna and, for each pair, for all the spectral windows and, for each spectral window, for each bin. Hence the returned size will be equal to the size of the input sequence v_timeCentroid. |
void UvwCoords::uvw_bl | ( | asdm::MainRow * | mainRow, | |
vector< pair< unsigned int, double > > | v_tci, | |||
Enum< CorrelationMode > | correlationMode, | |||
pair< bool, bool > | dataOrder, | |||
vector< Vector< casa::Double > > & | v_uvw | |||
) |
Determine the baseline-based uvw for a sequence of epochs.
mainRow | Pointer to a SDM main table row | |
v_tci | Indexed sequence of time centroids. Every spectral window, bin, (sub)integration and baseline has a time centroid. This sequence, a vector, is provided by the method timeSequence() in the class SDMBinData. Every element is a pair, the first corresponding to the index in the output sequenve of UVW coordinate triplets and the second the time centroid for the current index in this input vector. | |
correlationMode | Correlation mode defined by the client (a use-query) to filter out data. | |
dataOrder | A pair of booleans characterizing the order of the time centroids meta-data in the sequence v_timeCentroid. The first member of this pair is for the order of the baselines and the second to tell if the cross-data come first or not relative to the auto data. This dataOrder attribute is available via a static method of the class SDMBinData. | |
v_uvw | The returned sequence UVW coordinates. The order in this sequence is controlled by the attributes v_tci and dataOrder. There are two cases:
|
Whatever the case the returned size will be equal to the size of the input sequence defined by v_ci.
void UvwCoords::uvw_bl | ( | Tag | configDescriptionId, | |
const vector< vector< Angle > > & | phaseDir, | |||
const vector< double > & | v_timeCentroid, | |||
Enum< CorrelationMode > | correlationMode, | |||
bool | reverse, | |||
bool | autoTrailing, | |||
vector< Vector< casa::Double > > & | v_uvw, | |||
casa::MSFieldColumns * | msfc_p = 0 | |||
) |
Determine the baseline-based uvw in case timeCentroid may change vs baseline, spw or bin within a dump.
configDescriptionId | ConigDescription identifier | |
phaseDir | Phase direction assumed to be J2000 | |
v_timeCentroid | Sequence of time centroids (unit second) assumed to be MJD TAI. The order of these in the sequence is described by two parameters, the attributes reverse and autoTrailing. | |
correlationMode | Correlation mode defined by the client (his/her query) to filter out data. | |
reverse | Parameter characterizing the order of the resulting baselines. | |
autoTrailing | True if the cross baselines come first, the zero baselines trailing in the output v_uvw sequence | |
v_uvw | The returned UVW coordinates for all the pairs of antenna and, for each pair, for all the spectral windows and, for each spectral window, for all the bins. There is a ono-to-one association between the uvw ccordinates and the time centroids v_uvw v_timeCentroid having the same size (the number of MS rows per SDM row in the Main table) and the same sequence order. |
void UvwCoords::uvw_bl | ( | Tag | configDescriptionId, | |
const vector< vector< Angle > > & | phaseDir, | |||
double | timeCentroid, | |||
Enum< CorrelationMode > | correlationMode, | |||
bool | reverse, | |||
bool | autoTrailing, | |||
vector< Vector< casa::Double > > & | v_uvw, | |||
casa::MSFieldColumns * | msfc_p = 0 | |||
) |
Determine the baseline-based uvw in case timeCentroid is baseline-based, spw-based and bin-based invariant within a dump (i.e.
in an integration or a subintegration)
configDescriptionId | ConigDescription identifier | |
phaseDir | Phase direction assumed to be J2000 | |
timeCentroid | Time centroid (unit second) assumed to be MJD TAI | |
correlationMode | Correlation mode defined by the client (a user query) to filter out data. | |
reverse | Parameter characterizing the order of the resulting baselines. | |
autoTrailing | True if the cross baselines come first, the zero baselines trailing in the output v_uvw sequence | |
v_uvw | The returned UVW coordinates for all the pair of antenna and, for each pair, for all the spectral windows and, for each spectral window, for each bin. |
map<Tag,MPosition> UvwCoords::m_antPos_ [private] |
Definition at line 224 of file UvwCoords.h.
map<Tag,Vector<casa::Double> > UvwCoords::m_antUVW_ [private] |
Definition at line 225 of file UvwCoords.h.
map<Tag,ArrayParam> UvwCoords::m_array_ [private] |
Definition at line 223 of file UvwCoords.h.
vector<vector<Angle> > UvwCoords::phaseDir_ [private] |
Definition at line 229 of file UvwCoords.h.
Vector<casa::Double> UvwCoords::sduvw_ [private] |
Definition at line 232 of file UvwCoords.h.
Tag UvwCoords::subarrayId_ [private] |
Definition at line 230 of file UvwCoords.h.
double UvwCoords::timeCentroid_ [private] |
the 3 fundamental attributes of the state machine
Definition at line 228 of file UvwCoords.h.