casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VisBufferAsyncWrapper.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>
39 #include <msvis/MSVis/VisBuffer.h>
42 #include <msvis/MSVis/MSCalEnums.h>
43 
44 namespace casa { //# NAMESPACE CASA - BEGIN
45 
46 //#forward
47 
48 //<summary>VisBuffers encapulsate one chunk of visibility data for processing.</summary>
49 //
50 // <use visibility=export>
51 //
52 // <reviewed reviewer="" date="" tests="" demos="">
53 
54 // <prerequisite>
55 // <li> <linkto class="VisSet">VisSet</linkto>
56 // <li> <linkto class="VisibilityIterator">VisibilityIterator</linkto>
57 // </prerequisite>
58 //
59 // <etymology>
60 // VisBuffer is a buffer for visibility data
61 // </etymology>
62 //
63 //<synopsis>
64 // This class contains 'one iteration' of the
65 // <linkto class="VisibilityIterator">VisibilityIterator</linkto>
66 // It is a modifiable
67 // buffer of values to which calibration and averaging can be applied.
68 // This allows processing of the data in larger blocks, avoiding some
69 // overheads for processing per visibility point or spectrum.
70 //
71 // See <linkto module="MeasurementEquations">MeasurementEquations</linkto>
72 // for more details on how the VisBuffer is to be used.
73 //</synopsis>
74 
75 //<todo>
76 // <li> reconcile vis/visCube usage: visCube, flagCube and weightMatrix
77 // are currently only correct when this VisBuffer got them from a
78 // VisIter, operations like -=, freqAverage() are only done for
79 // visibility() and flag().
80 //</todo>
82 
83  friend class ViReadImplAsync;
84 
85 public:
86  // Create empty VisBuffer you can assign to or attach.
88 // // Construct VisBuffer for a particular VisibilityIterator
89 // // The buffer will remain synchronized with the iterator.
91 //
92 // // Copy construct, looses synchronization with iterator: only use buffer for
93 // // current iteration (or reattach).
95 
96  // Destructor (detaches from VisIter)
97  virtual ~VisBufferAsyncWrapper();
98 
99  // Assignment, loses synchronization with iterator: only use buffer for
100  // current iteration (or reattach)
101 
103 
104  // Assignment, optionally without copying the data across; with copy=true
105  // this is identical to normal assignment operator
106 
107  virtual VisBufferAsyncWrapper & assign(const VisBuffer & vb, casacore::Bool copy = true);
108 
109  // subtraction: return the difference of the visibilities, flags of
110  // this and other are or-ed. An exception is thrown if the number of
111  // rows or channels differs, but no further checks are done.
113 
114  // Attach to a VisIter. Detaches itself first if already attached
115  // to a VisIter. Will remain synchronized with iterator.
116  virtual void attachToVisIter(ROVisibilityIterator & iter);
118  virtual VisBuffer * clone ();
119  virtual void detachFromVisIter ();
120 
121  // Invalidate the cache
122  virtual void invalidate();
123 
124  // <group>
125  // Access functions
126  //
127  virtual casacore::Int & nCorr();
128  casacore::Int nCorr() const;
129 
131  casacore::Int nChannel() const;
132 
135 
136  casacore::Bool newArrayId () const;
137  casacore::Bool newFieldId () const;
139 
140  casacore::Int & nRow();
141  casacore::Int nRow() const;
142 
145 
148 
150  const casacore::Vector<casacore::Int>& feed1() const;
151 
153  const casacore::Vector<casacore::Int>& feed2() const;
154 
155  // feed1_pa() and feed2_pa() return an array of parallactic angles
156  // (each corresponds to the first receptor of the feed) one for each
157  // row in the current buffer. In contrast, feed_pa() calculates
158  // the angles for each antenna. These methods are implemented for
159  // VisBuffer only to benefit from caching of the feed and antenna IDs.
162 
165 
168 
169  // Note that feed_pa is a function instead of a cached value
171 
172  // direction1() and direction2() return arrays of directions where
173  // the first and the second antenna/feed are pointed to. One value for
174  // each row in the current buffer.
177 
180 
181 
182  // NOMINAL parallactic angle (feed p.a. offset NOT included)
185 
186  // Note that azel is a function instead of a cached value
191 
192  // Hour angle for specified time
194 
195  casacore::Int fieldId() const;
196 
197  casacore::Int arrayId() const;
198 
200 
201  // Return flag for each channel & row
203  const casacore::Matrix<casacore::Bool>& flag() const;
204 
205  // Return flag for each polarization, channel and row
208 
211 
212  // Return flags for each polarization, channel, category, and row.
215 
217  const casacore::Vector<casacore::Int>& scan() const;
218 
219  // scalar version for convenience, when scan known constant for
220  // entire iteration/buffer.
222 
225 
228 
231 
232  // Gets SPECTRAL_WINDOW/CHAN_FREQ (in Hz, acc. to the casacore::MS def'n v.2).
235 
236 // casacore::Vector<casacore::Double>& lsrFrequency();
237 // const casacore::Vector<casacore::Double>& lsrFrequency() const;
238 
239 
240  //the following method is to convert the observed frequencies
241  // This conversion may not be accurate for some frame
242  // conversion like topo to lsr except if the spw is in the actual buffer
243 
244  virtual void lsrFrequency(const casacore::Int & spw, casacore::Vector<casacore::Double>& freq, casacore::Bool & convert) const;
245 
246  virtual casacore::Int numberCoh () const;
247 
250 
251  casacore::Int polFrame() const;
252 
255 
258 
261 
264  virtual casacore::Int dataDescriptionId() const;
267 
270 
273 
276 
279 
282 
285 
288 
291 
294 
296 
298 
300 
303 
304  // Return visCube(), modelVisCube(), or correctedVisCube(),
305  // according to whichcol. They throw an exception if whichcol is
306  // unsupported, but note the encouraged default.
307  // TODO: Optionally return DATA if whichcol is unavailable.
310  whichcol=casacore::MS::DATA) const;
311 
314 
315  // Returns the weights for each row averaged over the parallel hand correlations.
318 
319  // Returns the nPol_p x curNumRow_p weight matrix.
322 
323  // Is a valid WEIGHT_SPECTRUM available?
325 
328 
331 
333  //</group>
334 
335  //<group>
336  // Utility functions to provide coordinate or column ranges of the
337  // data in the VisBuffer. Flagging is applied before computing the ranges.
338  //
339  // Generic accessor to column ranges of integer type, as specified by
340  // enumerations defined in class MSCalEnums. Throws an exception
341  // if the enum is not for a recognized integer column.
343 
344  // Antenna id. range (includes both ANTENNA1 and ANTENNA2 columns)
346 
347  // casacore::Time range
348  casacore::Bool timeRange(casacore::MEpoch & rTime, casacore::MVEpoch & rTimeEP, casacore::MVEpoch & rInterval) const;
349 
350  // Return the row Ids from the original ms. If the ms used is a subset of
351  // another ms then rowIds() return the row ids of the original ms.
353 
354  virtual const casacore::Vector<casacore::uInt>& rowIds() const;;
355 
356  //</group>
357 
358  // Frequency average the buffer (visibility() column only)
359  void freqAverage();
360 
361  // Frequency average the buffer (visCube and [if present] modelVisCube)
362  void freqAveCubes();
363 
364  // Average channel axis according to chanavebounds, for whichever of DATA,
365  // MODEL_DATA, CORRECTED_DATA, FLOAT_DATA, FLAG, and WEIGHT_SPECTRUM are
366  // present. It will only treat the first 5 as present if they have already
367  // been loaded into the buffer!
368  void channelAve(const casacore::Matrix<casacore::Int>& chanavebounds);
369 
370  // Average channel axis by factor.
371  template<class T> void chanAveVisCube(casacore::Cube<T>& data, casacore::Int nChanOut);
372 
373  // Accumulate channel axis by factor, without applying WEIGHT_SPECTRUM even
374  // if it is present.
375  // It is primarily intended for averaging WEIGHT_SPECTRUM itself.
376  template<class T> void chanAccCube(casacore::Cube<T>& data, casacore::Int nChanOut);
377 
378  // This defaults to no conceptual side effects, but usually it is more
379  // efficient to let it leave weightSpectrum() in a channel averaged state.
380  // restoreWeightSpectrum has no effect if !existsWeightSpectrum().
381  void chanAveFlagCube(casacore::Cube<casacore::Bool>& flagcube, const casacore::Int nChanOut,
382  const casacore::Bool restoreWeightSpectrum = true);
383 
384  // Form casacore::Stokes parameters from correlations
385  // (these are preliminary versions)
386  void formStokes();
389  void formStokes(casacore::Cube<casacore::Float>& fcube); // Will throw up if asked to do all 4.
390 
391  // casacore::Sort/unsort the correlations, if necessary
392  // (Rudimentary handling of non-canonically sorted correlations--use with care!)
393  void sortCorr();
394  void unSortCorr();
395 
396  // Normalize the visCube by the modelVisCube
397  // (and optionally also divide visCube_p by its normalized amp)
398  void normalize(const casacore::Bool & phaseOnly = false);
399 
400  // Fill weightMat according to sigma column
401  void resetWeightMat();
402 
403  // Rotate visibility phase for phase center offsets
405 
406  // Update coordinate info - useful for copied VisBuffers that need
407  // to retain some state for later reference.
408  // Presently this fills antenna, array, field and spectralWindow ids, time,
409  // frequency and number of rows. Add more as needed.
410  virtual void updateCoordInfo(const VisBuffer * vb = NULL);
411 
412  // Set the visibility to a constant, note that this only changes the buffer,
413  // no values are written back to tables from here.
414  virtual void setVisCube(casacore::Complex c);
415  virtual void setModelVisCube(casacore::Complex c);
417 
418  // Set the visibility, note that this only changes the buffer,
419  // no values are written back to tables from here.
423 
424  // Like the above, but for FLOAT_DATA, keeping it as real floats.
426 
427  // Set model according to a casacore::Stokes vector
429 
430  // Reference external model visibilities
432 
433  // Remove scratch cols data from vb
434  void removeScratchCols();
435 
436  // Access the current casacore::ROMSColumns object via VisIter
437  virtual const casacore::ROMSColumns & msColumns() const;
438 
439  virtual casacore::Int numberAnt () const;
440 
441 
442 
443  // Get all selected spectral windows not just the one in the actual buffer
445 
447 
448  // Return the actual msid, useful if using multiple ms to monitor which
449  // ms in the list is being dealt with
450  virtual casacore::Int msId() const;
451 
452  //checked if the ms has changed since the last chunk processed
453  virtual casacore::Bool newMS() const;
454 
455  void wrap (VisBufferAsync * vba);
456 
457 protected:
458 
459  virtual casacore::Bool checkMSId();
460  virtual void checkVisIter (const char * func, const char * file, int line) const;
461  void copyCache (const VisBuffer & other, casacore::Bool force);
463  casacore::Int getOldMsId () const;
466 
467  // Create cache status accessors which relay the request to the wrapped
468  // VBA.
469 
470 #undef CacheStatus
471 #define CacheStatus(item)\
472 bool item ## OK () const\
473 {\
474  if (wrappedVba_p == NULL){\
475  throw casacore::AipsError ("VisBufferAsyncWrapper: No attached VBA", __FILE__, __LINE__);\
476  }\
477  return wrappedVba_p->item ## OK_p;\
478 }
479 
484  CacheStatus (cjones);
493  CacheStatus (feed1);
495  CacheStatus (feed2);
499  CacheStatus (flag);
506  CacheStatus (ms);
508  CacheStatus (nCorr);
509  CacheStatus (nRow);
515  CacheStatus (scan);
517  CacheStatus (sigma);
522  CacheStatus (time);
524  CacheStatus (uvw);
530 
531 private:
532 
535 
536  // validate the cache
537  void validate();
539 
540  void setAllCacheStatuses (bool status);
541 
542 
543  casacore::Bool nonCanonCorr(); // Are correlations in non-canonical order?
544 
545  // Filter index arrays for unique elements
547 
548  // +-------------------------------------------------+
549  // | Cache Declarations (fillers, statuses and data) |
550  // +-------------------------------------------------+
551  //
552  // Preferred naming convention:
553  //
554  // T thing () --- returns the value of thing (public method)
555  // T fillThing () --- fills thing cache variable and sets thingOK_p to true (private)
556  // casacore::Bool thingOK_p --- true if the value of thing is currently cached (private)
557  // T thing_p --- holds cached value of thing (if thingOK_p is true) (private)
558  //
559  // Example: casacore::Vector<casacore::Int>& feed1(); casacore::Vector<casacore::Int>& fillFeed1();
560  // casacore::Bool feed1OK_P; casacore::Vector<casacore::Int> feed1_p;
561 
562  // Cache filling routines in alphabetical order
563  //
564  // The first line in a fill routine should be the macro CheckVisIter. This
565  // will cause an casacore::AipsError to be throw when there is no visibilty iterator
566  // associated with the VisBuffer. This is especially important because the
567  // fillers may be called on a VisBufferAsync in two contexts: filling
568  // where there will be a VI attached and in normal use where there is no VI
569  // attached. The filler must also set the cache status variable to true during
570  // its execution.
571 
575  //casacore::Matrix<casacore::Int>& fillChanAveBounds();
592  casacore::Vector<casacore::Double>& fillFreq(); // Puts SPECTRAL_WINDOW/CHAN_FREQ in frequency_p.
593  //casacore::Matrix<casacore::Float>& fillImagingWeight();
594  //casacore::Vector<casacore::Double>& fillLSRFreq();
617 
618 };
619 
620 } //# NAMESPACE CASA - END
621 
622 #endif
void chanAveVisCube(casacore::Cube< T > &data, casacore::Int nChanOut)
Average channel axis by factor.
void wrap(VisBufferAsync *vba)
casacore::Cube< casacore::Complex > & modelVisCube()
A Measure: astronomical direction.
Definition: MDirection.h:174
casacore::Vector< casacore::Double > & frequency()
Gets SPECTRAL_WINDOW/CHAN_FREQ (in Hz, acc.
void validate()
validate the cache
int Int
Definition: aipstype.h:50
casacore::Vector< casacore::Int > & feed2()
casacore::Cube< casacore::Complex > & visCube()
casacore::Vector< casacore::MDirection > & direction1()
direction1() and direction2() return arrays of directions where the first and the second antenna/feed...
casacore::Int polFrame() const
casacore::Matrix< casacore::Float > & weightMat()
Returns the nPol_p x curNumRow_p weight matrix.
void freqAverage()
Frequency average the buffer (visibility() column only)
StatsData< AccumType > copy(const StatsData< AccumType > &stats)
void attachWrappedVb(ROVisibilityIterator *iter)
casacore::Bool newArrayId() const
virtual void attachToVisIter(ROVisibilityIterator &iter)
Attach to a VisIter.
casacore::Bool nonCanonCorr()
virtual casacore::MDirection azel0(casacore::Double time) const
Note that azel is a function instead of a cached value.
casacore::Array< casacore::Bool > & flagCategory()
Return flags for each polarization, channel, category, and row.
Object to hold type of imaging weight scheme to be used on the fly and to provide facilities to do th...
casacore::Vector< casacore::Double > & fillFreq()
casacore::Int & fillPolFrame()
casacore::Int fieldId() const
void setFloatDataCube(const casacore::Cube< casacore::Float > &fcube)
Like the above, but for FLOAT_DATA, keeping it as real floats.
casacore::Vector< casacore::Int > & fillStateId()
casacore::Int & spectralWindow()
void chanAccCube(casacore::Cube< T > &data, casacore::Int nChanOut)
Accumulate channel axis by factor, without applying WEIGHT_SPECTRUM even if it is present...
virtual casacore::Double hourang(casacore::Double time) const
Hour angle for specified time.
void chanAveFlagCube(casacore::Cube< casacore::Bool > &flagcube, const casacore::Int nChanOut, const casacore::Bool restoreWeightSpectrum=true)
This defaults to no conceptual side effects, but usually it is more efficient to let it leave weightS...
casacore::Int polarizationId() const
casacore::Matrix< casacore::Double > & azelMat(casacore::Double time, casacore::Matrix< casacore::Double > &azelMat) const
casacore::Vector< casacore::Int > & fillProcessorId()
casacore::Bool newSpectralWindow() const
ROVisibilityIterator * wrappedVisIterAsync_p
void freqAveCubes()
Frequency average the buffer (visCube and [if present] modelVisCube)
void resetWeightMat()
Fill weightMat according to sigma column.
virtual casacore::Vector< casacore::Float > parang(casacore::Double time) const
virtual casacore::Vector< casacore::MDirection > & fillDirection2()
casacore::Int & fillFieldId()
casacore::Matrix< casacore::Float > & fillWeightMat()
virtual VisBuffer * clone()
casacore::Vector< casacore::Int > & processorId()
casacore::Bool existsWeightSpectrum() const
Is a valid WEIGHT_SPECTRUM available?
virtual void detachFromVisIter()
virtual casacore::Int dataDescriptionId() const;
virtual void checkVisIter(const char *func, const char *file, int line) const
casacore::Vector< casacore::Int > & stateId()
casacore::Cube< casacore::Float > & weightSpectrum()
void sortCorr()
casacore::Sort/unsort the correlations, if necessary (Rudimentary handling of non-canonically sorted ...
casacore::Cube< casacore::Float > & floatDataCube()
virtual casacore::Vector< casacore::Float > feed_pa(casacore::Double time) const
Note that feed_pa is a function instead of a cached value.
casacore::Matrix< casacore::Float > & sigmaMat()
casacore::Int getOldMsId() const
casacore::Vector< casacore::Float > & feed1_pa()
feed1_pa() and feed2_pa() return an array of parallactic angles (each corresponds to the first recept...
casacore::Vector< casacore::Bool > & fillFlagRow()
virtual void invalidate()
Invalidate the cache.
casacore::Matrix< casacore::Double > & uvwMat()
void normalize(const casacore::Bool &phaseOnly=false)
Normalize the visCube by the modelVisCube (and optionally also divide visCube_p by its normalized amp...
PredefinedColumns
The Main table colums with predefined meaning.
Definition: MSMainEnums.h:65
virtual casacore::MDirection & fillPhaseCenter()
casacore::Vector< casacore::Int > & fillAnt2()
casacore::Matrix< CStokesVector > & visibility()
void attachToVisIterAsync(ROVisibilityIterator &iter)
A Measure: instant in time.
Definition: MEpoch.h:104
virtual casacore::Int numberCoh() const
casacore::Bool newFieldId() const
casacore::Vector< casacore::Double > & time()
casacore::Vector< casacore::Int > & channel()
void copyCache(const VisBuffer &other, casacore::Bool force)
virtual const casacore::ROMSColumns & msColumns() const
Access the current casacore::ROMSColumns object via VisIter.
casacore::Vector< casacore::Float > & sigma()
ABSTRACT CLASSES Deliberately vague to be general enough to allow for many different types of data
Definition: PlotData.h:48
virtual casacore::Bool newMS() const
checked if the ms has changed since the last chunk processed
casacore::Matrix< casacore::Double > & filluvwMat()
void phaseCenterShift(casacore::Double dx, casacore::Double dy)
Rotate visibility phase for phase center offsets.
void formStokes()
Form casacore::Stokes parameters from correlations (these are preliminary versions) ...
casacore::Vector< casacore::Double > & fillTime()
casacore::Vector< casacore::Double > & exposure()
casacore::Vector< casacore::Int > & antenna1()
virtual casacore::Int numberAnt() const
casacore::Vector< casacore::Int > & corrType()
casacore::Vector< casacore::Int > & fillChannel()
casacore::Matrix&lt;casacore::Int&gt;&amp; fillChanAveBounds();
virtual casacore::Vector< casacore::uInt > & rowIds()
Return the row Ids from the original ms.
casacore::Vector< casacore::Bool > & flagRow()
virtual void setModelVisCube(casacore::Complex c)
casacore::Matrix< casacore::Float > & fillSigmaMat()
virtual casacore::Float parang0(casacore::Double time) const
NOMINAL parallactic angle (feed p.a.
casacore::Vector< casacore::Int > & fillScan()
casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > & CJones()
casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > & fillCjones()
casacore::Vector< casacore::Double > & azel0Vec(casacore::Double time, casacore::Vector< casacore::Double > &azelVec) const
double Double
Definition: aipstype.h:55
casacore::Matrix< casacore::Bool > & fillFlag()
A class to provide easy read-only access to MeasurementSet columns.
Definition: MSColumns.h:111
casacore::Matrix< CStokesVector > & modelVisibility()
casacore::Bool timeRange(casacore::MEpoch &rTime, casacore::MVEpoch &rTimeEP, casacore::MVEpoch &rInterval) const
casacore::Time range
casacore::Vector< casacore::Float > & fillWeight()
casacore::Vector< casacore::Float > & fillSigma()
casacore::Vector< casacore::Int > & fillAnt1()
+----------------------------------------------—+ | Cache Declarations (fillers, statuses and data) |...
casacore::Int & fillnRow()
virtual casacore::Int &amp; fillnCat();
void channelAve(const casacore::Matrix< casacore::Int > &chanavebounds)
Average channel axis according to chanavebounds, for whichever of DATA, MODEL_DATA, CORRECTED_DATA, FLOAT_DATA, FLAG, and WEIGHT_SPECTRUM are present.
casacore::Matrix< CStokesVector > & correctedVisibility()
casacore::Int & fillnCorr()
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::Int arrayId() const
void setAllCacheStatuses(bool status)
VisBufferAsyncWrapper()
Create empty VisBuffer you can assign to or attach.
casacore::Vector< casacore::Int > & antenna2()
virtual VisBufferAsyncWrapper & operator=(const VisBufferAsyncWrapper &vb)
Assignment, loses synchronization with iterator: only use buffer for current iteration (or reattach) ...
virtual casacore::Vector< casacore::MDirection > & fillDirection1()
virtual casacore::Int & nCorr()
Access functions.
virtual void setVisCube(casacore::Complex c)
Set the visibility to a constant, note that this only changes the buffer, no values are written back ...
virtual VisBufferAsyncWrapper & assign(const VisBuffer &vb, casacore::Bool copy=true)
Assignment, optionally without copying the data across; with copy=true this is identical to normal as...
casacore::Int & fillnChannel()
casacore::Matrix&lt;casacore::Float&gt;&amp; fillImagingWeight(); casacore::Vector&lt;casacore::Double&gt;&amp; fillLSRFr...
float Float
Definition: aipstype.h:54
casacore::Vector< casacore::Float > & feed2_pa()
VisBuffers encapulsate one chunk of visibility data for processing.
casacore::Vector< casacore::Int > antIdRange() const
Antenna id.
casacore::Vector< casacore::Float > & fillFeed2_pa()
virtual void setCorrectedVisCube(casacore::Complex c)
casacore::Vector< casacore::Double > & timeInterval()
casacore::Vector< casacore::Int > & fillFeed1()
casacore::Cube< casacore::Complex > & correctedVisCube()
casacore::Cube< casacore::Bool > & flagCube()
Return flag for each polarization, channel and row.
casacore::Int scan0()
scalar version for convenience, when scan known constant for entire iteration/buffer.
colDef
Enumerate all relevant data fields (columns and keywords)
Definition: MSCalEnums.h:92
casacore::Cube< casacore::Float > & fillWeightSpectrum()
A class for high precision time.
Definition: MVEpoch.h:90
casacore::Matrix< casacore::Bool > & flag()
Return flag for each channel &amp; row.
const VisImagingWeight & getImagingWeightGenerator() const
casacore::Vector< casacore::Int > vecIntRange(const MSCalEnums::colDef &calEnum) const
Utility functions to provide coordinate or column ranges of the data in the VisBuffer.
casacore::Cube< casacore::Complex > & fillVisCube(VisibilityIterator::DataColumn whichOne)
casacore::Vector< casacore::Double > & fillTimeCentroid()
casacore::Vector< casacore::RigidVector< casacore::Double, 3 > > & filluvw()
virtual casacore::Bool checkMSId()
casacore::Vector< casacore::Int > & scan()
ROVisibilityIterator * getVisibilityIterator() const
casacore::Cube< casacore::Bool > & fillFlagCube()
casacore::Vector< casacore::Float > & fillFeed1_pa()
casacore::Vector< casacore::Double > & fillExposure()
casacore::Vector< casacore::Float > & weight()
Returns the weights for each row averaged over the parallel hand correlations.
casacore::Vector< casacore::Double > & timeCentroid()
const Double c
Fundamental physical constants (SI units):
VisBufferAsyncWrapper & operator-=(const VisBuffer &vb)
subtraction: return the difference of the visibilities, flags of this and other are or-ed...
casacore::Vector< casacore::Int > & feed1()
casacore::Vector< casacore::Int > & fillCorrType()
casacore::Int & fillSpW()
casacore::Cube< casacore::Float > & weightCube()
virtual casacore::Matrix&lt;casacore::Float&gt;&amp; imagingWeight() { return imagingWeightOK_p ...
casacore::Vector< casacore::Int > & fillObservationId()
casacore::Vector< casacore::RigidVector< casacore::Double, 3 > > & uvw()
virtual casacore::Int msId() const
Return the actual msid, useful if using multiple ms to monitor which ms in the list is being dealt wi...
virtual casacore::Int dataDescriptionId() const
virtual casacore::Vector< casacore::MDirection > azel(casacore::Double time) const
casacore::Vector< casacore::Int > & fillFeed2()
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
virtual ~VisBufferAsyncWrapper()
Destructor (detaches from VisIter)
virtual void allSelectedSpectralWindows(casacore::Vector< casacore::Int > &spws, casacore::Vector< casacore::Int > &nvischan)
Get all selected spectral windows not just the one in the actual buffer.
virtual void lsrFrequency(const casacore::Int &spw, casacore::Vector< casacore::Double > &freq, casacore::Bool &convert) const
casacore::Vector&lt;casacore::Double&gt;&amp; lsrFrequency(); const casacore::Vector&lt;casacore::Double&gt;&amp; lsrFreq...
VisBufferAsync * releaseVba()
casacore::Vector< casacore::MDirection > & direction2()
ROVisibilityIterator iterates through one or more readonly MeasurementSets.
casacore::Cube< casacore::Float > & fillFloatDataCube()
casacore::Vector< casacore::Int > unique(const casacore::Vector< casacore::Int > &indices) const
Filter index arrays for unique elements.
casacore::MDirection & phaseCenter()
casacore::Vector< casacore::Double > & fillTimeInterval()
casacore::Vector< casacore::Int > & observationId()
Complex visibility matrix.
Definition: MSMainEnums.h:183
casacore::Cube< casacore::Complex > & dataCube(const casacore::MS::PredefinedColumns whichcol=casacore::MS::DATA)
Return visCube(), modelVisCube(), or correctedVisCube(), according to whichcol.
void refModelVis(const casacore::Matrix< CStokesVector > &mvis)
Reference external model visibilities.
casacore::Matrix< CStokesVector > & fillVis(VisibilityIterator::DataColumn whichOne)
void removeScratchCols()
Remove scratch cols data from vb.
const casacore::Matrix< casacore::Float > & imagingWeight() const
casacore::Int & nChannel()
casacore::Int & fillArrayId()
casacore::Array< casacore::Bool > & fillFlagCategory()
Defines nreal time structures used by the VLA table filler.
Definition: nreal.h:100
casacore::Int & nRow()
virtual casacore::Int &amp; nCat() { return nCatOK_p ? nCat_p : fillnCat(); } virtual casacore::Int nCat(...
virtual void updateCoordInfo(const VisBuffer *vb=NULL)
Update coordinate info - useful for copied VisBuffers that need to retain some state for later refere...