LCOV - code coverage report
Current view: top level - msvis/MSVis - VisibilityIterator2.cc (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 182 316 57.6 %
Date: 2024-12-11 20:54:31 Functions: 55 100 55.0 %

          Line data    Source code
       1             : /*
       2             :  * VisibilityIterator2.cc
       3             :  *
       4             :  *  Created on: Jun 4, 2012
       5             :  *      Author: jjacobs
       6             :  */
       7             : 
       8             : #include <msvis/MSVis/VisibilityIterator2.h>
       9             : 
      10             : #include <casacore/casa/Arrays/Cube.h>
      11             : #include <casacore/casa/Arrays/Matrix.h>
      12             : #include <casacore/casa/Arrays/Slicer.h>
      13             : #include <casacore/casa/BasicSL/String.h>
      14             : #include <casacore/casa/Quanta/MVDoppler.h>
      15             : #include <casacore/casa/aips.h>
      16             : #include <casacore/casa/System/AipsrcValue.h>
      17             : #include <casacore/measures/Measures/MCDoppler.h>
      18             : #include <casacore/measures/Measures/MDoppler.h>
      19             : #include <casacore/measures/Measures/MeasConvert.h>
      20             : #include <casacore/measures/Measures/Stokes.h>
      21             : #include <casacore/ms/MSOper/MSDerivedValues.h>
      22             : #include <casacore/ms/MeasurementSets/MSIter.h>
      23             : #include <casacore/ms/MeasurementSets/MeasurementSet.h>
      24             : #include <casacore/scimath/Mathematics/RigidVector.h>
      25             : #include <casacore/scimath/Mathematics/SquareMatrix.h>
      26             : #include <stdcasa/UtilJ.h>
      27             : #include <msvis/MSVis/AveragingTvi2.h>
      28             : #include <msvis/MSVis/ViFrequencySelection.h>
      29             : #include <msvis/MSVis/StokesVector.h>
      30             : #include <msvis/MSVis/VisBuffer2.h>
      31             : #include <msvis/MSVis/VisBufferComponents2.h>
      32             : #include <msvis/MSVis/VisImagingWeight.h>
      33             : #include <msvis/MSVis/VisibilityIteratorImpl2.h>
      34             : #include <msvis/MSVis/VisibilityIteratorImplAsync2.h>
      35             : #include <casacore/tables/Tables/ArrayColumn.h>
      36             : #include <casacore/tables/Tables/ScalarColumn.h>
      37             : 
      38             : #include <cstdarg>
      39             : #include <map>
      40             : #include <set>
      41             : #include <utility>
      42             : #include <vector>
      43             : 
      44             : using namespace std;
      45             : 
      46             : #define CheckImplementationPointer() Assert (impl_p != NULL);
      47             : 
      48             : using namespace casacore;
      49             : namespace casa {
      50             : 
      51             : namespace vi {
      52             : 
      53       10692 : SortColumns::SortColumns (const Block<Int> & columnIds, Bool addDefaultColumns)
      54       10692 : : addDefaultColumns_p (addDefaultColumns),
      55       10692 :   columnIds_p (columnIds),
      56       10692 :   usingDefaultSortingFunctions_p (true)
      57             : {
      58       29952 :     for (auto colId : columnIds)
      59       19260 :         sortingDefinition_p.push_back(
      60       38520 :             std::make_pair(MS::columnName(casacore::MS::PredefinedColumns(colId)), nullptr));
      61       10692 : }
      62             : 
      63        5544 : SortColumns::SortColumns (Bool usingDefaultSortingFunctions)
      64        5544 : : usingDefaultSortingFunctions_p (usingDefaultSortingFunctions)
      65             : {
      66        5544 : }
      67             : 
      68           0 : SortColumns::SortColumns (const std::vector<std::pair<casacore::MS::PredefinedColumns, std::shared_ptr<casacore::BaseCompare>>> sortingDefinition)
      69           0 : : addDefaultColumns_p (false),
      70           0 :   usingDefaultSortingFunctions_p (false)
      71             : {
      72           0 :     for (auto pair : sortingDefinition)
      73           0 :         sortingDefinition_p.push_back(
      74           0 :             std::make_pair(MS::columnName(pair.first), pair.second));
      75           0 : }
      76             : 
      77           0 : SortColumns::SortColumns (const std::vector<std::pair<casacore::String, std::shared_ptr<casacore::BaseCompare>>> sortingDefinition)
      78           0 : : addDefaultColumns_p (false),
      79           0 :   sortingDefinition_p(sortingDefinition),
      80           0 :   usingDefaultSortingFunctions_p (false)
      81             : {
      82           0 : }
      83             : 
      84        5544 : void SortColumns::addSortingColumn(casacore::MS::PredefinedColumns colId,
      85             :     std::shared_ptr<casacore::BaseCompare> sortingFunction)
      86             : {
      87        5544 :     if (usingDefaultSortingFunctions_p)
      88           0 :         throw AipsError("SortColumns invalid construction. "
      89           0 :                         "Cannot add generic sorting functions.");
      90        5544 :     sortingDefinition_p.push_back(
      91       11088 :         std::make_pair(MS::columnName(colId), sortingFunction));
      92        5544 :     usingDefaultSortingFunctions_p = false;
      93        5544 : }
      94             : 
      95           0 : void SortColumns::addSortingColumn(casacore::String colName,
      96             :     std::shared_ptr<casacore::BaseCompare> sortingFunction)
      97             : {
      98           0 :     if (usingDefaultSortingFunctions_p)
      99           0 :         throw AipsError("SortColumns invalid construction. "
     100           0 :                         "Cannot add generic sorting functions.");
     101           0 :     sortingDefinition_p.push_back(
     102           0 :         std::make_pair(colName, sortingFunction));
     103           0 :     usingDefaultSortingFunctions_p = false;
     104           0 : }
     105             : 
     106             : Bool
     107       11088 : SortColumns::shouldAddDefaultColumns () const
     108             : {
     109       11088 :     return addDefaultColumns_p;
     110             : }
     111             : 
     112             : bool
     113        5544 : SortColumns::usingDefaultSortingFunctions () const
     114             : {
     115        5544 :     return usingDefaultSortingFunctions_p;
     116             : }
     117             : 
     118             : const Block<Int> &
     119        7858 : SortColumns::getColumnIds () const
     120             : {
     121        7858 :     return columnIds_p;
     122             : }
     123             : 
     124             : const std::vector<std::pair<casacore::String, std::shared_ptr<casacore::BaseCompare>>> &
     125      289465 : SortColumns::sortingDefinition() const
     126             : {
     127      289465 :     return sortingDefinition_p;
     128             : }
     129             : 
     130             : CountedPtr <WeightScaling>
     131         202 : WeightScaling::generateUnityWeightScaling ()
     132             : {
     133         202 :     return generateWeightScaling (WeightScaling::unity);
     134             : }
     135             : 
     136             : CountedPtr <WeightScaling>
     137           0 : WeightScaling::generateIdentityWeightScaling ()
     138             : {
     139           0 :     return  generateWeightScaling (WeightScaling::identity);
     140             : }
     141             : 
     142             : CountedPtr <WeightScaling>
     143           0 : WeightScaling::generateSquareWeightScaling ()
     144             : {
     145           0 :     return  generateWeightScaling (WeightScaling::square);
     146             : }
     147             : 
     148           0 : Float WeightScaling::unity (Float) { return 1.0;}
     149           0 : Float WeightScaling::identity (Float x) { return x;}
     150           0 : Float WeightScaling::square (Float x) { return x * x;}
     151             : 
     152           0 : VisibilityIterator2::VisibilityIterator2()
     153           0 : : impl_p (0)
     154             : {
     155           0 : }
     156             : 
     157        2069 : VisibilityIterator2::VisibilityIterator2(const MeasurementSet& ms,
     158             :                                          const SortColumns & sortColumns,
     159             :                                          Bool isWritable,
     160             :                                          const VisBufferComponents2 * prefetchColumns,
     161        2069 :                                          Double timeInterval)
     162             : {
     163        2069 :     Block<const MeasurementSet *> mss (1, & ms);
     164        2069 :     construct (prefetchColumns, mss, sortColumns,
     165             :                timeInterval, isWritable);
     166        2069 : }
     167             : 
     168        1800 : VisibilityIterator2::VisibilityIterator2 (const Block<const MeasurementSet *>& mss,
     169             :                                           const SortColumns & sortColumns,
     170             :                                           Bool isWritable,
     171             :                                           const VisBufferComponents2 * prefetchColumns,
     172        1800 :                                           Double timeInterval)
     173             : {
     174        1800 :     construct (prefetchColumns, mss, sortColumns, timeInterval, isWritable);
     175        1800 : }
     176             : 
     177         259 : VisibilityIterator2::VisibilityIterator2 (const ViFactory & factory)
     178         259 : : impl_p (0)
     179             : {
     180         259 :     ViImplementation2 * newImpl = factory.createVi ();
     181             : 
     182         259 :     impl_p = newImpl;
     183         259 : }
     184             : 
     185        1416 : VisibilityIterator2::VisibilityIterator2 (const Vector<ViiLayerFactory*> & factories)
     186        1416 : : impl_p (0)
     187             : {
     188             : 
     189        1416 :     Int nfactory=factories.nelements();
     190             : 
     191        1416 :     if(factories(nfactory-1) == nullptr)
     192           0 :         throw(AipsError("ViiLayerFactory in factories is null"));
     193             : 
     194        1427 :     ViImplementation2 * newImpl = factories(nfactory-1)->createViImpl2(factories(Slice(0,nfactory-1,1)));
     195             : 
     196        1405 :     impl_p = newImpl;
     197        1405 : }
     198             : 
     199             : 
     200             : void
     201        3869 : VisibilityIterator2::construct (const VisBufferComponents2 * prefetchColumns,
     202             :                                 const Block<const MeasurementSet *>& mss,
     203             :                                 const SortColumns & sortColumns,
     204             :                                 Double timeInterval,
     205             :                                 Bool writable)
     206             : {
     207             : 
     208             :     // Factory didn't create the read implementation so decide whether to create a
     209             :     // synchronous or asynchronous read implementation.
     210             : 
     211        3869 :     Bool createAsAsynchronous = prefetchColumns != NULL && isAsynchronousIoEnabled ();
     212             : 
     213        3869 :     if (createAsAsynchronous){
     214             :         //            impl_p = new ViImplAsync2 (mss, * prefetchColumns, sortColumns,
     215             :         //                                               addDefaultSortCols, timeInterval, writable);
     216             :     }
     217             :     else{
     218        3869 :         impl_p = new VisibilityIteratorImpl2 (mss, sortColumns, timeInterval, writable);
     219             :     }
     220        3869 : }
     221             : 
     222       10863 : VisibilityIterator2::~VisibilityIterator2 ()
     223             : {
     224        5533 :         delete impl_p;
     225       10863 : }
     226             : 
     227             : String
     228          44 : VisibilityIterator2::ViiType() const
     229             : {
     230          44 :   return impl_p->ViiType ();
     231             : }
     232             : 
     233             : 
     234             : void
     235     2389693 : VisibilityIterator2::next()
     236             : {
     237     2389693 :     CheckImplementationPointer ();
     238     2389693 :     impl_p->next ();
     239     2389693 : }
     240             : 
     241             : 
     242             : const MeasurementSet&
     243       29587 : VisibilityIterator2::ms () const
     244             : {
     245       29587 :     CheckImplementationPointer ();
     246       29587 :     return impl_p->ms ();
     247             : }
     248             : 
     249             : Bool
     250         402 : VisibilityIterator2::existsColumn (VisBufferComponent2 id) const
     251             : {
     252         402 :     CheckImplementationPointer ();
     253             : 
     254         402 :     return impl_p->existsColumn (id);
     255             : }
     256             : 
     257             : Bool
     258         102 : VisibilityIterator2::weightSpectrumExists () const
     259             : {
     260         102 :     CheckImplementationPointer ();
     261         102 :     return impl_p->weightSpectrumExists();
     262             : }
     263             : 
     264             : ViImplementation2 *
     265       23703 : VisibilityIterator2::getImpl () const
     266             : {
     267       23703 :     return impl_p;
     268             : }
     269             : 
     270             : Int
     271           0 : VisibilityIterator2::getReportingFrameOfReference () const
     272             : {
     273           0 :     return impl_p->getReportingFrameOfReference ();
     274             : }
     275             : 
     276             : void
     277           0 : VisibilityIterator2::setReportingFrameOfReference (Int frame)
     278             : {
     279           0 :     impl_p->setReportingFrameOfReference (frame);
     280           0 : }
     281             : 
     282             : 
     283             : Subchunk
     284           0 : VisibilityIterator2::getSubchunkId () const
     285             : {
     286           0 :     CheckImplementationPointer ();
     287           0 :     return impl_p->getSubchunkId ();
     288             : }
     289             : 
     290             : VisBuffer2 *
     291     1725699 : VisibilityIterator2::getVisBuffer ()
     292             : {
     293     1725699 :     CheckImplementationPointer ();
     294     1725699 :     return impl_p->getVisBuffer(this);
     295             : }
     296             : 
     297             : Bool
     298          34 : VisibilityIterator2::isAsynchronous () const
     299             : {
     300             : //    Bool isAsync = impl_p != NULL && dynamic_cast<const ViImplAsync2 *> (impl_p) != NULL;
     301             : //
     302             : //    return isAsync;
     303             : 
     304          34 :     return false; // for now
     305             : }
     306             : 
     307             : 
     308             : Bool
     309         197 : VisibilityIterator2::isAsynchronousIoEnabled()
     310             : {
     311             :     // Determines whether asynchronous I/O is enabled by looking for the
     312             :     // expected AipsRc value.  If not found then async i/o is disabled.
     313             : 
     314             :     Bool isEnabled;
     315         197 :     AipsrcValue<Bool>::find (isEnabled, getAipsRcBase () + "async.enabled", false);
     316             : 
     317         197 :     return isEnabled;
     318             : }
     319             : 
     320             : Bool
     321     2807904 : VisibilityIterator2::more () const
     322             : {
     323     2807904 :     CheckImplementationPointer ();
     324     2807904 :     return impl_p->more ();
     325             : }
     326             : 
     327             : Bool
     328      144728 : VisibilityIterator2::moreChunks () const
     329             : {
     330      144728 :     CheckImplementationPointer ();
     331      144728 :     return impl_p->moreChunks ();
     332             : }
     333             : 
     334             : 
     335             : void
     336       93992 : VisibilityIterator2::nextChunk ()
     337             : {
     338       93992 :     CheckImplementationPointer ();
     339       93992 :     impl_p->nextChunk ();
     340       93992 : }
     341             : 
     342             : void
     343        1107 : VisibilityIterator2::result(casacore::Record& res) const
     344             : {
     345        1107 :     impl_p->result(res);
     346        1107 : }
     347             : 
     348             : // Report Name of slowest column that changes at end of current iteration
     349       20259 : String VisibilityIterator2::keyChange() const
     350             : {
     351       20259 :   return impl_p->keyChange();
     352             : }
     353             : 
     354             : 
     355             : 
     356             : 
     357             : 
     358             : Int
     359           0 : VisibilityIterator2::nDataDescriptionIds () const
     360             : {
     361           0 :     CheckImplementationPointer ();
     362           0 :     return impl_p->nDataDescriptionIds ();
     363             : }
     364             : //
     365             : Int
     366         165 : VisibilityIterator2::nPolarizationIds () const
     367             : {
     368         165 :     CheckImplementationPointer ();
     369         165 :     return impl_p->nPolarizationIds ();
     370             : }
     371             : //
     372             : Int
     373          83 : VisibilityIterator2::nSpectralWindows () const
     374             : {
     375          83 :     CheckImplementationPointer ();
     376          83 :     return impl_p->nSpectralWindows ();
     377             : }
     378             : 
     379             : void
     380       95470 : VisibilityIterator2::origin ()
     381             : {
     382       95470 :     CheckImplementationPointer ();
     383       95470 :     impl_p->origin ();
     384       95470 : }
     385             : 
     386             : void
     387       17581 : VisibilityIterator2::originChunks ()
     388             : {
     389       17581 :     CheckImplementationPointer ();
     390       17581 :     originChunks (false);
     391       17580 : }
     392             : 
     393             : void
     394       17581 : VisibilityIterator2::originChunks (Bool forceRewind)
     395             : {
     396       17581 :     CheckImplementationPointer ();
     397       17581 :     impl_p->originChunks (forceRewind);
     398       17580 : }
     399             : 
     400             : void
     401         827 : VisibilityIterator2::setRowBlocking (rownr_t nRows) // for use by Async I/O *ONLY
     402             : {
     403         827 :     CheckImplementationPointer ();
     404         827 :     impl_p->setRowBlocking (nRows);
     405         827 : }
     406             : 
     407             : void
     408        1056 : VisibilityIterator2::slurp () const
     409             : {
     410        1056 :     CheckImplementationPointer ();
     411        1056 :     impl_p->slurp ();
     412        1056 : }
     413             : 
     414             : rownr_t
     415       22578 : VisibilityIterator2::nRowsInChunk () const
     416             : {
     417       22578 :     CheckImplementationPointer ();
     418       22578 :     return impl_p->nRowsInChunk ();
     419             : }
     420             : 
     421             : void
     422        1531 : VisibilityIterator2::setFrequencySelection (const FrequencySelection & selection)
     423             : {
     424        1531 :     FrequencySelections selections;
     425        1531 :     selections.add (selection);
     426        1531 :     setFrequencySelection (selections);
     427        1531 : }
     428             : 
     429             : void
     430        3414 : VisibilityIterator2::setFrequencySelection (const FrequencySelections & selections)
     431             : {
     432        3414 :     ThrowIf (selections.size () != impl_p->getNMs (),
     433             :              String::format ("Frequency selection size, %d, does not VisibilityIterator # of MSs, %d.",
     434             :                      impl_p->getNMs (), selections.size()));
     435             : 
     436        3414 :     CheckImplementationPointer ();
     437        3414 :     impl_p->setFrequencySelections (selections);
     438        3414 : }
     439             : 
     440             : 
     441             : 
     442             : const vi::SubtableColumns &
     443           0 : VisibilityIterator2::subtableColumns () const
     444             : {
     445           0 :     CheckImplementationPointer ();
     446           0 :     return impl_p->subtableColumns ();
     447             : }
     448             : 
     449             : void
     450        3377 : VisibilityIterator2::useImagingWeight (const VisImagingWeight & viw)
     451             : {
     452        3377 :     CheckImplementationPointer ();
     453        3377 :     impl_p->useImagingWeight(viw);
     454        3377 : }
     455             : 
     456             : const VisImagingWeight &
     457          29 : VisibilityIterator2::getImagingWeightGenerator () const
     458             : {
     459          29 :     CheckImplementationPointer ();
     460          29 :     return impl_p->getImagingWeightGenerator ();
     461             : }
     462             : 
     463             : void
     464      406388 : VisibilityIterator2::writeFlag (const Cube<Bool>& flag)
     465             : {
     466      406388 :     CheckImplementationPointer ();
     467      406388 :     impl_p->writeFlag (flag);
     468      406388 : }
     469             : 
     470             : void
     471      382165 : VisibilityIterator2::writeFlagRow (const Vector<Bool>& rowflags)
     472             : {
     473      382165 :     CheckImplementationPointer ();
     474      382165 :     impl_p->writeFlagRow (rowflags);
     475      382165 : }
     476             : 
     477             : void
     478           0 : VisibilityIterator2::writeWeightSpectrum (const Cube<Float>& wtsp)
     479             : {
     480           0 :     CheckImplementationPointer ();
     481           0 :     impl_p->writeWeightSpectrum (wtsp);
     482           0 : }
     483             : 
     484             : void
     485       14536 : VisibilityIterator2::writeVisModel (const Cube<Complex>& modelCube)
     486             : {
     487       14536 :     CheckImplementationPointer ();
     488       14536 :     impl_p->writeVisModel (modelCube);
     489       14536 : }
     490             : 
     491             : void
     492           0 : VisibilityIterator2::writeVisCorrected (const Cube<Complex>& CorrectedCube)
     493             : {
     494           0 :     CheckImplementationPointer ();
     495           0 :     impl_p->writeVisCorrected (CorrectedCube);
     496           0 : }
     497             : 
     498             : void
     499          17 : VisibilityIterator2::writeModel(const RecordInterface& record,
     500             :                                 bool isComponentList,
     501             :                                 bool addToExistingModel)
     502             : {
     503          17 :     CheckImplementationPointer ();
     504          17 :     impl_p->writeModel (record, isComponentList, addToExistingModel);
     505          17 : }
     506             : 
     507             : void
     508           0 : VisibilityIterator2::writeVisObserved (const Cube<Complex>& ObservedCube)
     509             : {
     510           0 :     CheckImplementationPointer ();
     511           0 :     impl_p->writeVisObserved (ObservedCube);
     512           0 : }
     513             : 
     514             : //
     515             : void
     516           0 : VisibilityIterator2::initWeightSpectrum (const Cube<Float>& wtsp)
     517             : {
     518           0 :     CheckImplementationPointer ();
     519           0 :     impl_p->initWeightSpectrum (wtsp);
     520           0 : }
     521             : 
     522             : void
     523         202 : VisibilityIterator2::setWeightScaling (CountedPtr<WeightScaling> weightScaling)
     524             : {
     525         202 :   CheckImplementationPointer ();
     526             : 
     527         202 :   impl_p->setWeightScaling (weightScaling);
     528         202 : }
     529             : 
     530             : Bool
     531           0 : VisibilityIterator2::hasWeightScaling () const
     532             : {
     533           0 :   CheckImplementationPointer ();
     534             : 
     535           0 :   return impl_p->hasWeightScaling ();
     536             : }
     537             : 
     538           0 : const casacore::MSAntennaColumns& VisibilityIterator2::antennaSubtablecols() const
     539             : {
     540           0 :   CheckImplementationPointer ();
     541             : 
     542           0 :   return impl_p->antennaSubtablecols ();
     543             : }
     544             : 
     545           0 : const casacore::MSDataDescColumns& VisibilityIterator2::dataDescriptionSubtablecols() const
     546             : {
     547           0 :   CheckImplementationPointer ();
     548             : 
     549           0 :   return impl_p->dataDescriptionSubtablecols ();
     550             : }
     551             : 
     552           0 : const casacore::MSFeedColumns& VisibilityIterator2::feedSubtablecols() const
     553             : {
     554           0 :   CheckImplementationPointer ();
     555             : 
     556           0 :   return impl_p->feedSubtablecols ();
     557             : }
     558             : 
     559           0 : const casacore::MSFieldColumns& VisibilityIterator2::fieldSubtablecols() const
     560             : {
     561           0 :   CheckImplementationPointer ();
     562             : 
     563           0 :   return impl_p->fieldSubtablecols ();
     564             : }
     565             : 
     566           0 : const casacore::MSFlagCmdColumns& VisibilityIterator2::flagCmdSubtablecols() const
     567             : {
     568           0 :   CheckImplementationPointer ();
     569             : 
     570           0 :   return impl_p->flagCmdSubtablecols ();
     571             : }
     572             : 
     573           0 : const casacore::MSHistoryColumns& VisibilityIterator2::historySubtablecols() const
     574             : {
     575           0 :   CheckImplementationPointer ();
     576             : 
     577           0 :   return impl_p->historySubtablecols ();
     578             : }
     579             : 
     580           0 : const casacore::MSObservationColumns& VisibilityIterator2::observationSubtablecols() const
     581             : {
     582           0 :   CheckImplementationPointer ();
     583             : 
     584           0 :   return impl_p->observationSubtablecols ();
     585             : }
     586             : 
     587           0 : const casacore::MSPointingColumns& VisibilityIterator2::pointingSubtablecols() const
     588             : {
     589           0 :   CheckImplementationPointer ();
     590             : 
     591           0 :   return impl_p->pointingSubtablecols ();
     592             : }
     593             : 
     594           0 : const casacore::MSPolarizationColumns& VisibilityIterator2::polarizationSubtablecols() const
     595             : {
     596           0 :   CheckImplementationPointer ();
     597             : 
     598           0 :   return impl_p->polarizationSubtablecols ();
     599             : }
     600             : 
     601           0 : const casacore::MSProcessorColumns& VisibilityIterator2::processorSubtablecols() const
     602             : {
     603           0 :   CheckImplementationPointer ();
     604             : 
     605           0 :   return impl_p->processorSubtablecols ();
     606             : }
     607             : 
     608         168 : const casacore::MSSpWindowColumns& VisibilityIterator2::spectralWindowSubtablecols() const
     609             : {
     610         168 :   CheckImplementationPointer ();
     611             : 
     612         168 :   return impl_p->spectralWindowSubtablecols ();
     613             : }
     614             : 
     615           0 : const casacore::MSStateColumns& VisibilityIterator2::stateSubtablecols() const
     616             : {
     617           0 :   CheckImplementationPointer ();
     618             : 
     619           0 :   return impl_p->stateSubtablecols ();
     620             : }
     621             : 
     622           0 : const casacore::MSDopplerColumns& VisibilityIterator2::dopplerSubtablecols() const
     623             : {
     624           0 :   CheckImplementationPointer ();
     625             : 
     626           0 :   return impl_p->dopplerSubtablecols ();
     627             : }
     628             : 
     629           0 : const casacore::MSFreqOffsetColumns& VisibilityIterator2::freqOffsetSubtablecols() const
     630             : {
     631           0 :   CheckImplementationPointer ();
     632             : 
     633           0 :   return impl_p->freqOffsetSubtablecols ();
     634             : }
     635             : 
     636           0 : const casacore::MSSourceColumns& VisibilityIterator2::sourceSubtablecols() const
     637             : {
     638           0 :   CheckImplementationPointer ();
     639             : 
     640           0 :   return impl_p->sourceSubtablecols ();
     641             : }
     642             : 
     643           0 : const casacore::MSSysCalColumns& VisibilityIterator2::sysCalSubtablecols() const
     644             : {
     645           0 :   CheckImplementationPointer ();
     646             : 
     647           0 :   return impl_p->sysCalSubtablecols ();
     648             : }
     649             : 
     650           0 : const casacore::MSWeatherColumns& VisibilityIterator2::weatherSubtablecols() const
     651             : {
     652           0 :   CheckImplementationPointer ();
     653             : 
     654           0 :   return impl_p->weatherSubtablecols ();
     655             : }
     656             : 
     657        5544 : SubtableColumns::SubtableColumns (CountedPtr <MSIter> msIter)
     658        5544 : : msIter_p (msIter)
     659        5544 : {}
     660             : 
     661             : const MSAntennaColumns&
     662      206350 : SubtableColumns::antenna() const
     663             : {
     664      206350 :     return msIter_p->msColumns().antenna();
     665             : }
     666             : 
     667             : const MSDataDescColumns&
     668   783690097 : SubtableColumns::dataDescription() const
     669             : {
     670   783690097 :     return msIter_p->msColumns().dataDescription();
     671             : }
     672             : 
     673             : const MSFeedColumns&
     674           0 : SubtableColumns::feed() const
     675             : {
     676           0 :     return msIter_p->msColumns().feed();
     677             : }
     678             : 
     679             : const MSFieldColumns&
     680     1584869 : SubtableColumns::field() const
     681             : {
     682     1584869 :     return msIter_p->msColumns().field();
     683             : }
     684             : 
     685             : const MSFlagCmdColumns&
     686           0 : SubtableColumns::flagCmd() const
     687             : {
     688           0 :     return msIter_p->msColumns().flagCmd();
     689             : }
     690             : 
     691             : const MSHistoryColumns&
     692           0 : SubtableColumns::history() const
     693             : {
     694           0 :     return msIter_p->msColumns().history();
     695             : }
     696             : 
     697             : const MSObservationColumns&
     698      795237 : SubtableColumns::observation() const
     699             : {
     700      795237 :     return msIter_p->msColumns().observation();
     701             : }
     702             : 
     703             : const MSPointingColumns&
     704      191975 : SubtableColumns::pointing() const
     705             : {
     706      191975 :     return msIter_p->msColumns().pointing();
     707             : }
     708             : 
     709             : const MSPolarizationColumns&
     710     8795688 : SubtableColumns::polarization() const
     711             : {
     712             : 
     713     8795688 :     return msIter_p->msColumns().polarization();
     714             : }
     715             : 
     716             : const MSProcessorColumns&
     717           0 : SubtableColumns::processor() const
     718             : {
     719           0 :     return msIter_p->msColumns().processor();
     720             : }
     721             : 
     722             : const MSSpWindowColumns&
     723     4482337 : SubtableColumns::spectralWindow() const
     724             : {
     725             : 
     726     4482337 :     return msIter_p->msColumns().spectralWindow();
     727             : }
     728             : 
     729             : const MSStateColumns&
     730           0 : SubtableColumns::state() const
     731             : {
     732           0 :     return msIter_p->msColumns().state();
     733             : }
     734             : 
     735             : const MSDopplerColumns&
     736           0 : SubtableColumns::doppler() const
     737             : {
     738           0 :     return msIter_p->msColumns().doppler();
     739             : }
     740             : 
     741             : const MSFreqOffsetColumns&
     742           0 : SubtableColumns::freqOffset() const
     743             : {
     744           0 :     return msIter_p->msColumns().freqOffset();
     745             : }
     746             : 
     747             : const MSSourceColumns&
     748           0 : SubtableColumns::source() const
     749             : {
     750           0 :     return msIter_p->msColumns().source();
     751             : }
     752             : 
     753             : const MSSysCalColumns&
     754           0 : SubtableColumns::sysCal() const
     755             : {
     756           0 :     return msIter_p->msColumns().sysCal();
     757             : }
     758             : 
     759             : const MSWeatherColumns&
     760           0 : SubtableColumns::weather() const
     761             : {
     762           0 :     return msIter_p->msColumns().weather();
     763             : }
     764             : 
     765             : 
     766             : } // end namespace vi
     767             : 
     768             : 
     769             : using namespace casacore;
     770             : } // end namespace casa

Generated by: LCOV version 1.16