casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | Friends
casa::vi::VisBufferImpl Class Reference

VisBufferImpls encapsulate one chunk of visibility data for processing. More...

#include <VisBufferImpl.h>

List of all members.

Public Member Functions

 VisBufferImpl ()
 Create empty VisBufferImpl you can assign to or attach.
 VisBufferImpl (ROVisibilityIterator2 &iter)
 Construct VisBufferImpl for a particular VisibilityIterator2 The buffer will remain synchronized with the iterator.
 VisBufferImpl (const VisBufferImpl &vb)
 Copy construct, looses synchronization with iterator: only use buffer for current iteration (or reattach).
virtual ~VisBufferImpl ()
 Destructor (detaches from VisIter)
virtual VisBufferImploperator= (const VisBufferImpl &vb)
 Assignment, loses synchronization with iterator: only use buffer for current iteration (or reattach)
virtual void assign (const VisBufferImpl &vb, Bool copy=True)
 Assignment, optionally without copying the data across; with copy=True this is identical to normal assignment operator.
virtual VisBufferImplclone () const
virtual const
ROVisibilityIterator2 * 
getVi () const
virtual void invalidate ()
*virtual void dirtyComponentsAdd (const VbDirtyComponents &additionalDirtyComponents)
 --> provided by VI: virtual Int nRowChunk() const;
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 Vector< Floatfeed_pa (Double time) const
 --> This needs to be removed: virtual Bool fetch(const asyncio::PrefetchColumns *pfc);
virtual Float parang0 (Double time) const
 direction1() and direction2() return arrays of directions where the first and the second antenna/feed are pointed to.
virtual Vector< Floatparang (Double time) const
virtual MDirection azel0 (Double time) const
virtual void azel0Vec (Double time, Vector< Double > &azelVec) const
virtual Vector< MDirectionazel (Double time) const
virtual void azelMat (Double time, Matrix< Double > &azelMat) const
virtual Double hourang (Double time) const
 Hour angle for specified time.
void freqAveCubes ()
 virtual const Vector<Double>& lsrFrequency() const; virtual void setLsrFrequency (const Vector<Double>&);
void averageChannels (const Matrix< Int > &chanavebounds)
 Average channel axis according to chanavebounds, for whichever of DATA, MODEL_DATA, CORRECTED_DATA, FLOAT_DATA, FLAG, and WEIGHT_SPECTRUM are present.
virtual void sortCorr ()
 Form Stokes parameters from correlations (these are preliminary versions) --> Not called: virtual void formStokes(); --> Not called: virtual void formStokesWeightandFlag(); --> Not called: virtual void formStokes(Cube<Complex>& vis); --> Not called: virtual void formStokes(Cube<Float>& fcube); // Will throw up if asked to do all 4.
virtual void unSortCorr ()
virtual void normalize (const Bool &phaseOnly=False)
 Normalize the visCube by the modelVisCube (and optionally also divide visCube_p by its normalized amp)
virtual void resetWeightsUsingSigma ()
 Fill weightMat according to sigma column.
virtual void updateCoordInfo (const VisBufferImpl *vb=NULL, const Bool dirDependent=True)
 Rotate visibility phase for given vector (dim = nrow of vb) of phases (metres)
void copyCoordInfo (const VisBufferImpl &other, Bool force=False)
virtual Bool isNewArrayId () const
 --> Not called: virtual void setCorrectedVisCube(const Cube<Complex>& vis); Like the above, but for FLOAT_DATA, keeping it as real floats.
virtual Bool isNewFieldId () const
virtual Bool isNewMs () const
virtual Bool isNewSpectralWindow () const
virtual Bool isWritable () const
virtual Int msId () const
virtual String msName (Bool stripPath=False) const
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
Data accessors and one or more
set methods are provided
*virtual Vector< Int
antenna1 () const
virtual const Vector< Int > & antenna2 () const
virtual Int arrayId () const
virtual const Vector< Int > & channel () const
virtual const Vector
< SquareMatrix< Complex, 2 > > & 
cjones () const
virtual const Cube< Complex > & correctedVisCube () const
virtual void setCorrectedVisCube (const Cube< Complex > &)
virtual const Matrix
< CStokesVector > & 
correctedVisibility () const
virtual void setCorrectedVisibility (const Matrix< CStokesVector > &)
virtual const Vector< Int > & corrType () const
virtual Int dataDescriptionId () const
virtual const Vector
< MDirection > & 
direction1 () const
virtual const Vector
< MDirection > & 
direction2 () const
virtual const Vector< Double > & exposure () const
virtual const Vector< Int > & feed1 () const
virtual const Vector< Float > & feed1_pa () const
virtual const Vector< Int > & feed2 () const
virtual const Vector< Float > & feed2_pa () const
virtual Int fieldId () const
virtual const Matrix< Bool > & flag () const
virtual void setFlag (const Matrix< Bool > &)
virtual const Array< Bool > & flagCategory () const
virtual void setFlagCategory (const Array< Bool > &)
virtual const Cube< Bool > & flagCube () const
virtual void setFlagCube (const Cube< Bool > &)
virtual const Vector< Bool > & flagRow () const
virtual void setFlagRow (const Vector< Bool > &)
virtual const Cube< Float > & floatDataCube () const
virtual void setFloatDataCube (const Cube< Float > &)
virtual const Vector< Double > & frequency () const
virtual const Matrix< Float > & imagingWeight () const
virtual const Cube< Complex > & modelVisCube () const
virtual void setModelVisCube (const Complex &c)
virtual void setModelVisCube (const Cube< Complex > &vis)
virtual void setModelVisCube (const Vector< Float > &stokes)
virtual const Matrix
< CStokesVector > & 
modelVisibility () const
virtual void setModelVisibility (Matrix< CStokesVector > &)
virtual Int nChannel () const
virtual Int nCorr () const
virtual Int nRow () const
virtual const Vector< Int > & observationId () const
virtual const MDirectionphaseCenter () const
virtual Int polFrame () const
virtual const Vector< Int > & processorId () const
virtual const Vector< uInt > & rowIds () const
virtual const Vector< Int > & scan () const
virtual const Vector< Float > & sigma () const
virtual const Matrix< Float > & sigmaMat () const
virtual Int spectralWindow () const
virtual const Vector< Int > & stateId () const
virtual const Vector< Double > & time () const
virtual const Vector< Double > & timeCentroid () const
virtual const Vector< Double > & timeInterval () const
virtual const Vector
< RigidVector< Double, 3 > > & 
uvw () const
virtual const Matrix< Double > & uvwMat () const
virtual const Cube< Complex > & visCube () const
virtual void setVisCube (const Complex &c)
virtual void setVisCube (const Cube< Complex > &)
virtual const Matrix
< CStokesVector > & 
visibility () const
virtual void setVisibility (Matrix< CStokesVector > &)
virtual const Vector< Float > & weight () const
virtual void setWeight (const Vector< Float > &)
virtual const Matrix< Float > & weightMat () const
virtual void setWeightMat (const Matrix< Float > &)
virtual const Cube< Float > & weightSpectrum () const
virtual void setWeightSpectrum (const Cube< Float > &)

Public Attributes

shouldn t be settable: virtual void setNRow (const Int &)
 subtraction: return the difference of the visibilities, flags of this and other are or-ed.

Protected Member Functions

virtual void attachToVisibilityIterator2 (ROVisibilityIterator2 &iter)
 Attach to a VisIter.
virtual void cacheCopy (const VisBufferImpl &other, Bool markAsCached)
virtual void cacheClear (Bool markAsCached=False)
void adjustWeightFactorsAndFlags (Matrix< Float > &rowWeightFactors, Bool useWeightSpectrum, Int nRows, Int nCorrelations, Int nChannelsOut)
void adjustWeightAndSigmaMatrices (Int nChannelsAveraged, Int nChannelsOut, Int nRows, Int nCorrelations, Int nChannelsSelected, const Matrix< Float > &rowWeightFactors)
Int averageChannelFrequencies (Int nChannelsOut, const Vector< Int > &channels, const Matrix< Int > &averagingBounds)
void averageFlagInfoChannels (const Matrix< Int > &averagingBounds, Int nChannelsOut, Bool useWeightSpectrum)
template<class T >
void averageVisCubeChannels (T &dataCache, Int nChanOut, const Matrix< Int > &averagingbounds)
virtual void checkVisIter (const char *func, const char *file, int line, const char *extra="") const
void computeRowWeightFactors (Matrix< Float > &rowWeightFactors, Bool useWeightSpectrum)
virtual void sortCorrelationsAux (Bool makeSorted)
virtual void detachFromVisibilityIterator2 ()
virtual ROVisibilityIterator2 * getViP () const
void registerCacheItem (VbCacheItemBase *)
void setIterationInfo (Int msId, const String &msName, Bool isNewMs, Bool isNewArrayId, Bool isNewFieldId, Bool isNewSpectralWindow)
virtual void stateCopy (const VisBufferImpl &other)
template<typename Coord >
void updateCoord (Coord &item, const Coord &otherItem)

Private Member Functions

virtual Bool areCorrelationsInCanonicalOrder () const
void checkVisIterBase (const char *func, const char *file, int line, const char *extra="") const
void construct ()
void constructCache ()
virtual void validate ()
Fillers These methods fill the
needed value into the cache
This usually means getting it
from the attached
VisibilityIterator2 but the
needed value can be generated
as well The name of the filler
should match up with the
accessor 
method (see above) as well as the member name in the cache(see VisBufferCache class in VisBuffer.cc).*/virtual void fillAntenna1(Vector< Int > &value) const
virtual void fillAntenna2 (Vector< Int > &value) const
virtual void fillArrayId (Int &value) const
virtual void fillChannel (Vector< Int > &value) const
virtual void fillCorrType (Vector< Int > &value) const
virtual void fillCubeCorrected (Cube< Complex > &value) const
virtual void fillCubeModel (Cube< Complex > &value) const
virtual void fillCubeObserved (Cube< Complex > &value) const
virtual void fillDataDescriptionId (Int &value) const
virtual void fillDirection1 (Vector< MDirection > &value) const
virtual void fillDirection2 (Vector< MDirection > &value) const
virtual void fillDirectionAux (Vector< MDirection > &value, const Vector< Int > &antenna, const Vector< Int > &feed, const Vector< Float > &feedPa) const
virtual void fillExposure (Vector< Double > &value) const
virtual void fillFeed1 (Vector< Int > &value) const
virtual void fillFeed2 (Vector< Int > &value) const
virtual void fillFeedPa1 (Vector< Float > &feedPa) const
virtual void fillFeedPa2 (Vector< Float > &feedPa) const
virtual void fillFeedPaAux (Vector< Float > &feedPa, const Vector< Int > &antenna, const Vector< Int > &feed) const
virtual void fillFieldId (Int &value) const
virtual void fillFlag (Matrix< Bool > &value) const
virtual void fillFlagCategory (Array< Bool > &value) const
virtual void fillFlagCube (Cube< Bool > &value) const
virtual void fillFlagRow (Vector< Bool > &value) const
virtual void fillFloatData (Cube< Float > &value) const
virtual void fillFrequency (Vector< Double > &value) const
virtual void fillImagingWeight (Matrix< Float > &value) const
virtual void fillJonesC (Vector< SquareMatrix< Complex, 2 > > &value) const
virtual void fillNChannel (Int &value) const
virtual void fillNCorr (Int &value) const
virtual void fillNRow (Int &value) const
virtual void fillObservationId (Vector< Int > &value) const
virtual void fillPhaseCenter (MDirection &value) const
virtual void fillPolFrame (Int &value) const
virtual void fillProcessorId (Vector< Int > &value) const
virtual void fillScan (Vector< Int > &value) const
virtual void fillSigma (Vector< Float > &value) const
virtual void fillSigmaMat (Matrix< Float > &value) const
virtual void fillSpectralWindow (Int &value) const
virtual void fillStateId (Vector< Int > &value) const
virtual void fillTime (Vector< Double > &value) const
virtual void fillTimeCentroid (Vector< Double > &value) const
virtual void fillTimeInterval (Vector< Double > &value) const
virtual void fillUvw (Vector< RigidVector< Double, 3 > > &value) const
virtual void fillUvwMat (Matrix< Double > &value) const
virtual void fillVisibilityCorrected (Matrix< CStokesVector > &value) const
virtual void fillVisibilityModel (Matrix< CStokesVector > &value) const
virtual void fillVisibilityObserved (Matrix< CStokesVector > &value) const
virtual void fillWeight (Vector< Float > &value) const
virtual void fillWeightMat (Matrix< Float > &value) const
virtual void fillWeightSpectrum (Cube< Float > &value) const

Private Attributes

VisBufferCachecache_p
VisBufferStatestate_p

Friends

class casa::asyncio::VLAT
class VbCacheItemBase
class VisBufferCache
class VisBufferState
class VisBufferImplAsync
class VisBufferImplAsyncWrapper
class ViReadImpl
class ViReadImplAsync

Detailed Description

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

Definition at line 168 of file VisBufferImpl.h.


Constructor & Destructor Documentation

Create empty VisBufferImpl you can assign to or attach.

casa::vi::VisBufferImpl::VisBufferImpl ( ROVisibilityIterator2 &  iter)

Construct VisBufferImpl for a particular VisibilityIterator2 The buffer will remain synchronized with the iterator.

Copy construct, looses synchronization with iterator: only use buffer for current iteration (or reattach).

Destructor (detaches from VisIter)


Member Function Documentation

void casa::vi::VisBufferImpl::adjustWeightAndSigmaMatrices ( Int  nChannelsAveraged,
Int  nChannelsOut,
Int  nRows,
Int  nCorrelations,
Int  nChannelsSelected,
const Matrix< Float > &  rowWeightFactors 
) [protected]
void casa::vi::VisBufferImpl::adjustWeightFactorsAndFlags ( Matrix< Float > &  rowWeightFactors,
Bool  useWeightSpectrum,
Int  nRows,
Int  nCorrelations,
Int  nChannelsOut 
) [protected]
Data accessors and one or more set methods are provided* virtual Vector<Int> casa::vi::VisBufferImpl::antenna1 ( ) const [virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::antenna2 ( ) const [virtual]
virtual Bool casa::vi::VisBufferImpl::areCorrelationsInCanonicalOrder ( ) const [private, virtual]
virtual Int casa::vi::VisBufferImpl::arrayId ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::assign ( const VisBufferImpl vb,
Bool  copy = True 
) [virtual]

Assignment, optionally without copying the data across; with copy=True this is identical to normal assignment operator.

virtual void casa::vi::VisBufferImpl::attachToVisibilityIterator2 ( ROVisibilityIterator2 &  iter) [protected, virtual]

Attach to a VisIter.

Detaches itself first if already attached to a VisIter. Will remain synchronized with iterator.

Int casa::vi::VisBufferImpl::averageChannelFrequencies ( Int  nChannelsOut,
const Vector< Int > &  channels,
const Matrix< Int > &  averagingBounds 
) [protected]
void casa::vi::VisBufferImpl::averageChannels ( const Matrix< Int > &  chanavebounds)

Average channel axis according to chanavebounds, for whichever of DATA, MODEL_DATA, CORRECTED_DATA, FLOAT_DATA, FLAG, and WEIGHT_SPECTRUM are present.

It will only treat the first 5 as present if they have already been loaded into the buffer!

void casa::vi::VisBufferImpl::averageFlagInfoChannels ( const Matrix< Int > &  averagingBounds,
Int  nChannelsOut,
Bool  useWeightSpectrum 
) [protected]
template<class T >
void casa::vi::VisBufferImpl::averageVisCubeChannels ( T &  dataCache,
Int  nChanOut,
const Matrix< Int > &  averagingbounds 
) [protected]
virtual Vector<MDirection> casa::vi::VisBufferImpl::azel ( Double  time) const [virtual]
virtual MDirection casa::vi::VisBufferImpl::azel0 ( Double  time) const [virtual]
virtual void casa::vi::VisBufferImpl::azel0Vec ( Double  time,
Vector< Double > &  azelVec 
) const [virtual]
virtual void casa::vi::VisBufferImpl::azelMat ( Double  time,
Matrix< Double > &  azelMat 
) const [virtual]
virtual void casa::vi::VisBufferImpl::cacheClear ( Bool  markAsCached = False) [protected, virtual]
virtual void casa::vi::VisBufferImpl::cacheCopy ( const VisBufferImpl other,
Bool  markAsCached 
) [protected, virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::channel ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::checkVisIter ( const char *  func,
const char *  file,
int  line,
const char *  extra = "" 
) const [protected, virtual]
void casa::vi::VisBufferImpl::checkVisIterBase ( const char *  func,
const char *  file,
int  line,
const char *  extra = "" 
) const [private]
virtual const Vector<SquareMatrix<Complex, 2> >& casa::vi::VisBufferImpl::cjones ( ) const [virtual]
virtual VisBufferImpl* casa::vi::VisBufferImpl::clone ( ) const [virtual]
void casa::vi::VisBufferImpl::computeRowWeightFactors ( Matrix< Float > &  rowWeightFactors,
Bool  useWeightSpectrum 
) [protected]
void casa::vi::VisBufferImpl::copyCoordInfo ( const VisBufferImpl other,
Bool  force = False 
)
virtual const Cube<Complex>& casa::vi::VisBufferImpl::correctedVisCube ( ) const [virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::corrType ( ) const [virtual]
virtual Int casa::vi::VisBufferImpl::dataDescriptionId ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::detachFromVisibilityIterator2 ( ) [protected, virtual]
virtual const Vector<MDirection>& casa::vi::VisBufferImpl::direction1 ( ) const [virtual]
virtual const Vector<MDirection>& casa::vi::VisBufferImpl::direction2 ( ) const [virtual]
* virtual void casa::vi::VisBufferImpl::dirtyComponentsAdd ( const VbDirtyComponents additionalDirtyComponents) [virtual]

--> provided by VI: virtual Int nRowChunk() const;

virtual void casa::vi::VisBufferImpl::dirtyComponentsSet ( const VbDirtyComponents dirtyComponents) [virtual]
virtual const Vector<Double>& casa::vi::VisBufferImpl::exposure ( ) const [virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::feed1 ( ) const [virtual]
virtual const Vector<Float>& casa::vi::VisBufferImpl::feed1_pa ( ) const [virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::feed2 ( ) const [virtual]
virtual const Vector<Float>& casa::vi::VisBufferImpl::feed2_pa ( ) const [virtual]
virtual Vector<Float> casa::vi::VisBufferImpl::feed_pa ( Double  time) const [virtual]

--> This needs to be removed: virtual Bool fetch(const asyncio::PrefetchColumns *pfc);

feed1_pa() and feed2_pa() return an array of parallactic angles (each corresponds to the first receptor of the feed) one for each row in the current buffer. In contrast, feed_pa() calculates the angles for each antenna. These methods are implemented for VisBufferImpl only to benefit from caching of the feed and antenna IDs.

Note that feed_pa is a function instead of a cached value

virtual Int casa::vi::VisBufferImpl::fieldId ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::fillAntenna2 ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillArrayId ( Int value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillChannel ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillCorrType ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillCubeCorrected ( Cube< Complex > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillCubeModel ( Cube< Complex > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillCubeObserved ( Cube< Complex > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillDataDescriptionId ( Int value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillDirection1 ( Vector< MDirection > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillDirection2 ( Vector< MDirection > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillDirectionAux ( Vector< MDirection > &  value,
const Vector< Int > &  antenna,
const Vector< Int > &  feed,
const Vector< Float > &  feedPa 
) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillExposure ( Vector< Double > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFeed1 ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFeed2 ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFeedPa1 ( Vector< Float > &  feedPa) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFeedPa2 ( Vector< Float > &  feedPa) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFeedPaAux ( Vector< Float > &  feedPa,
const Vector< Int > &  antenna,
const Vector< Int > &  feed 
) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFieldId ( Int value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFlag ( Matrix< Bool > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFlagCategory ( Array< Bool > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFlagCube ( Cube< Bool > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFlagRow ( Vector< Bool > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFloatData ( Cube< Float > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillFrequency ( Vector< Double > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillImagingWeight ( Matrix< Float > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillJonesC ( Vector< SquareMatrix< Complex, 2 > > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillNChannel ( Int value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillNCorr ( Int value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillNRow ( Int value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillObservationId ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillPhaseCenter ( MDirection value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillPolFrame ( Int value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillProcessorId ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillScan ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillSigma ( Vector< Float > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillSigmaMat ( Matrix< Float > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillSpectralWindow ( Int value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillStateId ( Vector< Int > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillTime ( Vector< Double > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillTimeCentroid ( Vector< Double > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillTimeInterval ( Vector< Double > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillUvw ( Vector< RigidVector< Double, 3 > > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillUvwMat ( Matrix< Double > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillVisibilityCorrected ( Matrix< CStokesVector > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillVisibilityModel ( Matrix< CStokesVector > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillVisibilityObserved ( Matrix< CStokesVector > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillWeight ( Vector< Float > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillWeightMat ( Matrix< Float > &  value) const [private, virtual]
virtual void casa::vi::VisBufferImpl::fillWeightSpectrum ( Cube< Float > &  value) const [private, virtual]
virtual const Matrix<Bool>& casa::vi::VisBufferImpl::flag ( ) const [virtual]
virtual const Array<Bool>& casa::vi::VisBufferImpl::flagCategory ( ) const [virtual]
virtual const Cube<Bool>& casa::vi::VisBufferImpl::flagCube ( ) const [virtual]
virtual const Vector<Bool>& casa::vi::VisBufferImpl::flagRow ( ) const [virtual]
virtual const Cube<Float>& casa::vi::VisBufferImpl::floatDataCube ( ) const [virtual]

virtual const Vector<Double>& lsrFrequency() const; virtual void setLsrFrequency (const Vector<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 Int & spw, Vector<Double>& freq, Bool & convert, const Bool ignoreconv = False) const;

virtual const Matrix<Float>& imagingWeight() const; virtual void setImagingWeight (const Matrix<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 Vector<Int> vecIntRange(const MSCalEnums::colDef & calEnum) const;

Antenna id. range (includes both ANTENNA1 and ANTENNA2 columns) --> Low utility?: virtual Vector<Int> antIdRange() const;

Time range

--> Low utility?: virtual Bool timeRange(MEpoch & rTime, MVEpoch & rTimeEP, 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 Vector<uInt>&); --> Belongs in VI: virtual const Vector<uInt>& rowIds() const;

Frequency average the buffer (visibility() column only) --> Not called: virtual void freqAverage();

Frequency average the buffer (visCube and [if present] modelVisCube)

virtual const Vector<Double>& casa::vi::VisBufferImpl::frequency ( ) const [virtual]
virtual const ROVisibilityIterator2* casa::vi::VisBufferImpl::getVi ( ) const [virtual]
virtual ROVisibilityIterator2* casa::vi::VisBufferImpl::getViP ( ) const [protected, virtual]
virtual Double casa::vi::VisBufferImpl::hourang ( Double  time) const [virtual]

Hour angle for specified time.

virtual const Matrix<Float>& casa::vi::VisBufferImpl::imagingWeight ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::invalidate ( ) [virtual]
virtual Bool casa::vi::VisBufferImpl::isNewArrayId ( ) const [virtual]

--> Not called: virtual void setCorrectedVisCube(const Cube<Complex>& vis); Like the above, but for FLOAT_DATA, keeping it as real floats.

--> Not called: virtual void setFloatDataCube(const Cube<Float>& fcube); Reference external model visibilities --> Not called: virtual void refModelVis(const Matrix<CStokesVector>& mvis);

Remove scratch cols data from vb --> Not called: virtual void removeScratchCols();

Access the current ROMSColumns object via VisIter --> Access using VI: virtual const ROMSColumns & msColumns() const;

--> Access via VI: virtual Int numberAnt () const;

Get all selected spectral windows not just the one in the actual buffer --> Get from VI: virtual void allSelectedSpectralWindows(Vector<Int>& spws, Vector<Int>& nvischan);

--> Get from VI: virtual void getChannelSelection(Block< Vector<Int> >& blockNGroup, Block< Vector<Int> >& blockStart, Block< Vector<Int> >& blockWidth, Block< Vector<Int> >& blockIncr, Block< Vector<Int> >& blockSpw) const;; --> Get from VI: void allSelectedSpectralWindows(Vector<Int>& spws, Vector<Int>& nvischan) const;

virtual Bool casa::vi::VisBufferImpl::isNewFieldId ( ) const [virtual]
virtual Bool casa::vi::VisBufferImpl::isNewMs ( ) const [virtual]
virtual Bool casa::vi::VisBufferImpl::isWritable ( ) const [virtual]
Fillers These methods fill the needed value into the cache This usually means getting it from the attached VisibilityIterator2 but the needed value can be generated as well The name of the filler should match up with the accessor casa::vi::VisBufferImpl::method ( see  above) const [private]
virtual const Cube<Complex>& casa::vi::VisBufferImpl::modelVisCube ( ) const [virtual]
virtual const Matrix<CStokesVector>& casa::vi::VisBufferImpl::modelVisibility ( ) const [virtual]
virtual Int casa::vi::VisBufferImpl::msId ( ) const [virtual]
virtual String casa::vi::VisBufferImpl::msName ( Bool  stripPath = False) const [virtual]
virtual Int casa::vi::VisBufferImpl::nChannel ( ) const [virtual]
virtual Int casa::vi::VisBufferImpl::nCorr ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::normalize ( const Bool phaseOnly = False) [virtual]

Normalize the visCube by the modelVisCube (and optionally also divide visCube_p by its normalized amp)

virtual Int casa::vi::VisBufferImpl::nRow ( ) const [virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::observationId ( ) const [virtual]
virtual VisBufferImpl& casa::vi::VisBufferImpl::operator= ( const VisBufferImpl vb) [virtual]

Assignment, loses synchronization with iterator: only use buffer for current iteration (or reattach)

virtual Vector<Float> casa::vi::VisBufferImpl::parang ( Double  time) const [virtual]
virtual Float casa::vi::VisBufferImpl::parang0 ( Double  time) const [virtual]

direction1() and direction2() return arrays of directions where the first and the second antenna/feed are pointed to.

One value for each row in the current buffer.

NOMINAL parallactic angle (feed p.a. offset NOT included)

virtual const MDirection& casa::vi::VisBufferImpl::phaseCenter ( ) const [virtual]
virtual Int casa::vi::VisBufferImpl::polFrame ( ) const [virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::processorId ( ) const [virtual]

Fill weightMat according to sigma column.

virtual const Vector<uInt>& casa::vi::VisBufferImpl::rowIds ( ) const [virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::scan ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::setCorrectedVisCube ( const Cube< Complex > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setCorrectedVisibility ( const Matrix< CStokesVector > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setFlag ( const Matrix< Bool > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setFlagCategory ( const Array< Bool > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setFlagCube ( const Cube< Bool > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setFlagRow ( const Vector< Bool > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setFloatDataCube ( const Cube< Float > &  ) [virtual]
void casa::vi::VisBufferImpl::setIterationInfo ( Int  msId,
const String msName,
Bool  isNewMs,
Bool  isNewArrayId,
Bool  isNewFieldId,
Bool  isNewSpectralWindow 
) [protected]
virtual void casa::vi::VisBufferImpl::setModelVisCube ( const Complex &  c) [virtual]
virtual void casa::vi::VisBufferImpl::setModelVisCube ( const Cube< Complex > &  vis) [virtual]
virtual void casa::vi::VisBufferImpl::setModelVisCube ( const Vector< Float > &  stokes) [virtual]
Data accessors and casa::vi::VisBufferImpl::setters ( where  appropriate)
virtual void casa::vi::VisBufferImpl::setVisCube ( const Complex &  c) [virtual]
virtual void casa::vi::VisBufferImpl::setVisCube ( const Cube< Complex > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setVisibility ( Matrix< CStokesVector > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setWeight ( const Vector< Float > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setWeightMat ( const Matrix< Float > &  ) [virtual]
virtual void casa::vi::VisBufferImpl::setWeightSpectrum ( const Cube< Float > &  ) [virtual]
virtual const Vector<Float>& casa::vi::VisBufferImpl::sigma ( ) const [virtual]
virtual const Matrix<Float>& casa::vi::VisBufferImpl::sigmaMat ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::sortCorr ( ) [virtual]

Form Stokes parameters from correlations (these are preliminary versions) --> Not called: virtual void formStokes(); --> Not called: virtual void formStokesWeightandFlag(); --> Not called: virtual void formStokes(Cube<Complex>& vis); --> Not called: virtual void formStokes(Cube<Float>& fcube); // Will throw up if asked to do all 4.

Sort/unsort the correlations, if necessary (Rudimentary handling of non-canonically sorted correlations--use with care!)

virtual void casa::vi::VisBufferImpl::sortCorrelationsAux ( Bool  makeSorted) [protected, virtual]
virtual Int casa::vi::VisBufferImpl::spectralWindow ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::stateCopy ( const VisBufferImpl other) [protected, virtual]
virtual const Vector<Int>& casa::vi::VisBufferImpl::stateId ( ) const [virtual]
virtual const Vector<Double>& casa::vi::VisBufferImpl::time ( ) const [virtual]
virtual const Vector<Double>& casa::vi::VisBufferImpl::timeCentroid ( ) const [virtual]
virtual const Vector<Double>& casa::vi::VisBufferImpl::timeInterval ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::unSortCorr ( ) [virtual]
template<typename Coord >
void casa::vi::VisBufferImpl::updateCoord ( Coord &  item,
const Coord &  otherItem 
) [protected]
virtual void casa::vi::VisBufferImpl::updateCoordInfo ( const VisBufferImpl vb = NULL,
const Bool  dirDependent = True 
) [virtual]

Rotate visibility phase for given vector (dim = nrow of vb) of phases (metres)

--> Called by routine in FixVis but that routine is not called: virtual void phaseCenterShift(const Vector<Double>& phase); Rotate visibility phase for phase center offsets (arcsecs) --> Not called: virtual void phaseCenterShift(Double dx, Double dy);

Update coordinate info - useful for copied VisBufferImpls that need to retain some state for later reference. Presently this fills antenna, array, field and spectralWindow ids, time, frequency and number of rows. if dirDependent is set to False the expensive direction dependent calculation of parallactic or direction of antenna from pointing table is avoided Add more as needed.

virtual const Vector<RigidVector<Double, 3> >& casa::vi::VisBufferImpl::uvw ( ) const [virtual]
virtual const Matrix<Double>& casa::vi::VisBufferImpl::uvwMat ( ) const [virtual]
virtual void casa::vi::VisBufferImpl::validate ( ) [private, virtual]
virtual const Cube<Complex>& casa::vi::VisBufferImpl::visCube ( ) const [virtual]
virtual const Matrix<CStokesVector>& casa::vi::VisBufferImpl::visibility ( ) const [virtual]
virtual const Vector<Float>& casa::vi::VisBufferImpl::weight ( ) const [virtual]
virtual const Matrix<Float>& casa::vi::VisBufferImpl::weightMat ( ) const [virtual]
virtual const Cube<Float>& casa::vi::VisBufferImpl::weightSpectrum ( ) const [virtual]

Friends And Related Function Documentation

friend class casa::asyncio::VLAT [friend]

Definition at line 170 of file VisBufferImpl.h.

friend class VbCacheItemBase [friend]

Definition at line 171 of file VisBufferImpl.h.

friend class ViReadImpl [friend]

Definition at line 176 of file VisBufferImpl.h.

friend class ViReadImplAsync [friend]

Definition at line 177 of file VisBufferImpl.h.

friend class VisBufferCache [friend]

Definition at line 172 of file VisBufferImpl.h.

friend class VisBufferImplAsync [friend]

Definition at line 174 of file VisBufferImpl.h.

friend class VisBufferImplAsyncWrapper [friend]

Definition at line 175 of file VisBufferImpl.h.

friend class VisBufferState [friend]

Definition at line 173 of file VisBufferImpl.h.


Member Data Documentation

Definition at line 600 of file VisBufferImpl.h.

subtraction: return the difference of the visibilities, flags of this and other are or-ed.

An exception is thrown if the number of rows or channels differs, but no further checks are done. -->Not called: VisBufferImpl & operator-=(const VisBufferImpl & vb);

Invalidate the cache

Access functions

return nCatOK_p ? nCat_p : fillnCat();

virtual void setNCat (const Int &))) { } virtual Int nCat() const { return This->nCat(); }Because of it being publicly exposed ...using nRow, nChannel, nCorr etc to determine the size of the buffer can be totally WRONG *They MAY NOT represent the shape of a buffer filled in this iteration. Decide what is the right value (depending on where the vb is coming from) for you for the size of the buffer. i.e (nCorr(), nChannel(), nRow()) or vb.visCube().shape() The latter comes from the VisIter state ...the former be careful... For example VisBuffAccumulator changes these in an unconnected fashion; without updating fillnrow datacube shape etc etc. You are warned nrow_p etc are public variables effectively (despite being *declared private) so it can be changed anywhere the code uses a vb, intentionally or accidentally.

Definition at line 240 of file VisBufferImpl.h.

Definition at line 601 of file VisBufferImpl.h.


The documentation for this class was generated from the following file: