|
| VisBufferImpl () |
| Create empty VisBufferImpl you can assign to or attach. More...
|
|
| VisBufferImpl (ROVisibilityIterator2 &iter) |
| Construct VisBufferImpl for a particular VisibilityIterator2 The buffer will remain synchronized with the iterator. More...
|
|
| VisBufferImpl (const VisBufferImpl &vb) |
| Copy construct, looses synchronization with iterator: only use buffer for current iteration (or reattach). More...
|
|
virtual | ~VisBufferImpl () |
| Destructor (detaches from VisIter) More...
|
|
virtual VisBufferImpl & | operator= (const VisBufferImpl &vb) |
| Assignment, loses synchronization with iterator: only use buffer for current iteration (or reattach) More...
|
|
virtual void | assign (const VisBufferImpl &vb, casacore::Bool copy=true) |
| Assignment, optionally without copying the data across; with copy=true this is identical to normal assignment operator. More...
|
|
virtual VisBufferImpl * | clone () const |
|
virtual const
ROVisibilityIterator2 * | getVi () const |
|
virtual void | invalidate () |
|
*virtual void | dirtyComponentsAdd (const VbDirtyComponents &additionalDirtyComponents) |
| –> provided by VI: virtual casacore::Int nRowChunk() const; More...
|
|
virtual void | dirtyComponentsAdd (VisBufferComponents::EnumType component) |
|
virtual void | dirtyComponentsClear () |
|
virtual VbDirtyComponents | dirtyComponentsGet () const |
|
virtual void | dirtyComponentsSet (const VbDirtyComponents &dirtyComponents) |
|
virtual void | dirtyComponentsSet (VisBufferComponents::EnumType component) |
|
virtual casacore::Vector
< casacore::Float > | feed_pa (casacore::Double time) const |
| –> This needs to be removed: virtual casacore::Bool fetch(const asyncio::PrefetchColumns *pfc); More...
|
|
virtual casacore::Float | parang0 (casacore::Double time) const |
| direction1() and direction2() return arrays of directions where the first and the second antenna/feed are pointed to. More...
|
|
virtual casacore::Vector
< casacore::Float > | parang (casacore::Double time) const |
|
virtual casacore::MDirection | azel0 (casacore::Double time) const |
|
virtual void | azel0Vec (casacore::Double time, casacore::Vector< casacore::Double > &azelVec) const |
|
virtual casacore::Vector
< casacore::MDirection > | azel (casacore::Double time) const |
|
virtual void | azelMat (casacore::Double time, casacore::Matrix< casacore::Double > &azelMat) const |
|
virtual casacore::Double | hourang (casacore::Double time) const |
| Hour angle for specified time. More...
|
|
void | freqAveCubes () |
| virtual const casacore::Vector<casacore::Double>& lsrFrequency() const; virtual void setLsrFrequency (const casacore::Vector<casacore::Double>&); More...
|
|
void | averageChannels (const casacore::Matrix< casacore::Int > &chanavebounds) |
| Average channel axis according to chanavebounds, for whichever of DATA, MODEL_DATA, CORRECTED_DATA, FLOAT_DATA, FLAG, and WEIGHT_SPECTRUM are present. More...
|
|
virtual void | sortCorr () |
| Form casacore::Stokes parameters from correlations
(these are preliminary versions) –> Not called: virtual void formStokes(); –> Not called: virtual void formStokesWeightandFlag(); –> Not called: virtual void formStokes(casacore::Cube<casacore::Complex>& vis); –> Not called: virtual void formStokes(casacore::Cube<casacore::Float>& fcube); // Will throw up if asked to do all 4. More...
|
|
virtual void | unSortCorr () |
|
virtual void | normalize (const casacore::Bool &phaseOnly=false) |
| Normalize the visCube by the modelVisCube (and optionally also divide visCube_p by its normalized amp) More...
|
|
virtual void | resetWeightsUsingSigma () |
| Fill weightMat according to sigma column. More...
|
|
virtual void | updateCoordInfo (const VisBufferImpl *vb=NULL, const casacore::Bool dirDependent=true) |
| Rotate visibility phase for given vector (dim = nrow of vb) of phases (metres) More...
|
|
void | copyCoordInfo (const VisBufferImpl &other, casacore::Bool force=false) |
|
virtual casacore::Bool | isNewArrayId () const |
| –> Not called: virtual void setCorrectedVisCube(const casacore::Cube<casacore::Complex>& vis); Like the above, but for FLOAT_DATA, keeping it as real floats. More...
|
|
virtual casacore::Bool | isNewFieldId () const |
|
virtual casacore::Bool | isNewMs () const |
|
virtual casacore::Bool | isNewSpectralWindow () const |
|
virtual casacore::Bool | isWritable () const |
|
virtual casacore::Int | msId () const |
|
virtual casacore::String | msName (casacore::Bool stripPath=false) const |
|
casacore::Data accessors and | setters (where appropriate) There are the methods that allows access to the items cached in the VisBuffer.The straight accessors provide read-only access to the item.Where the item is allowed to be modified |
|
casacore::Data accessors and
one or more set methods are
provided *virtual
casacore::Vector
< casacore::Int > | antenna1 () const |
|
virtual const casacore::Vector
< casacore::Int > & | antenna2 () const |
|
virtual casacore::Int | arrayId () const |
|
virtual const casacore::Vector
< casacore::Int > & | channel () const |
|
virtual const casacore::Vector
< casacore::SquareMatrix
< casacore::Complex, 2 > > & | cjones () const |
|
virtual const casacore::Cube
< casacore::Complex > & | correctedVisCube () const |
|
virtual void | setCorrectedVisCube (const casacore::Cube< casacore::Complex > &) |
|
virtual const casacore::Matrix
< CStokesVector > & | correctedVisibility () const |
|
virtual void | setCorrectedVisibility (const casacore::Matrix< CStokesVector > &) |
|
virtual const casacore::Vector
< casacore::Int > & | corrType () const |
|
virtual casacore::Int | dataDescriptionId () const |
|
virtual const casacore::Vector
< casacore::MDirection > & | direction1 () const |
|
virtual const casacore::Vector
< casacore::MDirection > & | direction2 () const |
|
virtual const casacore::Vector
< casacore::Double > & | exposure () const |
|
virtual const casacore::Vector
< casacore::Int > & | feed1 () const |
|
virtual const casacore::Vector
< casacore::Float > & | feed1_pa () const |
|
virtual const casacore::Vector
< casacore::Int > & | feed2 () const |
|
virtual const casacore::Vector
< casacore::Float > & | feed2_pa () const |
|
virtual casacore::Int | fieldId () const |
|
virtual const casacore::Matrix
< casacore::Bool > & | flag () const |
|
virtual void | setFlag (const casacore::Matrix< casacore::Bool > &) |
|
virtual const casacore::Array
< casacore::Bool > & | flagCategory () const |
|
virtual void | setFlagCategory (const casacore::Array< casacore::Bool > &) |
|
virtual const casacore::Cube
< casacore::Bool > & | flagCube () const |
|
virtual void | setFlagCube (const casacore::Cube< casacore::Bool > &) |
|
virtual const casacore::Vector
< casacore::Bool > & | flagRow () const |
|
virtual void | setFlagRow (const casacore::Vector< casacore::Bool > &) |
|
virtual const casacore::Cube
< casacore::Float > & | floatDataCube () const |
|
virtual void | setFloatDataCube (const casacore::Cube< casacore::Float > &) |
|
virtual const casacore::Vector
< casacore::Double > & | frequency () const |
|
virtual const casacore::Matrix
< casacore::Float > & | imagingWeight () const |
|
virtual const casacore::Cube
< casacore::Complex > & | modelVisCube () const |
|
virtual void | setModelVisCube (const casacore::Complex &c) |
|
virtual void | setModelVisCube (const casacore::Cube< casacore::Complex > &vis) |
|
virtual void | setModelVisCube (const casacore::Vector< casacore::Float > &stokes) |
|
virtual const casacore::Matrix
< CStokesVector > & | modelVisibility () const |
|
virtual void | setModelVisibility (casacore::Matrix< CStokesVector > &) |
|
virtual casacore::Int | nChannel () const |
|
virtual casacore::Int | nCorr () const |
|
virtual casacore::Int | nRow () const |
|
virtual const casacore::Vector
< casacore::Int > & | observationId () const |
|
virtual const
casacore::MDirection & | phaseCenter () const |
|
virtual const casacore::MDirection | phaseCenter (const casacore Int fieldid, const casacore::Double time=-1.0) const |
|
virtual casacore::Int | polFrame () const |
|
virtual const casacore::Vector
< casacore::Int > & | processorId () const |
|
virtual const casacore::Vector
< casacore::uInt > & | rowIds () const |
|
virtual const casacore::Vector
< casacore::Int > & | scan () const |
|
virtual const casacore::Vector
< casacore::Float > & | sigma () const |
|
virtual const casacore::Matrix
< casacore::Float > & | sigmaMat () const |
|
virtual casacore::Int | spectralWindow () const |
|
virtual const casacore::Vector
< casacore::Int > & | stateId () const |
|
virtual const casacore::Vector
< casacore::Double > & | time () const |
|
virtual const casacore::Vector
< casacore::Double > & | timeCentroid () const |
|
virtual const casacore::Vector
< casacore::Double > & | timeInterval () const |
|
virtual const casacore::Vector
< casacore::RigidVector
< casacore::Double, 3 > > & | uvw () const |
|
virtual const casacore::Matrix
< casacore::Double > & | uvwMat () const |
|
virtual const casacore::Cube
< casacore::Complex > & | visCube () const |
|
virtual void | setVisCube (const casacore::Complex &c) |
|
virtual void | setVisCube (const casacore::Cube< casacore::Complex > &) |
|
virtual const casacore::Matrix
< CStokesVector > & | visibility () const |
|
virtual void | setVisibility (casacore::Matrix< CStokesVector > &) |
|
virtual const casacore::Vector
< casacore::Float > & | weight () const |
|
virtual void | setWeight (const casacore::Vector< casacore::Float > &) |
|
virtual const casacore::Matrix
< casacore::Float > & | weightMat () const |
|
virtual void | setWeightMat (const casacore::Matrix< casacore::Float > &) |
|
virtual const casacore::Cube
< casacore::Float > & | weightSpectrum () const |
|
virtual void | setWeightSpectrum (const casacore::Cube< casacore::Float > &) |
|
|
virtual void | attachToVisibilityIterator2 (ROVisibilityIterator2 &iter) |
| Attach to a VisIter. More...
|
|
virtual void | cacheCopy (const VisBufferImpl &other, casacore::Bool markAsCached) |
|
virtual void | cacheClear (casacore::Bool markAsCached=false) |
|
void | adjustWeightFactorsAndFlags (casacore::Matrix< casacore::Float > &rowWeightFactors, casacore::Bool useWeightSpectrum, casacore::Int nRows, casacore::Int nCorrelations, casacore::Int nChannelsOut) |
|
void | adjustWeightAndSigmaMatrices (casacore::Int nChannelsAveraged, casacore::Int nChannelsOut, casacore::Int nRows, casacore::Int nCorrelations, casacore::Int nChannelsSelected, const casacore::Matrix< casacore::Float > &rowWeightFactors) |
|
casacore::Int | averageChannelFrequencies (casacore::Int nChannelsOut, const casacore::Vector< casacore::Int > &channels, const casacore::Matrix< casacore::Int > &averagingBounds) |
|
void | averageFlagInfoChannels (const casacore::Matrix< casacore::Int > &averagingBounds, casacore::Int nChannelsOut, casacore::Bool useWeightSpectrum) |
|
template<class T > |
void | averageVisCubeChannels (T &dataCache, casacore::Int nChanOut, const casacore::Matrix< casacore::Int > &averagingbounds) |
|
virtual void | checkVisIter (const char *func, const char *file, int line, const char *extra="") const |
|
void | computeRowWeightFactors (casacore::Matrix< casacore::Float > &rowWeightFactors, casacore::Bool useWeightSpectrum) |
|
virtual void | sortCorrelationsAux (casacore::Bool makeSorted) |
|
virtual void | detachFromVisibilityIterator2 () |
|
virtual ROVisibilityIterator2 * | getViP () const |
|
void | registerCacheItem (VbCacheItemBase *) |
|
void | setIterationInfo (casacore::Int msId, const casacore::String &msName, casacore::Bool isNewMs, casacore::Bool isNewArrayId, casacore::Bool isNewFieldId, casacore::Bool isNewSpectralWindow) |
|
virtual void | stateCopy (const VisBufferImpl &other) |
|
template<typename Coord > |
void | updateCoord (Coord &item, const Coord &otherItem) |
|
|
virtual casacore::Bool | areCorrelationsInCanonicalOrder () const |
|
void | checkVisIterBase (const char *func, const char *file, int line, const char *extra="") const |
|
void | construct () |
|
void | constructCache () |
|
virtual void | validate () |
|
virtual void | fillArrayId (casacore::Int &value) const |
|
virtual void | fillChannel (casacore::Vector< casacore::Int > &value) const |
|
virtual void | fillCorrType (casacore::Vector< casacore::Int > &value) const |
|
virtual void | fillCubeCorrected (casacore::Cube< casacore::Complex > &value) const |
|
virtual void | fillCubeModel (casacore::Cube< casacore::Complex > &value) const |
|
virtual void | fillCubeObserved (casacore::Cube< casacore::Complex > &value) const |
|
virtual void | fillDataDescriptionId (casacore::Int &value) const |
|
virtual void | fillDirection1 (casacore::Vector< casacore::MDirection > &value) const |
|
virtual void | fillDirection2 (casacore::Vector< casacore::MDirection > &value) const |
|
virtual void | fillDirectionAux (casacore::Vector< casacore::MDirection > &value, const casacore::Vector< casacore::Int > &antenna, const casacore::Vector< casacore::Int > &feed, const casacore::Vector< casacore::Float > &feedPa) const |
|
virtual void | fillExposure (casacore::Vector< casacore::Double > &value) const |
|
virtual void | fillFeed1 (casacore::Vector< casacore::Int > &value) const |
|
virtual void | fillFeed2 (casacore::Vector< casacore::Int > &value) const |
|
virtual void | fillFeedPa1 (casacore::Vector< casacore::Float > &feedPa) const |
|
virtual void | fillFeedPa2 (casacore::Vector< casacore::Float > &feedPa) const |
|
virtual void | fillFeedPaAux (casacore::Vector< casacore::Float > &feedPa, const casacore::Vector< casacore::Int > &antenna, const casacore::Vector< casacore::Int > &feed) const |
|
virtual void | fillFieldId (casacore::Int &value) const |
|
virtual void | fillFlag (casacore::Matrix< casacore::Bool > &value) const |
|
virtual void | fillFlagCategory (casacore::Array< casacore::Bool > &value) const |
|
virtual void | fillFlagCube (casacore::Cube< casacore::Bool > &value) const |
|
virtual void | fillFlagRow (casacore::Vector< casacore::Bool > &value) const |
|
virtual void | fillFloatData (casacore::Cube< casacore::Float > &value) const |
|
virtual void | fillFrequency (casacore::Vector< casacore::Double > &value) const |
|
virtual void | fillImagingWeight (casacore::Matrix< casacore::Float > &value) const |
|
virtual void | fillJonesC (casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > &value) const |
|
virtual void | fillNChannel (casacore::Int &value) const |
|
virtual void | fillNCorr (casacore::Int &value) const |
|
virtual void | fillNRow (casacore::Int &value) const |
|
virtual void | fillObservationId (casacore::Vector< casacore::Int > &value) const |
|
virtual void | fillPhaseCenter (casacore::MDirection &value) const |
|
virtual void | fillPolFrame (casacore::Int &value) const |
|
virtual void | fillProcessorId (casacore::Vector< casacore::Int > &value) const |
|
virtual void | fillScan (casacore::Vector< casacore::Int > &value) const |
|
virtual void | fillSigma (casacore::Vector< casacore::Float > &value) const |
|
virtual void | fillSigmaMat (casacore::Matrix< casacore::Float > &value) const |
|
virtual void | fillSpectralWindow (casacore::Int &value) const |
|
virtual void | fillStateId (casacore::Vector< casacore::Int > &value) const |
|
virtual void | fillTime (casacore::Vector< casacore::Double > &value) const |
|
virtual void | fillTimeCentroid (casacore::Vector< casacore::Double > &value) const |
|
virtual void | fillTimeInterval (casacore::Vector< casacore::Double > &value) const |
|
virtual void | fillUvw (casacore::Vector< casacore::RigidVector< casacore::Double, 3 > > &value) const |
|
virtual void | fillUvwMat (casacore::Matrix< casacore::Double > &value) const |
|
virtual void | fillVisibilityCorrected (casacore::Matrix< CStokesVector > &value) const |
|
virtual void | fillVisibilityModel (casacore::Matrix< CStokesVector > &value) const |
|
virtual void | fillVisibilityObserved (casacore::Matrix< CStokesVector > &value) const |
|
virtual void | fillWeight (casacore::Vector< casacore::Float > &value) const |
|
virtual void | fillWeightMat (casacore::Matrix< casacore::Float > &value) const |
|
virtual void | fillWeightSpectrum (casacore::Cube< casacore::Float > &value) const |
|
VisBufferImpls encapsulate one chunk of visibility data for processing.
Intended use:
Public interface
Prerequisite
Etymology
VisBufferImpl is a buffer for visibility data
Synopsis
This class contains 'one iteration' of the VisibilityIterator2 It is a modifiable buffer of values to which calibration and averaging can be applied. This allows processing of the data in larger blocks, avoiding some overheads for processing per visibility point or spectrum.
See MeasurementEquations for more details on how the VisBufferImpl is to be used.
When the user intends to allow asynchronous I/O they will need to use the VisBufferImplAsync and VisBufferImplAsyncWrapper classes; these are publicly derived from VisBufferImpl. Normally, the user should not explicitly use these classes but should use the helper class VisBufferImplAutoPtr which will ensure that the appropriate class is used.
To Do
-
reconcile vis/visCube usage: visCube, flagCube and weightMatrix are currently only correct when this VisBufferImpl got them from a VisIter, operations like -=, freqAverage() are only done for visibility() and flag().
Definition at line 168 of file VisBufferImpl.h.
void casa::vi::VisBufferImpl::freqAveCubes |
( |
| ) |
|
virtual const casacore::Vector<casacore::Double>& lsrFrequency() const; virtual void setLsrFrequency (const casacore::Vector<casacore::Double>&);
the following method is to convert the observed frequencies This conversion may not be accurate for some frame conversion like topo to lsr except if the spw is in the actual buffer
if ignoreconv=true..frequency is served as is in the data frame virtual void lsrFrequency(const casacore::Int & spw, casacore::Vector<casacore::Double>& freq, casacore::Bool & convert, const casacore::Bool ignoreconv = false) const;
virtual const casacore::Matrix<casacore::Float>& imagingWeight() const; virtual void setImagingWeight (const casacore::Matrix<casacore::Float>&);
Utility functions to provide coordinate or column ranges of the data in the VisBufferImpl. Flagging is applied before computing the ranges.
Generic accessor to column ranges of integer type, as specified by enumerations defined in class MSCalEnums. Throws an exception if the enum is not for a recognized integer column. –> Low utility?: virtual casacore::Vector<casacore::Int> vecIntRange(const MSCalEnums::colDef & calEnum) const;
Antenna id. range (includes both ANTENNA1 and ANTENNA2 columns) –> Low utility?: virtual casacore::Vector<casacore::Int> antIdRange() const;
casacore::Time range
–> Low utility?: virtual casacore::Bool timeRange(casacore::MEpoch & rTime, casacore::MVEpoch & rTimeEP, casacore::MVEpoch & rInterval) const;
Return the row Ids from the original ms. If the ms used is a subset of another ms then rowIds() return the row ids of the original ms.
–> Belongs in VI: virtual void setRowIds (const casacore::Vector<casacore::uInt>&); –> Belongs in VI: virtual const casacore::Vector<casacore::uInt>& rowIds() const;
Frequency average the buffer (visibility() column only) –> Not called: virtual void freqAverage();
Frequency average the buffer (visCube and [if present] modelVisCube)