casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends
casa::vi::VisBuffer2 Class Reference

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

#include <VisBuffer2.h>

Inheritance diagram for casa::vi::VisBuffer2:
casa::DummyBufferImpl casa::vi::VisBufferImpl2 casa::vi::VisBufferWrapperAsync2 casa::CTBuffer casa::vi::VisBufferImplAsync2

List of all members.

Public Types

enum  { FrameNotSpecified }

Public Member Functions

 VisBuffer2 ()
virtual ~VisBuffer2 ()
 Destructor (detaches from VisIter)
virtual void copy (const VisBuffer2 &other, Bool fetchIfNeeded)=0
 

virtual void copyComponents (const VisBuffer2 &other, const VisBufferComponents2 &components, Bool fetchIfNeeded=True)=0
 Copies the specified components (or just the one in the cache) from the specified VisBuffer into this one.
virtual void copyCoordinateInfo (const VisBuffer2 *other, Bool includeDirections, Bool fetchIfNeeded=True)=0
 Copies the coordinate components from the specified VisBuffer into this one.
virtual void setShape (Int nCorrelations, Int nChannels, Int nRows, Bool copyValues=False)=0
virtual void validateShapes () const =0
virtual const VisibilityIterator2getVi () const =0
 For attached VBs this returns the VI the VB is attached to.
virtual Bool isAttached () const =0
virtual Bool isFillable () const =0
virtual void writeChangesBack ()=0
 

virtual void dirtyComponentsAdd (const VisBufferComponents2 &additionalDirtyComponents)=0
virtual void dirtyComponentsAdd (VisBufferComponent2 component)=0
virtual void dirtyComponentsClear ()=0
virtual VisBufferComponents2 dirtyComponentsGet () const =0
virtual void dirtyComponentsSet (const VisBufferComponents2 &dirtyComponents)=0
virtual void dirtyComponentsSet (VisBufferComponent2 component)=0
virtual const Matrix< Float > & imagingWeight () const =0
 This method returns the imaging weights associated with the VisBuffer.
virtual Vector< IntgetCorrelationNumbers () const =0
 

virtual Double getFrequency (Int rowInBuffer, Int frequencyIndex, Int frame=FrameNotSpecified) const =0
virtual const Vector< Double > & getFrequencies (Int rowInBuffer, Int frame=FrameNotSpecified) const =0
virtual Int getChannelNumber (Int rowInBuffer, Int frequencyIndex) const =0
virtual const Vector< Int > & getChannelNumbers (Int rowInBuffer) const =0
virtual void normalize ()=0
 Sort/unsort the correlations, if necessary (Rudimentary handling of non-canonically sorted correlations--use with care!)
virtual void resetWeightsUsingSigma ()=0
 Set the weight cube using the sigma cube.
virtual Bool isNewArrayId () const =0
 

virtual Bool isNewFieldId () const =0
virtual Bool isNewMs () const =0
virtual Bool isNewSpectralWindow () const =0
virtual Bool isWritable () const =0
virtual Int msId () const =0
virtual String msName (Bool stripPath=False) const =0
virtual Subchunk getSubchunk () const =0
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
virtual void setAntenna1 (const Vector< Int > &value)=0
virtual const Vector< Int > & antenna2 () const =0
virtual void setAntenna2 (const Vector< Int > &value)=0
virtual const Vector< Int > & arrayId () const =0
virtual void setArrayId (const Vector< Int > &)=0
virtual const Vector< Int > & dataDescriptionIds () const =0
 virtual Int dataDescriptionId () const = 0; virtual void setDataDescriptionId (Int value) = 0;
virtual void setDataDescriptionIds (const Vector< Int > &)=0
virtual const Vector
< MDirection > & 
direction1 () const =0
virtual const Vector
< MDirection > & 
direction2 () const =0
virtual const Vector< Double > & exposure () const =0
virtual void setExposure (const Vector< Double > &value)=0
virtual const Vector< Int > & feed1 () const =0
virtual void setFeed1 (const Vector< Int > &value)=0
virtual const Vector< Int > & feed2 () const =0
virtual void setFeed2 (const Vector< Int > &value)=0
virtual const Vector< Int > & fieldId () const =0
virtual void setFieldId (const Vector< Int > &)=0
virtual const Matrix< Bool > & flag () const =0
virtual void setFlag (const Matrix< Bool > &value)=0
virtual const Array< Bool > & flagCategory () const =0
virtual void setFlagCategory (const Array< Bool > &value)=0
virtual const Cube< Bool > & flagCube () const =0
virtual void setFlagCube (const Cube< Bool > &value)=0
virtual const Vector< Bool > & flagRow () const =0
virtual void setFlagRow (const Vector< Bool > &value)=0
virtual const Vector< Int > & observationId () const =0
virtual void setObservationId (const Vector< Int > &value)=0
virtual const Vector< Int > & processorId () const =0
virtual void setProcessorId (const Vector< Int > &value)=0
virtual const Vector< Int > & scan () const =0
virtual void setScan (const Vector< Int > &value)=0
virtual const Matrix< Float > & sigma () const =0
virtual void setSigma (const Matrix< Float > &value)=0
virtual const Vector< Int > & stateId () const =0
 virtual const Matrix<Float> & sigmaMat () const = 0; // [nC,nR]
virtual void setStateId (const Vector< Int > &value)=0
virtual const Vector< Double > & time () const =0
virtual void setTime (const Vector< Double > &value)=0
virtual const Vector< Double > & timeCentroid () const =0
virtual void setTimeCentroid (const Vector< Double > &value)=0
virtual const Vector< Double > & timeInterval () const =0
virtual void setTimeInterval (const Vector< Double > &value)=0
virtual const Matrix< Double > & uvw () const =0
virtual void setUvw (const Matrix< Double > &value)=0
virtual const Matrix< Float > & weight () const =0
virtual void setWeight (const Matrix< Float > &value)=0
virtual const Cube< Float > & weightSpectrum () const =0
 virtual const Matrix<Float> & weightMat () const = 0; // [nC,nR] virtual void setWeightMat (const Matrix<Float>& value) = 0; // [nC,nR]
virtual void setWeightSpectrum (const Cube< Float > &value)=0
virtual const Cube< Complex > & visCube () const =0
 
Visibility data accessors in order of observed, corrected, float, & model
virtual void setVisCube (const Complex &c)=0
virtual void setVisCube (const Cube< Complex > &)=0
virtual const Cube< Complex > & visCubeCorrected () const =0
 virtual const Matrix<CStokesVector> & vis () const = 0; // [nF,nR] virtual void setVis (Matrix<CStokesVector> &) = 0; // [nF,nR]
virtual void setVisCubeCorrected (const Cube< Complex > &)=0
virtual const Cube< Float > & visCubeFloat () const =0
 virtual const Matrix<CStokesVector> & visCorrected () const = 0; // [nF,nR] virtual void setVisCorrected (const Matrix<CStokesVector> &) = 0; // [nF,nR]
virtual void setVisCubeFloat (const Cube< Float > &)=0
virtual const Cube< Complex > & visCubeModel () const =0
virtual void setVisCubeModel (const Complex &c)=0
virtual void setVisCubeModel (const Cube< Complex > &vis)=0
virtual MDirection azel0 (Double time) const =0
 virtual void setVisCubeModel(const Vector<Float>& stokes) = 0; // [1..4] virtual const Matrix<CStokesVector> & visModel () const = 0; // [nF,nR] virtual void setVisModel (Matrix<CStokesVector> &) = 0; // [nF,nR]
virtual const Vector
< MDirection > & 
azel (Double time) const =0
 Returns the pointing angle for each antenna in the array at the specified time.
virtual const Vector
< SquareMatrix< Complex, 2 > > & 
cjones () const =0
 Returns the Jones C matrix for each antenna.
virtual const Vector< Int > & correlationTypes () const =0
 Returns the correlation type of each correlation in the VisCube.
virtual const Vector< Float > & feedPa (Double time) const =0
 Calculates the parallactic angle for the first receptor of each antenna at the specified time.
virtual const Vector< Float > & feedPa1 () const =0
 Calculates the parallactic angle for feed 0 of the row's Antenna1.
virtual const Vector< Float > & feedPa2 () const =0
 Calculates the parallactic angle for feed 0 of the row's Antenna2.
virtual Double hourang (Double time) const =0
 Returns the hour angle of the array at the specified time.
virtual Int nAntennas () const =0
virtual Int nChannels () const =0
virtual Int nCorrelations () const =0
 Returns the number of correlations along the visCube correlation axis.
virtual Int nRows () const =0
 Returns the number of rows in this VisBuffer.
virtual Float parang0 (Double time) const =0
 Calculates the parallactic angle of the array as a whole at the specified time.
virtual const Vector< Float > & parang (Double time) const =0
 Calculates the parallactic angle of each antenna in the array at the specified time.
virtual const MDirectionphaseCenter () const =0
 Returns the phase center of the array for the specified row.
virtual Int polarizationFrame () const =0
 Returns the polarization frame for the specified row.
virtual Int polarizationId () const =0
virtual const Vector< uInt > & rowIds () const =0
 The returned Vector serves as a map between the rows in the VisBuffer and the row IDs in the underlying MS main virtual table: mainTableID [i] = rowIds () [ i] = 0;.
virtual const Vector< Int > & spectralWindows () const =0
 Returns the spectral window ID for the specified row.

Static Public Member Functions

static VisBuffer2factory (VisBufferType t, VisBufferOptions vbOptions=VbNoOptions)
static VisBuffer2factory (VisibilityIterator2 *vi, VisBufferType t, VisBufferOptions options)
 virtual void setSpectralWindows (const Vector<Int> & spectralWindows) = 0;

Protected Member Functions

virtual void configureNewSubchunk (Int msId, const String &msName, Bool isNewMs, Bool isNewArrayId, Bool isNewFieldId, Bool isNewSpectralWindow, const Subchunk &subchunk, Int nRows, Int nChannels, Int nCorrelations, const Vector< Int > &correlations)=0
virtual void invalidate ()=0
virtual Bool isRekeyable () const =0
virtual void setFillable (Bool isFillable)=0
virtual void setRekeyable (Bool isRekeable)=0
virtual Vector< Bool > & flagRowRef ()=0
virtual Cube< Bool > & flagCubeRef ()=0
virtual Cube< Complex > & visCubeRef ()=0
virtual Cube< Complex > & visCubeCorrectedRef ()=0
virtual Cube< Complex > & visCubeModelRef ()=0
virtual Cube< Float > & weightSpectrumRef ()=0

Friends

class VisibilityIteratorImpl2
class FinalTvi2

Detailed Description

VisBuffer2s encapsulate one chunk of visibility data for processing.

Intended use:

Public interface

Prerequisite

Etymology

VisBuffer2 is a buffer for visibility data

Synopsis

The VisBuffer is designed to contain a small amount of visibility-related data. The VisBuffer can be used in two somewhat distinct ways. The first is as an integral (or attached) part of the VisibilityIterator and the second is as a free or unattached object.

Attached VisBuffer -- Each VisibilityIterator has a exactly one VisBuffer attached to it. This VisBuffer is created and destroyed by the VisibilityIterator. The role of an attached VB is to contain the data currently "pointed to" by the VI. Because of this tight coupling between an attached VI and its VB the operations that can be applied to a VisBuffer are somewhat restricted in order to maintain the relationship between the MeasurementSet's data and the data i the VisBuffer (failure to do so allows obscure bugs to be created). As such the functions for averaging in either the time or frequency axes is not permitted on an attached VB.

Free VisBuffer -- A free VisBuffer is used to contain data that might not correspond to the data in the MeasurementSet. The meaning of the data in a free VisBuffer will depend on the user. Some obvious examples might be: a VisBuffer used to resample or average frequencies together; creation of "virtual" spectral windows which might reconnect frequencies that were split into separate spectral windows becasue of hardware limitation; and performing a time average of visibility data. Because the free VB is not tightly coupled to a VI, it is the responsibility of the user to assign meaningful values to some of the fields in the VB. For example, the user averaging across time will need to decide what values ought to be reported for the VisBuffer's timestamp, pointing angle, etc.

Another possible attribute of a VisBuffer is "rekeyable". This is for when the VisBuffer is being filled by client code rather than from an input MS. Because of this, the enforcement of VisBuffer invariants is relaxed. Users will be able to change row key fields (e.g., antenna1, data description id, etc.) as well as change the shape of the data. The method validateShapes is provided which will check that all modified shapes are consistent. This method is automatically called by writeChangesBack and should also be called whenever the construction process is complete and the VisBuffer is about to be released for use; it's better to catch the error rather than letting an inconsistent VisBuffer escape into consuming code.

Definition at line 129 of file VisBuffer2.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
FrameNotSpecified 

Definition at line 136 of file VisBuffer2.h.


Constructor & Destructor Documentation

Definition at line 138 of file VisBuffer2.h.

virtual casa::vi::VisBuffer2::~VisBuffer2 ( ) [inline, virtual]

Destructor (detaches from VisIter)

Definition at line 143 of file VisBuffer2.h.


Member Function Documentation

virtual const Vector<Int>& casa::vi::VisBuffer2::antenna2 ( ) const [pure virtual]
virtual const Vector<Int>& casa::vi::VisBuffer2::arrayId ( ) const [pure virtual]
virtual const Vector<MDirection>& casa::vi::VisBuffer2::azel ( Double  time) const [pure virtual]

Returns the pointing angle for each antenna in the array at the specified time.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual MDirection casa::vi::VisBuffer2::azel0 ( Double  time) const [pure virtual]

virtual void setVisCubeModel(const Vector<Float>& stokes) = 0; // [1..4] virtual const Matrix<CStokesVector> & visModel () const = 0; // [nF,nR] virtual void setVisModel (Matrix<CStokesVector> &) = 0; // [nF,nR]


Accessors for data derived from the MS main table data

Returns the pointing angle for the array as a whole at the specified time.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<SquareMatrix<Complex, 2> >& casa::vi::VisBuffer2::cjones ( ) const [pure virtual]

Returns the Jones C matrix for each antenna.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual void casa::vi::VisBuffer2::configureNewSubchunk ( Int  msId,
const String msName,
Bool  isNewMs,
Bool  isNewArrayId,
Bool  isNewFieldId,
Bool  isNewSpectralWindow,
const Subchunk &  subchunk,
Int  nRows,
Int  nChannels,
Int  nCorrelations,
const Vector< Int > &  correlations 
) [protected, pure virtual]

Implemented in casa::vi::VisBufferImpl2.

virtual void casa::vi::VisBuffer2::copy ( const VisBuffer2 other,
Bool  fetchIfNeeded 
) [pure virtual]


Copying methods

These methods allow copying portions of the data between two VisBuffers. Because of the complicated semantics of a VisBuffer the assignment and copy-construction methods are not used as they are likely to confuse VisBuffer users.

Copies all of the components from the specified VisBuffer into this one. Uncached values will be cleared in this VB.

Implemented in casa::vi::VisBufferImpl2, and casa::vi::VisBufferWrapperAsync2.

virtual void casa::vi::VisBuffer2::copyComponents ( const VisBuffer2 other,
const VisBufferComponents2 components,
Bool  fetchIfNeeded = True 
) [pure virtual]

Copies the specified components (or just the one in the cache) from the specified VisBuffer into this one.

Implemented in casa::vi::VisBufferImpl2, and casa::vi::VisBufferWrapperAsync2.

virtual void casa::vi::VisBuffer2::copyCoordinateInfo ( const VisBuffer2 other,
Bool  includeDirections,
Bool  fetchIfNeeded = True 
) [pure virtual]

Copies the coordinate components from the specified VisBuffer into this one.

Depending on includeDirections the direction related ones are copied or not.

Implemented in casa::vi::VisBufferImpl2, and casa::vi::VisBufferWrapperAsync2.

virtual const Vector<Int>& casa::vi::VisBuffer2::correlationTypes ( ) const [pure virtual]

Returns the correlation type of each correlation in the VisCube.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::CTBuffer, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<Int>& casa::vi::VisBuffer2::dataDescriptionIds ( ) const [pure virtual]

virtual Int dataDescriptionId () const = 0; virtual void setDataDescriptionId (Int value) = 0;

Implemented in casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<MDirection>& casa::vi::VisBuffer2::direction1 ( ) const [pure virtual]
virtual const Vector<MDirection>& casa::vi::VisBuffer2::direction2 ( ) const [pure virtual]
virtual void casa::vi::VisBuffer2::dirtyComponentsAdd ( const VisBufferComponents2 additionalDirtyComponents) [pure virtual]
virtual void casa::vi::VisBuffer2::dirtyComponentsAdd ( VisBufferComponent2  component) [pure virtual]
virtual void casa::vi::VisBuffer2::dirtyComponentsClear ( ) [pure virtual]
virtual void casa::vi::VisBuffer2::dirtyComponentsSet ( const VisBufferComponents2 dirtyComponents) [pure virtual]
virtual void casa::vi::VisBuffer2::dirtyComponentsSet ( VisBufferComponent2  component) [pure virtual]
virtual const Vector<Double>& casa::vi::VisBuffer2::exposure ( ) const [pure virtual]

virtual void setSpectralWindows (const Vector<Int> & spectralWindows) = 0;

virtual const Vector<Int>& casa::vi::VisBuffer2::feed1 ( ) const [pure virtual]
virtual const Vector<Int>& casa::vi::VisBuffer2::feed2 ( ) const [pure virtual]
virtual const Vector<Float>& casa::vi::VisBuffer2::feedPa ( Double  time) const [pure virtual]

Calculates the parallactic angle for the first receptor of each antenna at the specified time.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<Float>& casa::vi::VisBuffer2::feedPa1 ( ) const [pure virtual]

Calculates the parallactic angle for feed 0 of the row's Antenna1.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<Float>& casa::vi::VisBuffer2::feedPa2 ( ) const [pure virtual]

Calculates the parallactic angle for feed 0 of the row's Antenna2.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<Int>& casa::vi::VisBuffer2::fieldId ( ) const [pure virtual]
virtual const Matrix<Bool>& casa::vi::VisBuffer2::flag ( ) const [pure virtual]
virtual const Array<Bool>& casa::vi::VisBuffer2::flagCategory ( ) const [pure virtual]
virtual const Cube<Bool>& casa::vi::VisBuffer2::flagCube ( ) const [pure virtual]
virtual Cube<Bool>& casa::vi::VisBuffer2::flagCubeRef ( ) [protected, pure virtual]
virtual const Vector<Bool>& casa::vi::VisBuffer2::flagRow ( ) const [pure virtual]
virtual Vector<Bool>& casa::vi::VisBuffer2::flagRowRef ( ) [protected, pure virtual]
virtual Int casa::vi::VisBuffer2::getChannelNumber ( Int  rowInBuffer,
Int  frequencyIndex 
) const [pure virtual]
virtual const Vector<Int>& casa::vi::VisBuffer2::getChannelNumbers ( Int  rowInBuffer) const [pure virtual]
virtual Vector<Int> casa::vi::VisBuffer2::getCorrelationNumbers ( ) const [pure virtual]


Frequency reporting methods.

These methods provide information about the frequencies returned in the visibility cubes. The information can returned as the channel numbers (numbered as in the underlying MS data) or in a frame-based frequency. This information reported need not be in the same frame of reference used to select the data. If the frame of reference is specified in the call, then that is the frame that is used to calculate the frequencies. If it is not specified, then the VisibilityIterator will be queried for virtual the reportingFrame = 0; if the user has specified a reporting frame to the virtual VI then that frame will be used = 0; otherwise the frame used to select the frequencies will be used. If the user provides no frequency selection to the VI then the selection frame will TOPO.

Both the channelNumber and frequency reporting methods come in two versions: one returns a single frequency for the specified frequency index and row while the other provides all of the frequencies for the specified row. The frequency index is the zero-based index along the frequency axis of a visibility cube.

Implemented in casa::DummyBufferImpl, and casa::vi::VisBufferImpl2.

virtual const Vector<Double>& casa::vi::VisBuffer2::getFrequencies ( Int  rowInBuffer,
Int  frame = FrameNotSpecified 
) const [pure virtual]
virtual Double casa::vi::VisBuffer2::getFrequency ( Int  rowInBuffer,
Int  frequencyIndex,
Int  frame = FrameNotSpecified 
) const [pure virtual]
virtual Subchunk casa::vi::VisBuffer2::getSubchunk ( ) const [pure virtual]
virtual const VisibilityIterator2* casa::vi::VisBuffer2::getVi ( ) const [pure virtual]

For attached VBs this returns the VI the VB is attached to.

For free VBs this method returns False.

Implemented in casa::vi::VisBufferImpl2, casa::vi::VisBufferWrapperAsync2, and casa::DummyBufferImpl.

Referenced by casa::vi::VisBuffer2Adapter::construct(), and casa::vi::VisBuffer2Adapter::lsrFrequency().

virtual Double casa::vi::VisBuffer2::hourang ( Double  time) const [pure virtual]

Returns the hour angle of the array at the specified time.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Matrix<Float>& casa::vi::VisBuffer2::imagingWeight ( ) const [pure virtual]

This method returns the imaging weights associated with the VisBuffer.

If an imaging weight generator has not been supplied to the associated VisibilityIterator then this method will throw an exception.

Implemented in casa::vi::VisBufferImpl2, casa::vi::VisBufferWrapperAsync2, and casa::DummyBufferImpl.

virtual void casa::vi::VisBuffer2::invalidate ( ) [protected, pure virtual]
virtual Bool casa::vi::VisBuffer2::isAttached ( ) const [pure virtual]
virtual Bool casa::vi::VisBuffer2::isFillable ( ) const [pure virtual]
virtual Bool casa::vi::VisBuffer2::isNewArrayId ( ) const [pure virtual]


Subhchunk information methods

These methods provide information related to the current subchunk. The isNewXXX methods return True if the XXX property of the subchunk differs from the previous subchunk.

The methods msId and msName provide information about the MS related to the current subchunk. The msID is the zero-based index of the MS in the sequence of MSs being iterated over.

The isWritable method is True when the attached iterator is writable and False otherwise.

The isRekeyable method is True when the VisBuffer is writable and also allows the modification of non-data fields (e.g., antenna1, fieldId, etc.) A rekeyable VB is one that could be used to create data for a brand new MS.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual Bool casa::vi::VisBuffer2::isNewFieldId ( ) const [pure virtual]
virtual Bool casa::vi::VisBuffer2::isNewMs ( ) const [pure virtual]
virtual Bool casa::vi::VisBuffer2::isNewSpectralWindow ( ) const [pure virtual]
virtual Bool casa::vi::VisBuffer2::isRekeyable ( ) const [protected, pure virtual]
virtual Bool casa::vi::VisBuffer2::isWritable ( ) const [pure virtual]
virtual Int casa::vi::VisBuffer2::msId ( ) const [pure virtual]
virtual String casa::vi::VisBuffer2::msName ( Bool  stripPath = False) const [pure virtual]
virtual Int casa::vi::VisBuffer2::nAntennas ( ) const [pure virtual]
virtual Int casa::vi::VisBuffer2::nChannels ( ) const [pure virtual]
virtual Int casa::vi::VisBuffer2::nCorrelations ( ) const [pure virtual]

Returns the number of correlations along the visCube correlation axis.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::CTBuffer, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

Referenced by casa::vi::VisBuffer2Adapter::nCorr().

virtual void casa::vi::VisBuffer2::normalize ( ) [pure virtual]

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

The sorting functionality is a horrible kluge that puts the VisBuffer into a somewhat incoherent state (e.g., after sorting the correlation types array does not correspond to the data) and appears to serve the needs of a tiny piece of code. As such, this refactor is initially not going to support this functionality since it is probably better implemented in the one place that actually needs it. (jjacobs 10/3/12)

virtual void sortCorr () = 0; virtual void unSortCorr() = 0;

Normalize the visCube by the modelVisCube.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual Int casa::vi::VisBuffer2::nRows ( ) const [pure virtual]
virtual const Vector<Int>& casa::vi::VisBuffer2::observationId ( ) const [pure virtual]
virtual const Vector<Float>& casa::vi::VisBuffer2::parang ( Double  time) const [pure virtual]

Calculates the parallactic angle of each antenna in the array at the specified time.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual Float casa::vi::VisBuffer2::parang0 ( Double  time) const [pure virtual]

Calculates the parallactic angle of the array as a whole at the specified time.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const MDirection& casa::vi::VisBuffer2::phaseCenter ( ) const [pure virtual]

Returns the phase center of the array for the specified row.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual Int casa::vi::VisBuffer2::polarizationFrame ( ) const [pure virtual]

Returns the polarization frame for the specified row.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual Int casa::vi::VisBuffer2::polarizationId ( ) const [pure virtual]
virtual const Vector<Int>& casa::vi::VisBuffer2::processorId ( ) const [pure virtual]
virtual void casa::vi::VisBuffer2::resetWeightsUsingSigma ( ) [pure virtual]

Set the weight cube using the sigma cube.

Each weight will be the reciprocal of the square of the corresponding element in the model VisCube multiplied by the number of channels in the spectral window. If an element in sigma is zero then the corresponding weight element will also be set to zero.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<uInt>& casa::vi::VisBuffer2::rowIds ( ) const [pure virtual]

The returned Vector serves as a map between the rows in the VisBuffer and the row IDs in the underlying MS main virtual table: mainTableID [i] = rowIds () [ i] = 0;.

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<Int>& casa::vi::VisBuffer2::scan ( ) const [pure virtual]
virtual void casa::vi::VisBuffer2::setAntenna1 ( const Vector< Int > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setAntenna2 ( const Vector< Int > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setArrayId ( const Vector< Int > &  ) [pure virtual]
virtual void casa::vi::VisBuffer2::setDataDescriptionIds ( const Vector< Int > &  ) [pure virtual]
virtual void casa::vi::VisBuffer2::setExposure ( const Vector< Double > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setFeed1 ( const Vector< Int > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setFeed2 ( const Vector< Int > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setFieldId ( const Vector< Int > &  ) [pure virtual]
virtual void casa::vi::VisBuffer2::setFillable ( Bool  isFillable) [protected, pure virtual]
virtual void casa::vi::VisBuffer2::setFlag ( const Matrix< Bool > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setFlagCategory ( const Array< Bool > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setFlagCube ( const Cube< Bool > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setFlagRow ( const Vector< Bool > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setObservationId ( const Vector< Int > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setProcessorId ( const Vector< Int > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setRekeyable ( Bool  isRekeable) [protected, pure virtual]
virtual void casa::vi::VisBuffer2::setScan ( const Vector< Int > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setShape ( Int  nCorrelations,
Int  nChannels,
Int  nRows,
Bool  copyValues = False 
) [pure virtual]
virtual void casa::vi::VisBuffer2::setSigma ( const Matrix< Float > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setStateId ( const Vector< Int > &  value) [pure virtual]
Data accessors and casa::vi::VisBuffer2::setters ( where  appropriate)
virtual void casa::vi::VisBuffer2::setTime ( const Vector< Double > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setTimeCentroid ( const Vector< Double > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setTimeInterval ( const Vector< Double > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setUvw ( const Matrix< Double > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setVisCube ( const Complex &  c) [pure virtual]
virtual void casa::vi::VisBuffer2::setVisCube ( const Cube< Complex > &  ) [pure virtual]
virtual void casa::vi::VisBuffer2::setVisCubeCorrected ( const Cube< Complex > &  ) [pure virtual]
virtual void casa::vi::VisBuffer2::setVisCubeFloat ( const Cube< Float > &  ) [pure virtual]
virtual void casa::vi::VisBuffer2::setVisCubeModel ( const Complex &  c) [pure virtual]
virtual void casa::vi::VisBuffer2::setVisCubeModel ( const Cube< Complex > &  vis) [pure virtual]
virtual void casa::vi::VisBuffer2::setWeight ( const Matrix< Float > &  value) [pure virtual]
virtual void casa::vi::VisBuffer2::setWeightSpectrum ( const Cube< Float > &  value) [pure virtual]
virtual const Matrix<Float>& casa::vi::VisBuffer2::sigma ( ) const [pure virtual]
virtual const Vector<Int>& casa::vi::VisBuffer2::spectralWindows ( ) const [pure virtual]

Returns the spectral window ID for the specified row.

virtual Int spectralWindow () const = 0;

Implemented in casa::CTBuffer, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

Referenced by casa::vi::VisBuffer2Adapter::spectralWindow().

virtual const Vector<Int>& casa::vi::VisBuffer2::stateId ( ) const [pure virtual]

virtual const Matrix<Float> & sigmaMat () const = 0; // [nC,nR]

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Vector<Double>& casa::vi::VisBuffer2::time ( ) const [pure virtual]
virtual const Vector<Double>& casa::vi::VisBuffer2::timeCentroid ( ) const [pure virtual]
virtual const Vector<Double>& casa::vi::VisBuffer2::timeInterval ( ) const [pure virtual]
virtual const Matrix<Double>& casa::vi::VisBuffer2::uvw ( ) const [pure virtual]
virtual void casa::vi::VisBuffer2::validateShapes ( ) const [pure virtual]
virtual const Cube<Complex>& casa::vi::VisBuffer2::visCube ( ) const [pure virtual]


Visibility data accessors in order of observed, corrected, float, & model

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, casa::CTBuffer, and casa::DummyBufferImpl.

virtual const Cube<Complex>& casa::vi::VisBuffer2::visCubeCorrected ( ) const [pure virtual]

virtual const Matrix<CStokesVector> & vis () const = 0; // [nF,nR] virtual void setVis (Matrix<CStokesVector> &) = 0; // [nF,nR]

Implemented in casa::vi::VisBufferWrapperAsync2, casa::CTBuffer, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual Cube<Complex>& casa::vi::VisBuffer2::visCubeCorrectedRef ( ) [protected, pure virtual]
virtual const Cube<Float>& casa::vi::VisBuffer2::visCubeFloat ( ) const [pure virtual]

virtual const Matrix<CStokesVector> & visCorrected () const = 0; // [nF,nR] virtual void setVisCorrected (const Matrix<CStokesVector> &) = 0; // [nF,nR]

Implemented in casa::vi::VisBufferWrapperAsync2, casa::vi::VisBufferImpl2, and casa::DummyBufferImpl.

virtual const Cube<Complex>& casa::vi::VisBuffer2::visCubeModel ( ) const [pure virtual]
virtual Cube<Complex>& casa::vi::VisBuffer2::visCubeModelRef ( ) [protected, pure virtual]
virtual Cube<Complex>& casa::vi::VisBuffer2::visCubeRef ( ) [protected, pure virtual]
virtual const Matrix<Float>& casa::vi::VisBuffer2::weight ( ) const [pure virtual]
virtual const Cube<Float>& casa::vi::VisBuffer2::weightSpectrum ( ) const [pure virtual]

virtual const Matrix<Float> & weightMat () const = 0; // [nC,nR] virtual void setWeightMat (const Matrix<Float>& value) = 0; // [nC,nR]

Implemented in casa::vi::VisBufferImpl2, casa::vi::VisBufferWrapperAsync2, and casa::DummyBufferImpl.

virtual Cube<Float>& casa::vi::VisBuffer2::weightSpectrumRef ( ) [protected, pure virtual]
virtual void casa::vi::VisBuffer2::writeChangesBack ( ) [pure virtual]


Dirty component methods

The dirtyComponent methods support the data-flow approach to using VisBuffers (the Visibility Processing Framework). In this approach a VisBuffer is passed to successive processing nodes (e.g., applycal, flagging, etc.) which operate on it and pass it on to the next node in the algorithm. The dirtyComponents mechanism allows a processing node to mark portions of the VisBuffer as modified. If the VisBuffer reaches an write-to-disk node then the modified portions of the VisBuffer will be written out. The user can also explicitly direct that the changes be written out using the writeChangesBack method.

Using a setter on a VisBuffer component will also set the dirty flag for that component. Normally the user should not need to use these methods; however, they are available in case unexpected situations should arise in the future.

Implemented in casa::vi::VisBufferImpl2, casa::vi::VisBufferWrapperAsync2, and casa::DummyBufferImpl.


Friends And Related Function Documentation

friend class FinalTvi2 [friend]

Definition at line 132 of file VisBuffer2.h.

friend class VisibilityIteratorImpl2 [friend]

Definition at line 131 of file VisBuffer2.h.


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