8 #if ! defined (VisibilityIteratorAsync_H_)
9 #define VisibilityIteratorAsync_H_
18 #define NotImplementedROVIA throw utilj::AipsErrorTrace (casacore::String ("Method not legal in ROVIA: ") + __PRETTY_FUNCTION__, __FILE__, __LINE__)
19 #define NotPrefetched throw utilj::AipsErrorTrace (casacore::String ("Column not prefetched for async I/O: ") + __PRETTY_FUNCTION__, __FILE__, __LINE__)
25 class VisBufferAsyncWrapper;
29 class AsynchronousInterface;
204 void slurp()
const { NotImplementedROVIA; }
362 #endif // ViReadImplAsync
casacore::Int nSubInterval() const
Return the number of sub-intervals in the current chunk.
casacore::Vector< casacore::MDirection > azel(casacore::Double) const
A Vector of integers, for indexing into Array<T> objects.
casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > & CJones(casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > &) const
Return feed configuration matrix for specified antenna.
A Measure: astronomical direction.
void allSelectedSpectralWindows(casacore::Vector< casacore::Int > &, casacore::Vector< casacore::Int > &)
get back the selected spectral windows and spectral channels for current ms
casacore::Cube< casacore::Float > & weightSpectrum(casacore::Cube< casacore::Float > &) const
Return weightspectrum (a weight for each channel)
casacore::Cube< casacore::Complex > & visibility(casacore::Cube< casacore::Complex > &, DataColumn) const
Return the visibilities as found in the casacore::MS, casacore::Cube (npol,nchan,nrow).
void setSigmaMat(const casacore::Matrix< casacore::Float > &sigmat)
Set/modify the ncorr x nrow SigmaMat.
void setRowBlocking(casacore::Int nRow)
Set the 'blocking' size for returning data.
casacore::Vector< casacore::Int > & antenna2(casacore::Vector< casacore::Int > &) const
Return antenna2.
ViReadImplAsync(const casacore::Block< casacore::MeasurementSet > &mss, const PrefetchColumns &prefetchColumns, const casacore::Block< casacore::Int > &sortColumns, const casacore::Bool addDefaultSortCols, casacore::Double timeInterval, casacore::Bool writable)
static VisibilityIteratorReadImpl * create (const ROVisibilityIterator &, const PrefetchColumns & pre...
casacore::Int channelGroupSize() const
Return the width of the current group of channels, i.e., the number of channels returned by visibilit...
casacore::Int numberPol()
casacore::Vector< casacore::Float > & weight(casacore::Vector< casacore::Float > &) const
Return weight.
casacore::Int numberCoh()
Return number of rows in all selected ms's.
bool more() const
casacore::Vector<casacore::Float> getReceptor0Angle ();
const casacore::Vector< casacore::String > & antennaMounts() const
return a string mount identifier for each antenna
casacore::Int channelIndex() const
Return the index of the first channel of the current channel group in the total (selected) spectrum...
void setSigma(const casacore::Vector< casacore::Float > &sig)
Set/modify the Sigma.
casacore::Vector< casacore::Double > & frequency(casacore::Vector< casacore::Double > &) const
Return current frequencies (in Hz, acc.
casacore::Bool newArrayId() const
Return true if arrayID has changed since last iteration.
VisibilityIterator iterates through one or more writable MeasurementSets.
static casacore::String prefetchColumnName(casacore::Int id)
void getFloatDataColumn(const casacore::Slicer &, casacore::Cube< casacore::Float > &) const
get FLOAT_DATA as real Floats.
casacore::Int msId() const
VLAT is the Visibility LookAhead Thread. This thread advances a visibility iterator and fills the dat...
casacore::Vector< casacore::Int > & channel(casacore::Vector< casacore::Int > &) const
Return channel numbers in selected VisSet spectrum (i.e.
casacore::Vector< casacore::Double > & exposure(casacore::Vector< casacore::Double > &) const
Return actual time interval.
void setWeightMat(const casacore::Matrix< casacore::Float > &wtmat)
Set/modify the weightMat.
casacore::Vector< casacore::Int > & scan(casacore::Vector< casacore::Int > &) const
Return scan number.
void setFlag(const casacore::Matrix< casacore::Bool > &flag)
Set/modify the flags in the data.
casacore::Vector< casacore::Double > & timeCentroid(casacore::Vector< casacore::Double > &) const
Return MJD centroid of interval.
casacore::Int spectralWindow() const
Return current SpectralWindow.
bool moreChunks() const
Return false if no more 'Chunks' of data left.
casacore::Vector< casacore::Bool > & flagRow(casacore::Vector< casacore::Bool > &) const
Return row flag.
std::stack< VisBufferAsyncWrapper * > vbaWrapperStack_p
void setPrefetchColumns(const PrefetchColumns &prefetchColumns)
casacore::Vector< casacore::Int > & feed1(casacore::Vector< casacore::Int > &) const
Return feed1.
casacore::Matrix< casacore::Float > & sigmaMat(casacore::Matrix< casacore::Float > &) const
Return sigma matrix (pol-dep)
casacore::Int polFrame() const
Return frame for polarization (returns PolFrame enum)
friend class Rovia_Test
This needs to be changed back to ROVisibilityIterator at some point after feasibility testing...
void setVis(const casacore::Matrix< CStokesVector > &vis, DataColumn whichOne)
Set/modify the visibilities.
A Measure: instant in time.
casacore::Array< casacore::Bool > & flagCategory(casacore::Array< casacore::Bool > &) const
Return flags for each polarization, channel, category, and row.
casacore::String fieldName() const
Return the current Field Name.
void getFloatDataColumn(casacore::Cube< casacore::Float > &) const
casacore::IPosition visibilityShape() const
Return the shape of the visibility Cube.
ABSTRACT CLASSES Deliberately vague to be general enough to allow for many different types of data
casacore::Bool newSpectralWindow() const
Return true if SpectralWindow has changed since last iteration.
Internal value for MRadialVelocity.
casacore::Bool allBeamOffsetsZero() const
The functions below make no sense (at first glance) for asynchronous operation and are implemented to...
Fast Vector classes with fixed (templated) length.
casacore::Vector< casacore::Float > getReceptor0Angle()
casacore::Bool newFieldId() const
Return true if FieldId/Source has changed since last iteration.
PrefetchColumns prefetchColumns_p
casacore::Int getDataDescriptionId() const
void setFlagRow(const casacore::Vector< casacore::Bool > &rowflags)
Set/modify the flag row column; dimension casacore::Vector(nrow)
const casacore::MeasurementSet & ms() const
reference to actual ms in interator
void setWeightSpectrum(const casacore::Cube< casacore::Float > &wtsp)
Set/modify the weightSpectrum.
casacore::Int getMeasurementSetId() const
const casacore::Cube< casacore::RigidVector< casacore::Double, 2 > > & getBeamOffsets() const
Return a cube containing pairs of coordinate offsets for each receptor of each feed (values are in ra...
void attachVisBuffer(VisBuffer &vb)
Attach a VisBuffer object.
PrefetchColumns getPrefetchColumns() const
void construct(const casacore::Block< casacore::MeasurementSet > &mss, const PrefetchColumns &prefetchColumns, const casacore::Block< casacore::Int > &sortColumns, const casacore::Bool addDefaultSortCols, casacore::Double timeInterval, casacore::Bool writable)
Fast Square Matrix class with fixed (templated) size.
The PrefetchColumns class is used to specify a set of columns that can be prefetched when the (RO)Vis...
casacore::Int nRowChunk() const
Return the numbers of rows in the current chunk.
ViReadImplAsync & operator=(const ViReadImplAsync &MSI)
casacore::MEpoch getEpoch() const
casacore::Int getDataDescriptionId () const; const casacore::MeasurementSet & getMeasurementSet(); co...
casacore::Vector< casacore::Double > & timeInterval(casacore::Vector< casacore::Double > &) const
Return nominal time interval.
VisibilityIteratorReadImpl & velInterpolation(const casacore::String &)
Select the velocity interpolation scheme.
casacore::Int nCorr() const
Return the number of correlations in the current iteration.
void lsrFrequency(const casacore::Int &, casacore::Vector< casacore::Double > &, casacore::Bool &)
casacore::Matrix< CStokesVector > & visibility(casacore::Matrix< CStokesVector > &, DataColumn) const
Return the visibility 4-vector of polarizations for each channel.
A class to provide easy read-only access to MeasurementSet columns.
casacore::Vector< casacore::Double > & lsrFrequency(casacore::Vector< casacore::Double > &) const
Return frequencies (in Hz, acc.
ROVisibilityIterator iterates through one or more readonly MeasurementSets.
void putModel(const casacore::RecordInterface &rec, casacore::Bool iscomponentlist=true, casacore::Bool incremental=false)
This puts a model into the descriptor of the actual ms Set iscomponentlist to true if the record repr...
casacore::Vector< casacore::uInt > getRowIds() const
casa::asyncio::PrefetchColumns PrefetchColumns
VisibilityIteratorReadImpl * clone() const
casacore::String sourceName() const
Return the current Source Name.
void slurp() const
Call to use the slurp i/o method for all scalar columns.
void origin()
Reset iterator to origin/start of data (of current chunk)
void saveMss(const casacore::Block< casacore::MeasurementSet > &mss)
casacore::Cube< casacore::Float > & floatData(casacore::Cube< casacore::Float > &) const
Return FLOAT_DATA as a casacore::Cube (npol, nchan, nrow) if found in the MS.
casacore::Int polarizationId() const
Return current Polarization Id.
void setVisAndFlag(const casacore::Cube< casacore::Complex > &vis, const casacore::Cube< casacore::Bool > &flag, DataColumn whichOne)
Set the visibility and flags, and interpolate from velocities if needed.
casacore::Int fieldId() const
casacore::Vector<casacore::Float> feed_pa(casacore::Double) const { NotImplementedROVIA; } ...
Types
Types of known MRadialVelocity Warning: The order defines the order in the translation matrix FromTo...
bool Bool
Define the standard types used by Casacore.
static int getDefaultNBuffers()
These functions generate a list of the IDs (from PrefetchColumnIDs enum) of the columns to prefetch...
ViWriteImplAsync(VisibilityIterator *vi)
VisibilityIteratorReadImpl & selectVelocity(casacore::Int, const casacore::MVRadialVelocity &, const casacore::MVRadialVelocity &, casacore::MRadialVelocity::Types, casacore::MDoppler::Types, casacore::Bool)
Velocity selection - specify the output channels in velocity: nChan - number of output channels...
casacore::Bool existsWeightSpectrum() const
void getInterpolatedFloatDataFlagWeight() const
const casacore::ROMSColumns & msColumns() const
Access the current casacore::ROMSColumns object in MSIter.
void detachVisBuffer(VisBuffer &vb)
Detach a VisBuffer object.
void originChunks()
Reset iterator to true start of data (first chunk)
Types
Types of known MDopplers Warning: The order defines the order in the translation matrix FromTo in th...
const casacore::Cube< casacore::Double > & receptorAngles() const
Return receptor angles for all antennae and feeds First axis of the cube is a receptor number...
VisibilityIteratorWriteImpl * clone() const
casacore::Int getNAntennas() const
asyncio::AsynchronousInterface * interface_p
void startVlat ();
casacore::Vector< casacore::Int > & observationId(casacore::Vector< casacore::Int > &) const
Return the OBSERVATION_IDs.
const casacore::MDirection & phaseCenter() const
Return the current phase center as an MDirection.
casacore::Vector< casacore::Int > & corrType(casacore::Vector< casacore::Int > &) const
Return the correlation type (returns casacore::Stokes enums)
void queueWriteData(const asyncio::WriteData &data)
const casacore::MeasurementSet & getMeasurementSet() const
casacore::Vector< casacore::Int > & feed2(casacore::Vector< casacore::Int > &) const
Return feed2.
void setInterval(casacore::Double timeInterval)
Set or reset the time interval (in seconds) to use for iteration.
A Table intended to hold astronomical data (a set of Measurements).
casacore::Int dataDescriptionId() const
Return current DataDescription Id.
const casacore::MeasurementSet & getMs() const
casacore::Vector< casacore::Float > & sigma(casacore::Vector< casacore::Float > &) const
Return sigma.
Specify which elements to extract from an n-dimensional array.
void dumpPrefetchColumns() const
virtual Bool more() const
Return False if there is no more data.
VisBuffer * getVisBuffer()
casacore::Int numberSpw()
Return number of spws, polids, ddids.
virtual void advance()
advance the iteration
VisBufferAsync * visBufferAsync_p
VisibilityIteratorReadImpl & selectChannel(casacore::Int nGroup=1, casacore::Int start=0, casacore::Int width=0, casacore::Int increment=1, casacore::Int spectralWindow=-1)
Channel selection - only the selected channels will be returned by the access functions.
casacore::MDirection azel0(casacore::Double) const
Return the antenna AZ/EL casacore::Vector (nant)
casacore::Vector< casacore::uInt > & rowIds(casacore::Vector< casacore::uInt > &) const
Return the row ids as from the original root table.
casacore::Int numberDDId()
void setFlagCategory(const casacore::Array< casacore::Bool > &flagCategory)
casacore::Vector< casacore::Int > & processorId(casacore::Vector< casacore::Int > &) const
Return the PROCESSOR_IDs.
casacore::Vector< casacore::Float > parang(casacore::Double) const
Per antenna:
casacore::Vector< casacore::Int > & stateId(casacore::Vector< casacore::Int > &) const
Return the STATE_IDs.
casacore::Double hourang(casacore::Double) const
Return the hour angle for the specified time.
casacore::Int nRow() const
Return the number of rows in the current iteration.
String: the storage and methods of handling collections of characters.
VisBuffers encapsulate one chunk of visibility data for processing.
VisibilityIterator iterates through one or more writable MeasurementSets.
casacore::Matrix< casacore::Double > & uvwMat(casacore::Matrix< casacore::Double > &) const
Abstract base class for Record classes.
casacore::Cube< casacore::Bool > & flag(casacore::Cube< casacore::Bool > &) const
Return flag for each polarization, channel and row.
ROVisibilityIterator iterates through one or more readonly MeasurementSets.
casacore::Vector< casacore::Int > & antenna1(casacore::Vector< casacore::Int > &) const
Return antenna1.
asyncio::VlaData * vlaData_p
casacore::Vector< casacore::RigidVector< casacore::Double, 3 > > & uvw(casacore::Vector< casacore::RigidVector< casacore::Double, 3 > > &) const
Return u,v and w (in meters)
casacore::Vector< casacore::Double > & time(casacore::Vector< casacore::Double > &) const
Return MJD midpoint of interval.
casa::asyncio::PrefetchColumns PrefetchColumns
casacore::MEpoch getMEpoch() const
void getChannelSelection(casacore::Block< casacore::Vector< casacore::Int > > &, casacore::Block< casacore::Vector< casacore::Int > > &, casacore::Block< casacore::Vector< casacore::Int > > &, casacore::Block< casacore::Vector< casacore::Int > > &, casacore::Block< casacore::Vector< casacore::Int > > &)
get the channel selection...the block over the number of ms's associated with this iterator ...
PrefetchColumns augmentPrefetchColumns(const PrefetchColumns &prefetchColumnsBase)
casacore::Int arrayId() const
Return the current ArrayId.
casacore::Bool newMS() const
Check if ms has change since last iteration.
casacore::Matrix< casacore::Bool > & flag(casacore::Matrix< casacore::Bool > &) const
Return flag for each channel & row.
casacore::Matrix< casacore::Float > & weightMat(casacore::Matrix< casacore::Float > &) const
Returns the nPol_p x curNumRow_p weight matrix.
void setWeight(const casacore::Vector< casacore::Float > &wt)
Set/modify the weights.
ViReadImplAsync * getReadImpl()
const casacore::Float & parang0(casacore::Double) const
Return nominal parallactic angle at specified time (does not include feed position angle offset–see f...
ViReadImplAsync & nextChunk()
Advance to the next Chunk of data.
casacore::MSIter msIter_p
void getInterpolatedVisFlagWeight(DataColumn) const