casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VisBufferAsyncWrapper2.h
Go to the documentation of this file.
1 //# VisBuffer.h: buffer for iterating through casacore::MS in large blocks
2 //# Copyright (C) 1996,1997,1998,1999,2000,2002,2003
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be addressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //# $Id: VisBuffer.h,v 19.14 2006/02/28 04:48:58 mvoronko Exp $
27 
28 #ifndef VISBUFFER_ASYNC_WRAPPER_H
29 #define VISBUFFER_ASYNC_WRAPPER_H
30 
31 #include <casa/aips.h>
32 #include <casa/Arrays/Cube.h>
33 #include <casa/Arrays/Vector.h>
34 #include <casa/Arrays/Matrix.h>
35 #include <casa/BasicSL/Complex.h>
36 #include <msvis/MSVis/VisBuffer2.h>
37 
38 namespace casa { //# NAMESPACE CASA - BEGIN
39 
40 namespace vi {
41 
42 //#forward
43 
44 //<summary>VisBuffers encapulsate one chunk of visibility data for processing.</summary>
45 //
46 // <use visibility=export>
47 //
48 // <reviewed reviewer="" date="" tests="" demos="">
49 
50 // <prerequisite>
51 // <li> <linkto class="VisSet">VisSet</linkto>
52 // <li> <linkto class="VisibilityIterator">VisibilityIterator</linkto>
53 // </prerequisite>
54 //
55 // <etymology>
56 // VisBuffer is a buffer for visibility data
57 // </etymology>
58 //
59 //<synopsis>
60 // This class contains 'one iteration' of the
61 // <linkto class="VisibilityIterator">VisibilityIterator</linkto>
62 // It is a modifiable
63 // buffer of values to which calibration and averaging can be applied.
64 // This allows processing of the data in larger blocks, avoiding some
65 // overheads for processing per visibility point or spectrum.
66 //
67 // See <linkto module="MeasurementEquations">MeasurementEquations</linkto>
68 // for more details on how the VisBuffer is to be used.
69 //</synopsis>
70 
71 //<todo>
72 // <li> reconcile vis/visCube usage: visCube, flagCube and weightMatrix
73 // are currently only correct when this VisBuffer got them from a
74 // VisIter, operations like -=, freqAverage() are only done for
75 // visibility() and flag().
76 //</todo>
78 
79  friend class ViReadImplAsync;
80 
81 public:
82 
83  // Destructor (detaches from VisIter)
84 
85  virtual ~VisBufferWrapperAsync2();
86 
87 
88  //---------------------------------------------------------------------
89  //
90  // Copying methods
91  //
92  // These methods allow copying portions of the data between two
93  // VisBuffers. Because of the complicated semantics of a VisBuffer the
94  // assignment and copy-construction methods are not used as they are likely
95  // to confuse VisBuffer users.
96 
97 
98  // Copies all of the components from the specified VisBuffer into this one.
99  // Uncached values will be cleared in this VB.
100 
101  virtual void copy (const VisBuffer2 & other, casacore::Bool fetchIfNeeded);
102 
103  // Copies the specified components (or just the one in the cache) from
104  // the specified VisBuffer into this one.
105 
106  virtual void copyComponents (const VisBuffer2 & other,
107  const VisBufferComponents2 & components,
108  casacore::Bool fetchIfNeeded = true);
109 
110  // Copies the coordinate components from the specified VisBuffer into this one.
111  // Depending on includeDirections the direction related ones are copied or not.
112 
113  virtual void copyCoordinateInfo(const VisBuffer2 * other, casacore::Bool includeDirections,
114  casacore::Bool fetchIfNeeded = true);
115 
117 
118  // For attached VBs this returns the VI the VB is attached to. For free
119  // VBs this method returns false.
120 
121  virtual const VisibilityIterator2 * getVi () const;
122 
123  virtual casacore::Bool isAttached () const;
124  virtual casacore::Bool isFillable () const;
125 
126  //---------------------------------------------------------------------
127  //
128  // Dirty component methods
129  //
130  // The dirtyComponent methods support the data-flow approach to using
131  // VisBuffers (the Visibility Processing Framework). In this approach
132  // a VisBuffer is passed to successive processing nodes (e.g., applycal,
133  // flagging, etc.) which operate on it and pass it on to the next node
134  // in the algorithm. The dirtyComponents mechanism allows a processing
135  // node to mark portions of the VisBuffer as modified. If the VisBuffer
136  // reaches an write-to-disk node then the modified portions of the
137  // VisBuffer will be written out. The user can also explicitly direct
138  // that the changes be written out using the writeChangesBack method.
139  //
140  // Using a setter on a VisBuffer component will also set the dirty flag for
141  // that component. Normally the user should not need to use these methods;
142  // however, they are available in case unexpected situations should arise
143  // in the future.
144 
145  virtual void writeChangesBack ();
146 
147  virtual void dirtyComponentsAdd (const VisBufferComponents2 & additionalDirtyComponents);
148  virtual void dirtyComponentsAdd (VisBufferComponent2 component);
149  virtual void dirtyComponentsClear ();
150  virtual VisBufferComponents2 dirtyComponentsGet () const;
151  virtual void dirtyComponentsSet (const VisBufferComponents2 & dirtyComponents);
152  virtual void dirtyComponentsSet (VisBufferComponent2 component);
153 
154  // This method returns the imaging weights associated with the VisBuffer.
155  // If an imaging weight generator has not been supplied to the associated
156  // VisibilityIterator then this method will throw an exception.
157 
158  virtual const casacore::Matrix<casacore::Float> & imagingWeight() const;
159 
160  //---------------------------------------------------------------------------
161  //
162  // Frequency reporting methods.
163  //
164  // These methods provide information about the frequencies returned in the
165  // visibility cubes. The information can returned as the channel numbers
166  // (numbered as in the underlying casacore::MS data) or in a frame-based frequency.
167  // This information reported need not be in the same frame of reference
168  // used to select the data. If the frame of reference is specified in the
169  // call, then that is the frame that is used to calculate the frequencies.
170  // If it is not specified, then the VisibilityIterator will be queried for
171  // virtual the reportingFrame; if the user has specified a reporting frame to the
172  // virtual VI then that frame will be used; otherwise the frame used to select
173  // the frequencies will be used. If the user provides no frequency selection
174  // to the VI then the selection frame will TOPO.
175  //
176  // Both the channelNumber and frequency reporting methods come in two versions:
177  // one returns a single frequency for the specified frequency index and row
178  // while the other provides all of the frequencies for the specified row.
179  // The frequency index is the zero-based index along the frequency axis of
180  // a visibility cube.
181 
182  virtual casacore::Double getFrequency (casacore::Int rowInBuffer, casacore::Int frequencyIndex,
183  casacore::Int frame = FrameNotSpecified) const;
185  casacore::Int frame = FrameNotSpecified) const;
186  virtual casacore::Int getChannelNumber (casacore::Int rowInBuffer, casacore::Int frequencyIndex) const;
187  virtual const casacore::Vector<casacore::Int> & getChannelNumbers (casacore::Int rowInBuffer) const;
188 
189  // casacore::Sort/unsort the correlations, if necessary
190  // (Rudimentary handling of non-canonically sorted correlations--use with care!)
191  //
192  // The sorting functionality is a horrible kluge that puts the VisBuffer into a
193  // somewhat incoherent state (e.g., after sorting the correlation types array
194  // does not correspond to the data) and appears to serve the needs
195  // of a tiny piece of code. As such, this refactor is initially not going to
196  // support this functionality since it is probably better implemented in the one
197  // place that actually needs it. (jjacobs 10/3/12)
198  //
199  //virtual void sortCorr ();
200  //virtual void unSortCorr();
201 
202  // Normalize the visCube by the modelVisCube.
203 
204  virtual void normalize();
205 
206  // Set the weight cube using the sigma cube. Each weight will be
207  // the reciprocal of the square of the corresponding element in the model
208  // VisCube multiplied by the number of channels in the spectral window.
209  // If an element in sigma is zero then the corresponding weight element
210  // will also be set to zero.
211 
212  virtual void resetWeightsUsingSigma ();//void resetWeightMat();
213 
214  //----------------------------------------------------------------------
215  //
216  // Subhchunk information methods
217  //
218  // These methods provide information related to the current subchunk.
219  // The isNewXXX methods return true if the XXX property of the subchunk
220  // differs from the previous subchunk.
221  //
222  // The methods msId and msName provide information about the MS
223  // related to the current subchunk. The msID is the zero-based index
224  // of the casacore::MS in the sequence of MSs being iterated over.
225  //
226  // The isWritable method is true when the attached iterator is writable
227  // and false otherwise.
228  //
229  // The isRekeyable method is true when the VisBuffer is writable and also
230  // allows the modification of non-data fields (e.g., antenna1, fieldId, etc.)
231  // A rekeyable VB is one that could be used to create data for a brand new
232  // MS.
233 
234  virtual casacore::Bool isNewArrayId () const;
235  virtual casacore::Bool isNewFieldId () const;
236  virtual casacore::Bool isNewMs() const;
237  virtual casacore::Bool isNewSpectralWindow () const;
238  virtual casacore::Bool isWritable () const;
239  virtual casacore::Int msId() const;
240  virtual casacore::String msName (casacore::Bool stripPath = false) const;
241  virtual Subchunk getSubchunk () const;
242 
244  //
245  // casacore::Data accessors and setters (where appropriate)
246  //
247  // There are the methods that allows access to the items cached in the
248  // VisBuffer. The straight accessors provide read-only access to the
249  // item. Where the item is allowed to be modified, one or more set
250  // methods are provided.
251  //
252  // The dimensionality of the major object in in accessor/setter is
253  // shown in a trailing comment using the following abbreviations:
254  //
255  // nA :== number of antennas
256  // nF :== number of frequencies (or channels)
257  // nC :== number of correlations
258  // nR :== number of table rows contained in the buffer
259 
260  //--------------------------------------------------------
261  //
262  // Accessors for data contained in the main casacore::MeasurementSet main table
263  // The actual visibility data are at the end.
264  //
265  // *** N.B.: the VB usually caches the information
266  // in the representation requested so that using a setter to modify
267  // one value type (e.g., weight or visibility) will not modify the
268  // cached value in a different representation (e.g., weightMat or
269  // visCube). This should not be a problem in normal usage.
270 
271  virtual const casacore::Vector<casacore::Int> & antenna1 () const = 0; // [nR]
272  virtual void setAntenna1 (const casacore::Vector<casacore::Int> & value) = 0; // [nR]
273  virtual const casacore::Vector<casacore::Int> & antenna2 () const = 0; // [nR]
274  virtual void setAntenna2 (const casacore::Vector<casacore::Int> & value) = 0; // [nR]
275  virtual const casacore::Vector<casacore::Int>& arrayId () const = 0;
276  virtual void setArrayId (const casacore::Vector<casacore::Int>&) = 0;
277  virtual casacore::Int dataDescriptionId () const = 0;
278  virtual void setDataDescriptionId (casacore::Int value) = 0;
279  virtual const casacore::Vector<casacore::MDirection> & direction1 () const = 0; // [nR]
280  virtual const casacore::Vector<casacore::MDirection> & direction2 () const = 0; // [nR]
281  virtual const casacore::Vector<casacore::Double> & exposure () const = 0; // [nR]
282  virtual void setExposure (const casacore::Vector<casacore::Double> & value) = 0; // [nR]
283  virtual const casacore::Vector<casacore::Int> & feed1 () const = 0; // [nR]
284  virtual void setFeed1 (const casacore::Vector<casacore::Int> & value) = 0; // [nR]
285  virtual const casacore::Vector<casacore::Int> & feed2 () const = 0; // [nR]
286  virtual void setFeed2 (const casacore::Vector<casacore::Int> & value) = 0; // [nR]
287  virtual const casacore::Vector<casacore::Int>& fieldId () const = 0;
288  virtual void setFieldId (const casacore::Vector<casacore::Int>&) = 0;
289  virtual const casacore::Matrix<casacore::Bool> & flag () const = 0; // [nF,nR]
290  virtual void setFlag (const casacore::Matrix<casacore::Bool>& value) = 0; // [nF,nR]
291  virtual const casacore::Array<casacore::Bool> & flagCategory () const = 0; // [nC,nF,nCategories,nR]
292  virtual void setFlagCategory (const casacore::Array<casacore::Bool>& value) = 0; // [nC,nF,nCategories,nR]
293  virtual const casacore::Cube<casacore::Bool> & flagCube () const = 0; // [nC,nF,nR]
294  virtual void setFlagCube (const casacore::Cube<casacore::Bool>& value) = 0; // [nC,nF,nR]
295  virtual const casacore::Vector<casacore::Bool> & flagRow () const = 0; // [nR]
296  virtual void setFlagRow (const casacore::Vector<casacore::Bool>& value) = 0; // [nR]
297  virtual const casacore::Vector<casacore::Int> & observationId () const = 0; // [nR]
298  virtual void setObservationId (const casacore::Vector<casacore::Int> & value) = 0; // [nR]
299  virtual const casacore::Vector<casacore::Int> & processorId () const = 0; // [nR]
300  virtual void setProcessorId (const casacore::Vector<casacore::Int> & value) = 0; // [nR]
301  virtual const casacore::Vector<casacore::Int> & scan () const = 0; // [nR]
302  virtual void setScan (const casacore::Vector<casacore::Int> & value) = 0; // [nR]
303  virtual const casacore::Matrix<casacore::Float> & sigma () const = 0; // [nR]
304  virtual void setSigma (const casacore::Matrix<casacore::Float> & value) = 0; // [nR]
305  //virtual const casacore::Matrix<casacore::Float> & sigmaMat () const = 0; // [nC,nR]
306  virtual const casacore::Vector<casacore::Int> & stateId () const = 0; // [nR]
307  virtual void setStateId (const casacore::Vector<casacore::Int> & value) = 0; // [nR]
308  virtual const casacore::Vector<casacore::Double> & time () const = 0; // [nR]
309  virtual void setTime (const casacore::Vector<casacore::Double> & value) = 0; // [nR]
310  virtual const casacore::Vector<casacore::Double> & timeCentroid () const = 0; // [nR]
311  virtual void setTimeCentroid (const casacore::Vector<casacore::Double> & value) = 0; // [nR]
312  virtual const casacore::Vector<casacore::Double> & timeInterval () const = 0; // [nR]
313  virtual void setTimeInterval (const casacore::Vector<casacore::Double> & value) = 0; // [nR]
314  virtual const casacore::Matrix<casacore::Double> & uvw () const = 0; // [3,nR]
315  virtual void setUvw (const casacore::Matrix<casacore::Double> & value) = 0; // [3,nR]
316  virtual const casacore::Matrix<casacore::Float> & weight () const = 0; // [nR]
317  virtual void setWeight (const casacore::Matrix<casacore::Float>& value) = 0; // [nR]
318 // virtual const casacore::Matrix<casacore::Float> & weightMat () const = 0; // [nC,nR]
319 // virtual void setWeightMat (const casacore::Matrix<casacore::Float>& value) = 0; // [nC,nR]
320  virtual const casacore::Cube<casacore::Float> & weightSpectrum () const = 0; // [nC,nF,nR]
321  virtual void setWeightSpectrum (const casacore::Cube<casacore::Float>& value) = 0; // [nC,nF,nR]
322 
323  // --------------------------------------------------------------
324  // Visibility data accessors in order of observed, corrected,
325  // float, & model
326 
327  virtual const casacore::Cube<casacore::Complex> & visCube () const; // [nC,nF,nR]
328  virtual void setVisCube(const casacore::Complex & c);
329  virtual void setVisCube (const casacore::Cube<casacore::Complex> &); // [nC,nF,nR]
330  virtual const casacore::Matrix<CStokesVector> & vis () const; // [nF,nR]
331  virtual void setVis (casacore::Matrix<CStokesVector> &); // [nF,nR]
332 
333  virtual const casacore::Cube<casacore::Complex> & visCubeCorrected () const; // [nC,nF,nR]
334  virtual void setVisCubeCorrected (const casacore::Cube<casacore::Complex> &); // [nC,nF,nR]
335  virtual const casacore::Matrix<CStokesVector> & visCorrected () const; // [nF,nR]
336  virtual void setVisCorrected (const casacore::Matrix<CStokesVector> &); // [nF,nR]
337 
338  virtual const casacore::Cube<casacore::Float> & visCubeFloat () const; // [nC,nF,nR]
339  virtual void setVisCubeFloat (const casacore::Cube<casacore::Float> &); // [nC,nF,nR]
340 
341  virtual const casacore::Cube<casacore::Complex> & visCubeModel () const; // [nC,nF,nR]
342  virtual void setVisCubeModel(const casacore::Complex & c);
343  virtual void setVisCubeModel(const casacore::Cube<casacore::Complex>& vis); // [nC,nF,nR]
344  virtual void setVisCubeModel(const casacore::Vector<casacore::Float>& stokes); // [1..4]
345  virtual const casacore::Matrix<CStokesVector> & visModel () const; // [nF,nR]
346  virtual void setVisModel (casacore::Matrix<CStokesVector> &); // [nF,nR]
347 
348  //--------------------------------------------------------
349  //
350  // Accessors for data derived from the casacore::MS main table data
351 
352  // Returns the pointing angle for the array as a whole at the
353  // specified time.
354 
356 
357  // Returns the pointing angle for each antenna in the array
358  // at the specified time.
359 
360  virtual const casacore::Vector<casacore::MDirection> & azel(casacore::Double time) const; // [nA]
361 
362  // Returns the Jones C matrix for each antenna.
363 
365 
366  // Returns the correlation type of each correlation in the
367  // VisCube.
368 
369  virtual const casacore::Vector<casacore::Int> & correlationTypes () const; // [nC]
370 
371  // Calculates the parallactic angle for the first receptor of
372  // each antenna at the specified time.
373 
374  virtual const casacore::Vector<casacore::Float> & feedPa(casacore::Double time) const; // [nR]
375 
376  // Calculates the parallactic angle for feed 0 of the
377  // row's Antenna1.
378 
379  virtual const casacore::Vector<casacore::Float> & feedPa1 () const; // [nR]
380 
381  // Calculates the parallactic angle for feed 0 of the
382  // row's Antenna2.
383 
384  virtual const casacore::Vector<casacore::Float> & feedPa2 () const; // [nR]
385 
386  // Returns the hour angle of the array at the specified time.
387 
389 
390  virtual casacore::Int nAntennas () const;
391 
392  virtual casacore::Int nChannels () const;
393 
394  // Returns the number of correlations along the visCube
395  // correlation axis.
396 
397  virtual casacore::Int nCorrelations () const;
398 
399  // Returns the number of rows in this VisBuffer
400 
401  virtual casacore::Int nRows () const;
402 
403  // Calculates the parallactic angle of the array as a whole
404  // at the specified time.
405 
407 
408  // Calculates the parallactic angle of each antenna in the
409  // array at the specified time.
410 
411  virtual const casacore::Vector<casacore::Float> & parang(casacore::Double time) const; // [nA]
412 
413  // Returns the phase center of the array for the specified
414  // row.
415 
416  virtual const casacore::MDirection& phaseCenter () const;
417 
418  // Returns the polarization frame for the specified row.
419 
420  virtual casacore::Int polarizationFrame () const;
421 
422  virtual casacore::Int polarizationId () const;
423 
424  // The returned casacore::Vector serves as a map between the rows in
425  // the VisBuffer and the row IDs in the underlying casacore::MS main
426  // virtual table: mainTableID [i] = rowIds () [ i];
427 
428  virtual const casacore::Vector<casacore::uInt> & rowIds () const; // [nR]
429 
430  // Returns the spectral window ID for the specified row.
431 
432  virtual casacore::Int spectralWindow () const;
433 
434 
435 protected:
436 
438 
439  VisBuffer2 * getWrappedVisBuffer () const;
440  void wrap (VisBuffer2 * vba);
441 
442 private:
443 
446 
447 
448 };
449 
450 } // end namespace vi
451 
452 } //# NAMESPACE CASA - END
453 
454 #endif
virtual casacore::Int nCorrelations() const
Returns the number of correlations along the visCube correlation axis.
virtual void setVisCubeFloat(const casacore::Cube< casacore::Float > &)
void wrap(VisBuffer2 *vba)
A Measure: astronomical direction.
Definition: MDirection.h:174
virtual void setWeightSpectrum(const casacore::Cube< casacore::Float > &value)=0
int Int
Definition: aipstype.h:50
virtual void setVisCubeCorrected(const casacore::Cube< casacore::Complex > &)
virtual casacore::Bool isFillable() const
virtual void setFeed2(const casacore::Vector< casacore::Int > &value)=0
virtual ~VisBufferWrapperAsync2()
Destructor (detaches from VisIter)
virtual void setObservationId(const casacore::Vector< casacore::Int > &value)=0
virtual const casacore::Vector< casacore::Int > & feed1() const =0
VisBuffers encapulsate one chunk of visibility data for processing.
virtual casacore::Int nChannels() const
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
virtual const casacore::Cube< casacore::Complex > & visCubeModel() const
virtual void setTimeInterval(const casacore::Vector< casacore::Double > &value)=0
virtual void setExposure(const casacore::Vector< casacore::Double > &value)=0
virtual const casacore::Vector< casacore::Int > & fieldId() const =0
virtual void setAntenna2(const casacore::Vector< casacore::Int > &value)=0
virtual void setVisCorrected(const casacore::Matrix< CStokesVector > &)
virtual void setTimeCentroid(const casacore::Vector< casacore::Double > &value)=0
VisBufferWrapperAsync2(VisibilityIterator2 &iter)
virtual const casacore::Vector< casacore::Double > & exposure() const =0
virtual const casacore::Vector< casacore::MDirection > & azel(casacore::Double time) const
Returns the pointing angle for each antenna in the array at the specified time.
virtual void copyComponents(const VisBuffer2 &other, const VisBufferComponents2 &components, casacore::Bool fetchIfNeeded=true)
Copies the specified components (or just the one in the cache) from the specified VisBuffer into this...
virtual casacore::Int dataDescriptionId() const =0
virtual const casacore::Vector< casacore::Int > & scan() const =0
virtual const casacore::Vector< casacore::Int > & feed2() const =0
virtual casacore::String msName(casacore::Bool stripPath=false) const
virtual casacore::Bool isWritable() const
virtual casacore::Int nAntennas() const
virtual casacore::Bool isAttached() const
virtual Subchunk getSubchunk() const
virtual const casacore::Matrix< casacore::Float > & sigma() const =0
virtual const casacore::Matrix< casacore::Double > & uvw() const =0
virtual casacore::Bool isNewFieldId() const
virtual const casacore::Cube< casacore::Complex > & visCubeCorrected() const
virtual const casacore::Matrix&lt;CStokesVector&gt; &amp; vis () const = 0; // [nF,nR] virtual void setVis (cas...
virtual const casacore::Array< casacore::Bool > & flagCategory() const =0
virtual const casacore::Matrix&lt;casacore::Bool&gt; &amp; flag () const = 0; // [nF,nR] virtual void setFlag (...
virtual const casacore::Vector< casacore::Int > & getChannelNumbers(casacore::Int rowInBuffer) const
virtual void resetWeightsUsingSigma()
Set the weight cube using the sigma cube.
virtual const VisibilityIterator2 * getVi() const
For attached VBs this returns the VI the VB is attached to.
virtual void setFlagCube(const casacore::Cube< casacore::Bool > &value)=0
virtual const casacore::Vector< casacore::Float > & feedPa(casacore::Double time) const
Calculates the parallactic angle for the first receptor of each antenna at the specified time...
virtual VisBufferComponents2 dirtyComponentsGet() const
virtual casacore::Double getFrequency(casacore::Int rowInBuffer, casacore::Int frequencyIndex, casacore::Int frame=FrameNotSpecified) const
virtual void copyCoordinateInfo(const VisBuffer2 *other, casacore::Bool includeDirections, casacore::Bool fetchIfNeeded=true)
Copies the coordinate components from the specified VisBuffer into this one.
virtual void copy(const VisBuffer2 &other, casacore::Bool fetchIfNeeded)
virtual const casacore::Vector< casacore::Int > & processorId() const =0
virtual void dirtyComponentsAdd(const VisBufferComponents2 &additionalDirtyComponents)
virtual const casacore::Vector< casacore::Int > & arrayId() const =0
virtual void setFlag(const casacore::Matrix< casacore::Bool > &value)=0
virtual const casacore::Cube< casacore::Float > & visCubeFloat() const
virtual const casacore::Matrix&lt;CStokesVector&gt; &amp; visCorrected () const = 0; // [nF,nR] virtual void setVisCorrected (const casacore::Matrix&lt;CStokesVector&gt; &amp;) = 0; // [nF,nR]
virtual casacore::Int polarizationFrame() const
Returns the polarization frame for the specified row.
virtual const casacore::Vector< casacore::Double > & timeInterval() const =0
virtual const casacore::Matrix< casacore::Float > & imagingWeight() const
This method returns the imaging weights associated with the VisBuffer.
virtual const casacore::Vector< casacore::Float > & feedPa1() const
Calculates the parallactic angle for feed 0 of the row&#39;s Antenna1.
virtual const casacore::Vector< casacore::Int > & observationId() const =0
virtual void setFieldId(const casacore::Vector< casacore::Int > &)=0
virtual void setSigma(const casacore::Matrix< casacore::Float > &value)=0
virtual const casacore::Vector< casacore::MDirection > & direction1() const =0
virtual const casacore::Matrix< CStokesVector > & vis() const
virtual const casacore::Vector< casacore::Int > & stateId() const =0
virtual const casacore::Matrix&lt;casacore::Float&gt; &amp; sigmaMat () const = 0; // [nC,nR] ...
virtual const casacore::Vector< casacore::uInt > & rowIds() const
The returned casacore::Vector serves as a map between the rows in the VisBuffer and the row IDs in th...
double Double
Definition: aipstype.h:55
VisBuffer2 * getWrappedVisBuffer() const
virtual casacore::Bool isNewMs() const
virtual void setVisCube(const casacore::Complex &c)
virtual casacore::MDirection azel0(casacore::Double time) const
virtual const casacore::Vector< casacore::Float > & parang(casacore::Double time) const
Calculates the parallactic angle of each antenna in the array at the specified time.
virtual const casacore::Vector< casacore::Float > & feedPa2() const
Calculates the parallactic angle for feed 0 of the row&#39;s Antenna2.
virtual const casacore::Vector< casacore::Double > & time() const =0
virtual void setFlagCategory(const casacore::Array< casacore::Bool > &value)=0
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
virtual void setArrayId(const casacore::Vector< casacore::Int > &)=0
virtual casacore::Bool isNewSpectralWindow() const
virtual casacore::Int msId() const
virtual const casacore::Cube< casacore::Complex > & visCube() const
Visibility data accessors in order of observed, corrected, float, &amp; model
float Float
Definition: aipstype.h:54
virtual void dirtyComponentsSet(const VisBufferComponents2 &dirtyComponents)
virtual const casacore::Vector< casacore::Int > & antenna2() const =0
virtual const casacore::Vector< casacore::Double > & getFrequencies(casacore::Int rowInBuffer, casacore::Int frame=FrameNotSpecified) const
virtual void setFeed1(const casacore::Vector< casacore::Int > &value)=0
virtual const casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > & cjones() const
Returns the Jones C matrix for each antenna.
virtual const casacore::Matrix< CStokesVector > & visModel() const
virtual casacore::Double hourang(casacore::Double time) const
Returns the hour angle of the array at the specified time.
virtual const casacore::Matrix< CStokesVector > & visCorrected() const
virtual void setScan(const casacore::Vector< casacore::Int > &value)=0
virtual void setProcessorId(const casacore::Vector< casacore::Int > &value)=0
VisBuffer2s encapsulate one chunk of visibility data for processing.
Definition: VisBuffer2.h:141
virtual casacore::Bool isNewArrayId() const
virtual void setVisCubeModel(const casacore::Complex &c)
virtual void setUvw(const casacore::Matrix< casacore::Double > &value)=0
virtual void setStateId(const casacore::Vector< casacore::Int > &value)=0
const Double c
Fundamental physical constants (SI units):
virtual void setAntenna1(const casacore::Vector< casacore::Int > &value)=0
virtual const casacore::Cube< casacore::Float > & weightSpectrum() const =0
virtual const casacore::Matrix&lt;casacore::Float&gt; &amp; weightMat () const = 0; // [nC,nR] virtual void set...
virtual const casacore::Matrix< casacore::Bool > & flag() const =0
virtual const casacore::Vector< casacore::Int > & correlationTypes() const
Returns the correlation type of each correlation in the VisCube.
String: the storage and methods of handling collections of characters.
Definition: String.h:223
virtual void setVis(casacore::Matrix< CStokesVector > &)
virtual void setDataDescriptionId(casacore::Int value)=0
virtual const casacore::MDirection & phaseCenter() const
Returns the phase center of the array for the specified row.
virtual casacore::Int getChannelNumber(casacore::Int rowInBuffer, casacore::Int frequencyIndex) const
virtual casacore::Float parang0(casacore::Double time) const
Calculates the parallactic angle of the array as a whole at the specified time.
virtual const casacore::Vector< casacore::Bool > & flagRow() const =0
virtual void setFlagRow(const casacore::Vector< casacore::Bool > &value)=0
This class encapsulates an enum with values corresponding to the various data components accessible v...
virtual casacore::Int polarizationId() const
virtual void normalize()
casacore::Sort/unsort the correlations, if necessary (Rudimentary handling of non-canonically sorted ...
virtual const casacore::Vector< casacore::MDirection > & direction2() const =0
virtual void setWeight(const casacore::Matrix< casacore::Float > &value)=0
virtual const casacore::Cube< casacore::Bool > & flagCube() const =0
virtual casacore::Int nRows() const
Returns the number of rows in this VisBuffer.
virtual const casacore::Vector< casacore::Double > & timeCentroid() const =0
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
virtual void setVisModel(casacore::Matrix< CStokesVector > &)
virtual const casacore::Matrix< casacore::Float > & weight() const =0
virtual void setTime(const casacore::Vector< casacore::Double > &value)=0
virtual casacore::Int spectralWindow() const
Returns the spectral window ID for the specified row.
virtual void setShape(casacore::Int nCorrelations, casacore::Int nChannels, casacore::Int nRows)