28 #ifndef MSVIS_VISIBILITYITERATOR2_H
29 #define MSVIS_VISIBILITYITERATOR2_H
47 class MSDerivedValues;
49 class RecordInterface;
50 class ROMSAntennaColumns;
51 class ROMSDataDescColumns;
52 class ROMSFeedColumns;
53 class ROMSFieldColumns;
54 class ROMSFlagCmdColumns;
55 class ROMSHistoryColumns;
56 class ROMSObservationColumns;
57 class ROMSPointingColumns;
58 class ROMSPolarizationColumns;
59 class ROMSProcessorColumns;
60 class ROMSSpWindowColumns;
61 class ROMSStateColumns;
62 class ROMSDopplerColumns;
63 class ROMSFreqOffsetColumns;
64 class ROMSSourceColumns;
65 class ROMSSysCalColumns;
66 class ROMSWeatherColumns;
67 template <
typename T, Int N>
class RigidVector;
68 template <
typename T, Int N>
class SquareMatrix;
78 class VisImagingWeight;
142 class Subchunk :
public std::pair<casacore::Int, casacore::Int>{
148 Subchunk () { resetToOrigin ();}
152 return first == other.first &&
second == other.second;
156 return first < other.first ||
162 void incrementSubChunk () {
second ++;}
165 void resetSubChunk () {
second = 0;}
174 static Subchunk noMoreData ();
const casacore::ROMSDataDescColumns & dataDescriptionSubtablecols() const
Access to dataDescription subtable.
const casacore::ROMSProcessorColumns & processorSubtablecols() const
Access to processor subtable.
const casacore::ROMSPolarizationColumns & polarizationSubtablecols() const
Access to polarization subtable.
void writeVisObserved(const casacore::Cube< casacore::Complex > &vis)
A 1-D Specialization of the Array class.
static casacore::Float square(casacore::Float x)
casacore::Double getInterval() const
In this context the interval determines what rows will be contained in a chunk.
Other methods Returns true if this is an asynchronous VI *casacore::Bool isAsynchronous() const
virtual ViImplementation2 * operator()(const VisBufferComponents2 *, const casacore::Block< casacore::MeasurementSet > &, const casacore::Block< casacore::Int > &, const casacore::Bool, casacore::Double) const
casacore::Bool shouldAddDefaultColumns() const
const casacore::ROMSStateColumns & state() const
virtual void writeFlag(const casacore::Cube< casacore::Bool > &flag)
Write/modify the flags in the data.
Object to hold type of imaging weight scheme to be used on the fly and to provide facilities to do th...
const casacore::ROMSSpWindowColumns & spectralWindowSubtablecols() const
Access to spectralWindow subtable.
const casacore::ROMSDopplerColumns & doppler() const
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
virtual void writeWeightSpectrum(const casacore::Cube< casacore::Float > &wtsp)
Write/modify the weightMat.
A class to provide easy access to MSField columns.
const casacore::ROMSFieldColumns & fieldSubtablecols() const
Access to field subtable.
void construct(const VisBufferComponents2 *prefetchColumns, const casacore::Block< const casacore::MeasurementSet * > &mss, const SortColumns &sortColumns, casacore::Double timeInterval, casacore::Bool writable)
virtual void writeFlagRow(const casacore::Vector< casacore::Bool > &rowflags)
Write/modify the flag row column; dimension casacore::Vector(nrow)
VLAT is the Visibility LookAhead Thread. This thread advances a visibility iterator and fills the dat...
const casacore::ROMSSourceColumns & source() const
A class to provide easy read-only access to MSSource columns.
casacore::Int nSpectralWindows() const
Return number of spws, polids, ddids for the current MS.
enum casacore::MSIter::PolFrame PolFrame
casacore::Int getReportingFrameOfReference() const
The reporting frame of reference is the default frame of reference to be used when the user requests ...
virtual casacore::Bool hasWeightScaling() const
casacore::String toString() const
casacore::CountedPtr< casacore::MSIter > msIter_p
casacore::Bool sigmaSpectrumExists() const
Determine whether WEIGHT_SPECTRUM exists.
casacore::Int getRowBlocking() const
RowBlocking is a suggestion to the iterator that it try to use subchunks having the suggested number ...
const casacore::ROMSFlagCmdColumns & flagCmd() const
WeightScalingImpl(F f)
Provide either a unary function, casacore::Float (*) (casacore::Float), or a functor class having a c...
virtual casacore::Float apply(casacore::Float)=0
casacore::Bool more() const
const casacore::ROMSPointingColumns & pointing() const
VisBufferOptions
These are options to be applied to a VisBuffer, usually when it's created.
casacore::Bool moreChunks() const
casacore::Int nPolarizationIds() const
const casacore::ROMSFlagCmdColumns & flagCmdSubtablecols() const
Access to flagCmd subtable.
A class to provide easy read-only access to MSProcessor columns.
A class to provide easy read-only access to MSWeather columns.
A class to provide easy read-only access to MSASpectralWindow columns.
void slurp() const
Call to use the slurp i/o method for all scalar columns.
const casacore::ROMSFreqOffsetColumns & freqOffsetSubtablecols() const
Access to freqOffset subtable.
A class to provide easy read-only access to MSFreqOffset columns.
A class to provide easy read-only access to MSState columns.
Subchunk getSubchunkId() const
Returns the pair (chunk,subchunk) for the current position of the VI.
const casacore::ROMSObservationColumns & observationSubtablecols() const
Access to observation subtable.
ViImplementation2 * impl_p
void origin()
END Experimental Section.
casacore::Int nDataDescriptionIds() const
(i.e., length of polarization subtable)
static casacore::CountedPtr< WeightScaling > generateSquareWeightScaling()
SortColumns(const casacore::Block< casacore::Int > &columnIds=casacore::Block< casacore::Int >(), casacore::Bool addDefaultColumns=true)
static casacore::CountedPtr< WeightScaling > generateUnityWeightScaling()
void writeBackChanges(VisBuffer2 *)
Requests that the modified VisBuffer2 be written back to the visibility at the same spot that it came...
const casacore::ROMSSysCalColumns & sysCal() const
void useImagingWeight(const VisImagingWeight &imWgt)
Assign a VisImagingWeight object to this iterator.
const casacore::ROMSFreqOffsetColumns & freqOffset() const
const casacore::ROMSWeatherColumns & weatherSubtablecols() const
Access to weather subtable.
static casacore::Float identity(casacore::Float x)
const casacore::ROMSHistoryColumns & historySubtablecols() const
Access to history subtable.
VisibilityIterator2 & operator=(const VisibilityIterator2 &)=delete
ViImplementation2 * getImpl() const
static casacore::Float unity(casacore::Float)
casacore::Float apply(casacore::Float f)
const casacore::MeasurementSet & ms() const
reference to actual ms in interator
virtual ViImplementation2 * createVi() const =0
Referenced counted pointer for constant data.
const casacore::ROMSPointingColumns & pointingSubtablecols() const
Access to pointing subtable.
const casacore::ROMSPolarizationColumns & polarization() const
A class to provide easy read-only access to MSPointing columns.
const casacore::ROMSFieldColumns & field() const
A class to provide easy read-only access to MSDoppler columns.
void writeVisModel(const casacore::Cube< casacore::Complex > &vis)
void setRowBlocking(casacore::Int nRows=0)
casacore::Bool isWritable() const
Returns true if this VI is writable (always false for ROVI and true for VI; see VisibilityIterator cl...
casacore::CountedPtr< WeightScaling > generateWeightScaling(F f)
A class to provide easy read-only access to MSHistory columns.
static casacore::Bool isAsynchronousIoEnabled()
Returns true if async I/O is globally enabled.
const casacore::ROMSProcessorColumns & processor() const
bool existsColumn(VisBufferComponent2 id) const
Returns true if the specified column exists.
bool operator<(const HeaderItemInfo &left, const HeaderItemInfo &right)
A class to provide easy read-only access to MSDataDesc columns.
bool Bool
Define the standard types used by Casacore.
void writeWeight(const casacore::Matrix< casacore::Float > &wt)
Write/modify the weights.
void writeFlagCategory(const casacore::Array< casacore::Bool > &fc)
const casacore::ROMSSpWindowColumns & spectralWindow() const
const casacore::ROMSWeatherColumns & weather() const
const casacore::ROMSFeedColumns & feedSubtablecols() const
Access to feed subtable.
static casacore::String getAipsRcBase()
casacore::String ViiType() const
Report the the ViImplementation type.
casacore::Float operator()(casacore::Float x)
the data returned is simply the channels that currently map to the selected frequencies for the specified frame of reference *void setFrequencySelection(const FrequencySelection &)
virtual ~VisibilityIterator2()
Destructor.
A Table intended to hold astronomical data (a set of Measurements).
casacore::Bool weightSpectrumExists() const
Determine whether WEIGHT_SPECTRUM exists.
const casacore::ROMSAntennaColumns & antenna() const
const casacore::ROMSSourceColumns & sourceSubtablecols() const
Access to source subtable.
const Double second
Time interval [T]:
void writeSigma(const casacore::Matrix< casacore::Float > &sig)
Write/modify the Sigma.
SubtableColumns(casacore::CountedPtr< casacore::MSIter > msIter)
Simple wrapper class to limit access to only the columns associated with the current casacore::MS's s...
static casacore::CountedPtr< WeightScaling > generateIdentityWeightScaling()
const casacore::ROMSDopplerColumns & dopplerSubtablecols() const
Access to doppler subtable.
casacore::Block< casacore::Int > columnIds_p
void setReportingFrameOfReference(casacore::Int)
void writeVisCorrected(const casacore::Cube< casacore::Complex > &vis)
Write/modify the visibilities.
A class to provide easy read-only access to MSObservation columns.
VisBuffer2s encapsulate one chunk of visibility data for processing.
const casacore::ROMSSysCalColumns & sysCalSubtablecols() const
Access to sysCal subtable.
A class to provide easy read-only access to MSPolarization columns.
casacore::Bool addDefaultColumns_p
const casacore::Block< casacore::Int > & getColumnIds() const
A class to provide easy read-only access to MSFeed columns.
void writeModel(const casacore::RecordInterface &record, casacore::Bool isComponentList=true, casacore::Bool addToExistingModel=false)
Write/modify the ncorr x nrow SigmaMat.
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
virtual casacore::String keyChange() const
Report Name of slowest column that changes at end of current iteration.
VisBuffer2 * getVisBuffer()
Returns the VisBuffer permanently attached to this VisibilityIterator.
A class to provide easy read-only access to MSAntenna columns.
String: the storage and methods of handling collections of characters.
const SortColumns & getSortColumns() const
Returns the columns that the VisibilityIterator2 is sorting by.
Bool operator==(const MVTime &lh, const MVTime &rh)
is equal operator, uses operator Double which returns days
BEGIN Experimental Section *static VisibilityIterator2 * copyingViFactory(const casacore::MeasurementSet &srcMs, casacore::MeasurementSet &dstMs)
const casacore::ROMSDataDescColumns & dataDescription() const
virtual void initWeightSpectrum(const casacore::Cube< casacore::Float > &wtsp)
Initialize the weightSpectrum.
const VisImagingWeight & getImagingWeightGenerator() const
const casacore::ROMSFeedColumns & feed() const
const casacore::ROMSStateColumns & stateSubtablecols() const
Access to state subtable.
virtual void setWeightScaling(casacore::CountedPtr< WeightScaling > weightscaling)
Manages the weight function that can be used to process the weights produced by the "scaled" variants...
This class encapsulates an enum with values corresponding to the various data components accessible v...
const casacore::ROMSHistoryColumns & history() const
Abstract base class for Record classes.
const casacore::ROMSAntennaColumns & antennaSubtablecols() const
Subchunk class Provides the ordered pair identifying the current subchunk The first component is the chunk(goes from 0 to nChunks-1 during the outer loop iteration).The second component is the subchunk number which is zero after VisibilityIterator
VisBufferImpls encapsulate one chunk of visibility data for processing.
A class to provide easy read-only access to MSFlagCmd columns.
A class to provide easy read-only access to MSSysCal columns.
void setInterval(casacore::Double timeInterval)
const vi::SubtableColumns & subtableColumns() const
casacore::Int nRowsInChunk() const
Return the numbers of rows in the current chunk.
const casacore::ROMSObservationColumns & observation() const
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.