28 #ifndef _MSVIS_POLAVERAGINGTVI_H_
29 #define _MSVIS_POLAVERAGINGTVI_H_
44 template<
typename T>
class Vector;
55 class ChannelSelector;
56 class ChannelSelectorCache;
58 class SpectralWindowChannelsCache;
59 class SpectralWindowChannels;
373 if (mode ==
"geometric") {
374 return AveragingMode::GEOMETRIC;
375 }
else if (mode ==
"stokes") {
376 return AveragingMode::STOKES;
377 }
else if (mode ==
"default") {
380 return AveragingMode::NUM_MODES;
411 #endif // _MSVIS_POLAVERAGINGTVI_H_
A Vector of integers, for indexing into Array<T> objects.
virtual ~PolAverageTVI()
Destructor.
A 1-D Specialization of the Array class.
std::vector< double > Vector
casacore::Record configuration_p
ViImplementation2 * createInstance(ViImplementation2 *vii0) const
Make a ViImplementation with another as input Must be specialized for each type.
Object to hold type of imaging weight scheme to be used on the fly and to provide facilities to do th...
void transformData(casacore::Cube< T > const &dataIn, casacore::Cube< casacore::Bool > const &flagIn, casacore::Int pid0, casacore::Int pid1, casacore::Cube< T > &dataOut) const
ViImplementation2 * createVi() const
static AveragingMode GetAverageModeFromConfig(casacore::Record const &configuration)
~GeometricPolAverageTVI()
virtual void transformFloatData(casacore::Cube< casacore::Float > const &dataIn, casacore::Cube< casacore::Bool > const &flagIn, casacore::Cube< casacore::Float > &dataOut) const
virtual void jonesC(casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > &cjones) const
Return feed configuration matrix for specified antenna Must fail.
A factory for generating ViImplementation2 for polarization averaging.
virtual casacore::String ViiType() const
Report the the ViImplementation type (should be specialized in child classes)
virtual casacore::String ViiType() const
Report the the ViImplementation type (should be specialized in child classes)
virtual void visibilityModel(casacore::Cube< casacore::Complex > &vis) const
ViImplementation2 * inputVII_p
PolAverageVi2Factory(casacore::Record const &configuration, ViImplementation2 *inputVII)
Constructor.
virtual casacore::Int polarizationId() const
Polarization Id will point to the new row to be added (to the end)
PolAverageTVI(ViImplementation2 *inputVi)
Constructor.
PolAverageTVILayerFactory(casacore::Record const &configuration)
virtual casacore::IPosition visibilityShape() const
Return the shape of the visibility Cube.
virtual void floatData(casacore::Cube< casacore::Float > &fcube) const
Return FLOAT_DATA as a casacore::Cube (npol, nchan, nrow) if found in the MS.
casacore::Vector< casacore::Int > polId1_
virtual void sigmaSpectrum(casacore::Cube< casacore::Float > &wtsp) const
Return sgimaspectrum (a sigma for each channel)
virtual ~PolAverageTVILayerFactory()
StokesPolAverageTVI(ViImplementation2 *inputVi)
virtual casacore::Int nPolarizationIds() const
POLARIZATION table will have additional entry nPolarizationIds() should return original number plus o...
virtual void weightSpectrum(casacore::Cube< casacore::Float > &wtsp) const
Return weightspectrum (a weight for each channel) TODO.
virtual casacore::Vector< casacore::Stokes::StokesTypes > getCorrelationTypesSelected() const
Fast Square Matrix class with fixed (templated) size.
casacore::Vector< casacore::Bool > doTransform_
Flags (per ms, per data description) whether transformation must be executed or not condition: ...
void configurePolAverage()
Properly fill doTransform_, polId0_, and polId1_ based on current MS.
virtual void corrType(casacore::Vector< casacore::Int > &corrTypes) const
Override the following methods to always return Stokes::I.
virtual void transformWeight(casacore::Array< casacore::Float > const &weightIn, casacore::Array< casacore::Float > &weightOut) const =0
transform weight (WEIGHT, WEIGHT_SPECTRUM) TODO
A hierarchical collection of named fields of various types.
bool Bool
Define the standard types used by Casacore.
virtual void transformComplexData(casacore::Cube< casacore::Complex > const &dataIn, casacore::Cube< casacore::Bool > const &flagIn, casacore::Cube< casacore::Complex > &dataOut) const
transform data (DATA, CORRECTED_DATA, MODEL_DATA, FLOAT_DATA)
virtual casacore::Vector< casacore::Stokes::StokesTypes > getCorrelationTypesDefined() const
Bool isDefined(const String &fieldName) const
Test if a field name exists.
void reconfigurePolAverageIfNecessary()
Reconfigure if necessary.
virtual void transformFloatData(casacore::Cube< casacore::Float > const &dataIn, casacore::Cube< casacore::Bool > const &flagIn, casacore::Cube< casacore::Float > &dataOut) const
casacore::Vector< casacore::Vector< casacore::Slice > > ChannelSlicer
virtual void origin()
Methods to control and monitor subchunk iteration.
virtual void sigma(casacore::Matrix< casacore::Float > &sigmat) const
Return sigma.
A Table intended to hold astronomical data (a set of Measurements).
void transformData(casacore::Cube< T > const &dataIn, casacore::Cube< casacore::Bool > const &flagIn, casacore::Int pid0, casacore::Int pid1, casacore::Cube< T > &dataOut) const
virtual void weight(casacore::Matrix< casacore::Float > &wtmat) const
Return weight TODO.
virtual void visibilityCorrected(casacore::Cube< casacore::Complex > &vis) const
Return the visibilities as found in the casacore::MS, casacore::Cube (npol,nchan,nrow).
friend PolAverageVi2Factory
virtual void transformComplexData(casacore::Cube< casacore::Complex > const &dataIn, casacore::Cube< casacore::Bool > const &flagIn, casacore::Cube< casacore::Complex > &dataOut) const
transform data (DATA, CORRECTED_DATA, MODEL_DATA, FLOAT_DATA)
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
virtual void flag(casacore::Cube< casacore::Bool > &flags) const
Return flag for each polarization, channel and row.
const String & asString(const RecordFieldId &) const
virtual casacore::String ViiType() const =0
Report the the ViImplementation type.
virtual void transformComplexData(casacore::Cube< casacore::Complex > const &dataIn, casacore::Cube< casacore::Bool > const &flagIn, casacore::Cube< casacore::Complex > &dataOut) const =0
transform data (DATA, CORRECTED_DATA, MODEL_DATA, FLOAT_DATA)
virtual casacore::String ViiType() const
Report the the ViImplementation type (should be specialized in child classes)
String: the storage and methods of handling collections of characters.
virtual void transformWeight(casacore::Array< casacore::Float > const &weightIn, casacore::Array< casacore::Float > &weightOut) const
transform weight (WEIGHT, WEIGHT_SPECTRUM) TODO
GeometricPolAverageTVI(ViImplementation2 *inputVi)
virtual void flagRow(casacore::Vector< casacore::Bool > &rowflags) const
Return row flag.
void warnIfNoTransform()
warn if current dd is inappropriate for polarization averaging
virtual void transformFloatData(casacore::Cube< casacore::Float > const &dataIn, casacore::Cube< casacore::Bool > const &flagIn, casacore::Cube< casacore::Float > &dataOut) const =0
virtual const VisImagingWeight & getImagingWeightGenerator() const
Return imaging weight (a weight for each channel) virtual casacore::Matrix<casacore::Float> & imaging...
virtual casacore::Vector< casacore::Int > getCorrelations() const
~PolAverageVi2Factory()
Destructor.
virtual void transformWeight(casacore::Array< casacore::Float > const &weightIn, casacore::Array< casacore::Float > &weightOut) const
transform weight (WEIGHT, WEIGHT_SPECTRUM) TODO
void downcase()
internal transformation to lowercase of String
virtual void visibilityObserved(casacore::Cube< casacore::Complex > &vis) const
casacore::Vector< casacore::Int > polId0_
List of polarization ids that points either (XX,YY) or (RR,LL) Vector<Vector<uInt> > polId0; Vector<V...
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.