casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PlotMSCacheBase.h
Go to the documentation of this file.
1 //# PlotMSCacheBase.h: Generic Data cache for plotms.
2 //# Copyright (C) 2009
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: $
27 #ifndef PLOTMSCACHEBASE_H_
28 #define PLOTMSCACHEBASE_H_
29 
35 
38 
40 
41 #include <casa/aips.h>
42 #include <casa/Arrays.h>
43 #include <casa/Containers/Block.h>
45 
46 #include <QVector>
47 #include <map>
48 
49 namespace casa {
50 
51 //# Forward declarations.
52 class PlotMSApp;
53 class PlotMSPlot;
54 class PlotMSIndexer;
55 class ThreadCommunication;
56 class PlotMSAtm;
57 
58 
60 
61  // Friend class declarations.
62  friend class PlotMSIndexer;
63 
64  //TBD: friend class PlotMSData;
65 
66 public:
67 
68  // Varieties of cache
69  // TBD: move to PlotMSConstants?
70  enum Type {MS, CAL};
71 
72  static const unsigned int THREAD_SEGMENT;
73  static const PMS::Axis METADATA[];
74  static const unsigned int N_METADATA;
75 
76  static bool axisIsMetaData(PMS::Axis axis);
77 
78 
79  // Constructor which takes parent PlotMS.
80  PlotMSCacheBase(PlotMSApp* parent, PlotMSPlot* plot = nullptr);
81 
82  // Destructor
83  virtual ~PlotMSCacheBase();
84 
85  // Identify myself (MS or CAL)
86  virtual PlotMSCacheBase::Type cacheType() const = 0;
87 
88  // Access to pol names
89  virtual casacore::String polname(casacore::Int ipol)=0;
90 
91  // keep MS/CT filename (sets calType_)
92  virtual void setFilename(casacore::String filename) = 0;
93  casacore::String calType() const { return calType_; };
94  bool polnRatio() const { return polnRatio_; };
95 
96  // Meta axes info
97  int nmetadata() const {return N_METADATA;};
98  PMS::Axis metadata(int i) {return METADATA[i];};
99 
100  // ATM or TSKY axis; for adjusting plot ranges
101  inline bool hasOverlay() { return (plotmsAtm_ != nullptr); }
102  // IMAGESB axis; for axis labels/title (image curve axis not always loaded)
103  bool canShowImageCurve();
104 
105  // Reference an indexer; returns -1 if there is no indexer
106  // for the given dataIndex.
107  PlotMSIndexer& indexer( int dataIndex, casacore::uInt i) {
108  return (*indexer_[dataIndex][i]);
109  };
111  return *indexer0_;
112  };
113  void resizeIndexer( int size );
114  int getDataCount() const {
115  return currentX_.size();
116  }
117  casacore::Int nIter( int dataIndex ) const;
118 
119  PMS::Axis getIterAxis() const;
120 
121  // Report the number of chunks
122  casacore::Int nChunk() const { return nChunk_; };
123 
124  // Returns whether cache is filled
125  bool cacheReady() const { return dataLoaded_; }
126 
127  // Returns whether user canceled during loading chunks
128  bool wasCanceled() const { return userCanceled_; }
129 
130  // Report the data shapes
132 
133  // A chunk is good (T) if it contains data
134  // (when averaging, some chunks may have nrows=0)
135  inline casacore::Bool goodChunk(casacore::Int ichunk) {return goodChunk_(ichunk); };
136 
137  // Is there a reference value for the specified axis?
138  // TBD: actually make this axis-dep?
139  inline bool hasReferenceValue(PMS::Axis axis) { return (axis==PMS::TIME && cacheReady()); };
140  inline double referenceValue(PMS::Axis axis) { return (hasReferenceValue(axis) ? refTime() : 0.0); };
141 
142  // Report the reference time for this cache (in seconds)
143  inline casacore::Double refTime() const { return refTime_p; };
144 
145  // Frequency frame in original casacore::MS or requested by user
147 
148  // Returns which axes have been loaded into the cache, including metadata.
149  // Also includes the size (number of points) for each axis (which will
150  // eventually be used for a cache manager to let the user know the
151  // relative memory use of each axis).
152  std::vector<PMS::Axis> loadedAxes() const;
153 
154  // Returns true if RA/DEC axes data
155  // - for the given parameters - have been loaded
156  bool areRaDecAxesLoaded(const DirectionAxisParams &params) const;
157 
158  // Access to averaging state in the cache:
160 
161  // Access to transformations state in the cache
163 
164  // Loads the cache for the given axes and data
165  // columns. IMPORTANT: this method assumes that any currently loaded data is
166  // valid for the given VisIter; i.e., if the meta-information or either of
167  // the axes are already loaded, then they don't need to be reloaded. If this
168  // is not the case, then clear() should be called BEFORE append(). If a
169  // PlotMSCacheThreadHelper object is given, it will be used to report
170  // progress information.
171  virtual void load(const std::vector<PMS::Axis>& axes,
172  const std::vector<PMS::DataColumn>& data,
173  const casacore::String& filename,
174  const PlotMSSelection& selection,
175  const PlotMSAveraging& averaging,
177  const PlotMSCalibration& calibration,
178  /*PlotMSCacheThread**/ThreadCommunication* thread = NULL);
179 
180  // Clears the cache of all stored values. This should be called when the
181  // underlying MS/CalTable or selection is changed, thus invalidating stored data.
182  void clear();
183  void clearRanges();
184 
185  // Releases the given axes from the cache.
186  void release(const std::vector<PMS::Axis>& axes);
187 
188  // Set up indexing for the plot
189  bool isIndexerInitialized( PMS::Axis iteraxis, casacore::Bool globalXRange,
190  casacore::Bool globalYRange, int dataIndex ) const;
191  void setUpIndexer(PMS::Axis iteraxis=PMS::SCAN,
192  casacore::Bool globalXRange=false, casacore::Bool globalYRange=false,
193  const casacore::String& xconnect = "none", bool timeconnect=false,
194  int dataIndex = 0);
195 
196  // Some metadata axes not loaded for certain calibration tables
197  inline bool hasChan() { return ( chan_[0]->size() > 0); };
198  inline bool hasAnt2() { return ( antenna2_[0]->size() > 0); };
199 
200  /*** Axis-specific generic gets, per chunk and relative index (from indexer) ***/
201  inline casacore::Double getScan(casacore::Int chnk,casacore::Int irel) { return scan_(chnk); (void)irel; };
202  inline casacore::Double getField(casacore::Int chnk,casacore::Int irel) { return field_(chnk); (void)irel; };
203  inline casacore::Double getTime(casacore::Int chnk,casacore::Int irel) { return time_(chnk); (void)irel; };
204  inline casacore::Double getTimeIntr(casacore::Int chnk,casacore::Int irel) { return timeIntr_(chnk); (void)irel; };
205  inline casacore::Double getSpw(casacore::Int chnk,casacore::Int irel) { return spw_(chnk); (void)irel; };
206  inline casacore::Double getFreq(casacore::Int chnk,casacore::Int irel) { return *(freq_[chnk]->data()+irel); };
207  inline casacore::Double getVel(casacore::Int chnk,casacore::Int irel) { return *(vel_[chnk]->data()+irel); };
208  inline casacore::Double getChan(casacore::Int chnk,casacore::Int irel) { return *(chan_[chnk]->data()+irel); };
209  inline casacore::Double getCorr(casacore::Int chnk,casacore::Int irel) { return *(corr_[chnk]->data()+irel); };
210  inline casacore::Double getAnt1(casacore::Int chnk,casacore::Int irel) { return *(antenna1_[chnk]->data()+irel); };
211  inline casacore::Double getAnt2(casacore::Int chnk,casacore::Int irel) { return *(antenna2_[chnk]->data()+irel); };
212  inline casacore::Double getBsln(casacore::Int chnk,casacore::Int irel) { return *(baseline_[chnk]->data()+irel); };
213  inline casacore::Double getRow(casacore::Int chnk,casacore::Int irel) { return *(row_[chnk]->data()+irel); };
214  inline casacore::Double getObsid(casacore::Int chnk,casacore::Int irel) { return *(obsid_[chnk]->data()+irel); };
215  // this metadata axis is "loaded" for cal tables so check for empty array
216  inline casacore::Double getIntent(casacore::Int chnk,casacore::Int irel) { return ((*intent_[chnk]).empty() ? -1 : *(intent_[chnk]->data()+irel)); };
217  inline casacore::Double getFeed1(casacore::Int chnk,casacore::Int irel) { return *(feed1_[chnk]->data()+irel); };
218  inline casacore::Double getFeed2(casacore::Int chnk,casacore::Int irel) { return *(feed2_[chnk]->data()+irel); };
219 
220  inline casacore::Double getAmp(casacore::Int chnk,casacore::Int irel) { return *(amp_[chnk]->data()+irel); };
221  inline casacore::Double getAmpCorr(casacore::Int chnk,casacore::Int irel) { return *(ampCorr_[chnk]->data()+irel); };
222  inline casacore::Double getAmpModel(casacore::Int chnk,casacore::Int irel) { return *(ampModel_[chnk]->data()+irel); };
223  inline casacore::Double getAmpCorrMod(casacore::Int chnk,casacore::Int irel) { return *(ampCorrModel_[chnk]->data()+irel); };
224  inline casacore::Double getAmpCorrModS(casacore::Int chnk,casacore::Int irel) { return *(ampCorrModelS_[chnk]->data()+irel); };
225  inline casacore::Double getAmpDataMod(casacore::Int chnk,casacore::Int irel) { return *(ampDataModel_[chnk]->data()+irel); };
226  inline casacore::Double getAmpDataModS(casacore::Int chnk,casacore::Int irel) { return *(ampDataModelS_[chnk]->data()+irel); };
227  inline casacore::Double getAmpDataDivMod(casacore::Int chnk,casacore::Int irel) { return *(ampDataDivModel_[chnk]->data()+irel); };
228  inline casacore::Double getAmpDataDivModS(casacore::Int chnk,casacore::Int irel) { return *(ampDataDivModelS_[chnk]->data()+irel); };
229  inline casacore::Double getAmpCorrDivMod(casacore::Int chnk,casacore::Int irel) { return *(ampCorrDivModel_[chnk]->data()+irel); };
230  inline casacore::Double getAmpCorrDivModS(casacore::Int chnk,casacore::Int irel) { return *(ampCorrDivModelS_[chnk]->data()+irel); };
231  inline casacore::Double getAmpFloat(casacore::Int chnk,casacore::Int irel) { return *(ampFloat_[chnk]->data()+irel); };
232 
233  inline casacore::Double getPha(casacore::Int chnk,casacore::Int irel) { return *(pha_[chnk]->data()+irel); };
234  inline casacore::Double getPhaCorr(casacore::Int chnk,casacore::Int irel) { return *(phaCorr_[chnk]->data()+irel); };
235  inline casacore::Double getPhaModel(casacore::Int chnk,casacore::Int irel) { return *(phaModel_[chnk]->data()+irel); };
236  inline casacore::Double getPhaCorrMod(casacore::Int chnk,casacore::Int irel) { return *(phaCorrModel_[chnk]->data()+irel); };
237  inline casacore::Double getPhaCorrModS(casacore::Int chnk,casacore::Int irel) { return *(phaCorrModelS_[chnk]->data()+irel); };
238  inline casacore::Double getPhaDataMod(casacore::Int chnk,casacore::Int irel) { return *(phaDataModel_[chnk]->data()+irel); };
239  inline casacore::Double getPhaDataModS(casacore::Int chnk,casacore::Int irel) { return *(phaDataModelS_[chnk]->data()+irel); };
240  inline casacore::Double getPhaDataDivMod(casacore::Int chnk,casacore::Int irel) { return *(phaDataDivModel_[chnk]->data()+irel); };
241  inline casacore::Double getPhaDataDivModS(casacore::Int chnk,casacore::Int irel) { return *(phaDataDivModelS_[chnk]->data()+irel); };
242  inline casacore::Double getPhaCorrDivMod(casacore::Int chnk,casacore::Int irel) { return *(phaCorrDivModel_[chnk]->data()+irel); };
243  inline casacore::Double getPhaCorrDivModS(casacore::Int chnk,casacore::Int irel) { return *(phaCorrDivModelS_[chnk]->data()+irel); };
244 
245  inline casacore::Double getReal(casacore::Int chnk,casacore::Int irel) { return *(real_[chnk]->data()+irel); };
246  inline casacore::Double getRealCorr(casacore::Int chnk,casacore::Int irel) { return *(realCorr_[chnk]->data()+irel); };
247  inline casacore::Double getRealModel(casacore::Int chnk,casacore::Int irel) { return *(realModel_[chnk]->data()+irel); };
248  inline casacore::Double getRealCorrMod(casacore::Int chnk,casacore::Int irel) { return *(realCorrModel_[chnk]->data()+irel); };
249  inline casacore::Double getRealCorrModS(casacore::Int chnk,casacore::Int irel) { return *(realCorrModelS_[chnk]->data()+irel); };
250  inline casacore::Double getRealDataMod(casacore::Int chnk,casacore::Int irel) { return *(realDataModel_[chnk]->data()+irel); };
251  inline casacore::Double getRealDataModS(casacore::Int chnk,casacore::Int irel) { return *(realDataModelS_[chnk]->data()+irel); };
252  inline casacore::Double getRealDataDivMod(casacore::Int chnk,casacore::Int irel) { return *(realDataDivModel_[chnk]->data()+irel); };
253  inline casacore::Double getRealDataDivModS(casacore::Int chnk,casacore::Int irel) { return *(realDataDivModelS_[chnk]->data()+irel); };
254  inline casacore::Double getRealCorrDivMod(casacore::Int chnk,casacore::Int irel) { return *(realCorrDivModel_[chnk]->data()+irel); };
255  inline casacore::Double getRealCorrDivModS(casacore::Int chnk,casacore::Int irel) { return *(realCorrDivModelS_[chnk]->data()+irel); };
256 
257  inline casacore::Double getImag(casacore::Int chnk,casacore::Int irel) { return *(imag_[chnk]->data()+irel); };
258  inline casacore::Double getImagCorr(casacore::Int chnk,casacore::Int irel) { return *(imagCorr_[chnk]->data()+irel); };
259  inline casacore::Double getImagModel(casacore::Int chnk,casacore::Int irel) { return *(imagModel_[chnk]->data()+irel); };
260  inline casacore::Double getImagCorrMod(casacore::Int chnk,casacore::Int irel) { return *(imagCorrModel_[chnk]->data()+irel); };
261  inline casacore::Double getImagCorrModS(casacore::Int chnk,casacore::Int irel) { return *(imagCorrModelS_[chnk]->data()+irel); };
262  inline casacore::Double getImagDataMod(casacore::Int chnk,casacore::Int irel) { return *(imagDataModel_[chnk]->data()+irel); };
263  inline casacore::Double getImagDataModS(casacore::Int chnk,casacore::Int irel) { return *(imagDataModelS_[chnk]->data()+irel); };
264  inline casacore::Double getImagDataDivMod(casacore::Int chnk,casacore::Int irel) { return *(imagDataDivModel_[chnk]->data()+irel); };
265  inline casacore::Double getImagDataDivModS(casacore::Int chnk,casacore::Int irel) { return *(imagDataDivModelS_[chnk]->data()+irel); };
266  inline casacore::Double getImagCorrDivMod(casacore::Int chnk,casacore::Int irel) { return *(imagCorrDivModel_[chnk]->data()+irel); };
267  inline casacore::Double getImagCorrDivModS(casacore::Int chnk,casacore::Int irel) { return *(imagCorrDivModelS_[chnk]->data()+irel); };
268 
269  inline casacore::Double getWtxAmp(casacore::Int chnk, casacore::Int irel) { return *(wtxamp_[chnk]->data()+irel); }
270  inline casacore::Double getWtxAmpCorr(casacore::Int chnk,casacore::Int irel) { return *(wtxampCorr_[chnk]->data()+irel); };
271  inline casacore::Double getWtxAmpModel(casacore::Int chnk,casacore::Int irel) { return *(wtxampModel_[chnk]->data()+irel); };
272  inline casacore::Double getWtxAmpCorrMod(casacore::Int chnk,casacore::Int irel) { return *(wtxampCorrModel_[chnk]->data()+irel); };
273  inline casacore::Double getWtxAmpCorrModS(casacore::Int chnk,casacore::Int irel) { return *(wtxampCorrModelS_[chnk]->data()+irel); };
274  inline casacore::Double getWtxAmpDataMod(casacore::Int chnk,casacore::Int irel) { return *(wtxampDataModel_[chnk]->data()+irel); };
275  inline casacore::Double getWtxAmpDataModS(casacore::Int chnk,casacore::Int irel) { return *(wtxampDataModelS_[chnk]->data()+irel); };
276  inline casacore::Double getWtxAmpDataDivMod(casacore::Int chnk,casacore::Int irel) { return *(wtxampDataDivModel_[chnk]->data()+irel); };
277  inline casacore::Double getWtxAmpDataDivModS(casacore::Int chnk,casacore::Int irel) { return *(wtxampDataDivModelS_[chnk]->data()+irel); };
278  inline casacore::Double getWtxAmpCorrDivMod(casacore::Int chnk,casacore::Int irel) { return *(wtxampCorrDivModel_[chnk]->data()+irel); };
279  inline casacore::Double getWtxAmpCorrDivModS(casacore::Int chnk,casacore::Int irel) { return *(wtxampCorrDivModelS_[chnk]->data()+irel); };
280  inline casacore::Double getWtxAmpFloat(casacore::Int chnk,casacore::Int irel) { return *(wtxampFloat_[chnk]->data()+irel); };
281 
282  inline casacore::Double getFlag(casacore::Int chnk,casacore::Int irel) { return *(flag_[chnk]->data()+irel); };
283  inline casacore::Double getFlagRow(casacore::Int chnk,casacore::Int irel) { return *(flagrow_[chnk]->data()+irel); };
284 
285  inline casacore::Double getWt(casacore::Int chnk,casacore::Int irel) { return *(wt_[chnk]->data()+irel); };
286  inline casacore::Double getWtSp(casacore::Int chnk,casacore::Int irel) { return *(wtsp_[chnk]->data()+irel); };
287  inline casacore::Double getSigma(casacore::Int chnk,casacore::Int irel) { return *(sigma_[chnk]->data()+irel); };
288  inline casacore::Double getSigmaSp(casacore::Int chnk,casacore::Int irel) { return *(sigmasp_[chnk]->data()+irel); };
289 
290  inline casacore::Double getUVDist(casacore::Int chnk,casacore::Int irel) { return *(uvdist_[chnk]->data()+irel); };
291  inline casacore::Double getUVDistL(casacore::Int chnk,casacore::Int irel) { return *(uvdistL_[chnk]->data()+irel); };
292  inline casacore::Double getU(casacore::Int chnk,casacore::Int irel) { return *(u_[chnk]->data()+irel); };
293  inline casacore::Double getV(casacore::Int chnk,casacore::Int irel) { return *(v_[chnk]->data()+irel); };
294  inline casacore::Double getW(casacore::Int chnk,casacore::Int irel) { return *(w_[chnk]->data()+irel); };
295  inline casacore::Double getUwave(casacore::Int chnk,casacore::Int irel) { return *(uwave_[chnk]->data()+irel); };
296  inline casacore::Double getVwave(casacore::Int chnk,casacore::Int irel) { return *(vwave_[chnk]->data()+irel); };
297  inline casacore::Double getWwave(casacore::Int chnk,casacore::Int irel) { return *(wwave_[chnk]->data()+irel); };
298 
299  // These are array-global (one value per chunk)
300  inline casacore::Double getAz0(casacore::Int chnk,casacore::Int irel) { return az0_(chnk); (void)irel; };
301  inline casacore::Double getEl0(casacore::Int chnk,casacore::Int irel) { return el0_(chnk); (void)irel; };
302  inline casacore::Double getRadialVelocity0(casacore::Int chnk, casacore::Int irel){ return radialVelocity_(chnk); (void)irel;};
303  inline casacore::Double getRHO0(casacore::Int chnk, casacore::Int irel){return rho_(chnk); (void)irel; };
304  inline casacore::Double getHA0(casacore::Int chnk,casacore::Int irel) { return ha0_(chnk); (void)irel; };
305  inline casacore::Double getPA0(casacore::Int chnk,casacore::Int irel) { return pa0_(chnk); (void)irel; };
306 
307  // These are antenna-based
308  inline casacore::Double getAntenna(casacore::Int chnk,casacore::Int irel) { return *(antenna_[chnk]->data()+irel); };
309  inline casacore::Double getAz(casacore::Int chnk,casacore::Int irel) { return *(az_[chnk]->data()+irel); };
310  inline casacore::Double getEl(casacore::Int chnk,casacore::Int irel) { return *(el_[chnk]->data()+irel); };
312  throw AipsError("PlotMS internal error. PlotMsCacheBase::getRa() was called");
313  return chnk + irel; /* return *(ra_[chnk]->data()+irel); */
314  };
316  throw AipsError("PlotMS internal error. PlotMsCacheBase::getDec() was called");
317  return chnk + irel; /*(dec_[chnk]->data()+irel); */
318  };
319  inline casacore::Double getParAng(casacore::Int chnk,casacore::Int irel) { return *(parang_[chnk]->data()+irel); };
320 
321  // These support generic non-complex calibration
322  inline casacore::Double getPar(casacore::Int chnk,casacore::Int irel) { return *(par_[chnk]->data()+irel); };
323  inline casacore::Double getSnr(casacore::Int chnk,casacore::Int irel) { return *(snr_[chnk]->data()+irel); };
324  inline casacore::Double getAntPos(casacore::Int chnk,casacore::Int irel) { return *(antpos_[chnk]->data()+irel); };
325 
326  // Curve overlays
327  inline casacore::Double getAtm(casacore::Int chnk,casacore::Int irel) { return *(atm_[chnk]->data()+irel); };
328  inline casacore::Double getTsky(casacore::Int chnk,casacore::Int irel) { return *(tsky_[chnk]->data()+irel); };
329  inline casacore::Double getImageSideband(casacore::Int chnk,casacore::Int irel) { return *(imageSideband_[chnk]->data()+irel); };
330 
331  /* -----------------------------------------------------------------------*/
332  /*** Axis-specific generic gets, per chunk (for unit tests) ***/
333  // metadata axes
334  inline casacore::Int scan(casacore::Int chnk) { return scan_(chnk);};
335  inline casacore::Int field(casacore::Int chnk) { return field_(chnk); };
336  inline casacore::Double time(casacore::Int chnk) { return time_(chnk); };
337  inline casacore::Double timeIntr(casacore::Int chnk) { return timeIntr_(chnk); };
338  inline casacore::Int spw(casacore::Int chnk) { return spw_(chnk); };
339  inline casacore::Vector<casacore::Int>& chan(casacore::Int chnk) { return *(chan_[chnk]); };
340  inline casacore::Vector<casacore::Double>& freq(casacore::Int chnk) { return *(freq_[chnk]); };
341  inline casacore::Vector<casacore::Double>& vel(casacore::Int chnk) { return *(vel_[chnk]); };
342  inline casacore::Vector<casacore::Int>& corr(casacore::Int chnk) { return *(corr_[chnk]); };
343  inline casacore::Vector<casacore::Int>& ant1(casacore::Int chnk) { return *(antenna1_[chnk]); };
344  inline casacore::Vector<casacore::Int>& ant2(casacore::Int chnk) { return *(antenna2_[chnk]); };
345  inline casacore::Vector<casacore::Int>& bsln(casacore::Int chnk) { return *(baseline_[chnk]); };
346  inline casacore::Vector<casacore::uInt>& row(casacore::Int chnk) { return *(row_[chnk]); };
347  inline casacore::Vector<casacore::Int>& obsid(casacore::Int chnk) { return *(obsid_[chnk]); };
348  inline casacore::Vector<casacore::Int>& intent(casacore::Int chnk) { return *(intent_[chnk]); };
349  inline casacore::Vector<casacore::Int>& feed1(casacore::Int chnk) { return *(feed1_[chnk]); };
350  inline casacore::Vector<casacore::Int>& feed2(casacore::Int chnk) { return *(feed2_[chnk]); };
351 
352  // visibility and flag axes (S is for scalar residuals)
353  inline casacore::Array<casacore::Float>& ampData(casacore::Int chnk) { return *(amp_[chnk]); };
365  inline casacore::Array<casacore::Float>& phaData(casacore::Int chnk) { return *(pha_[chnk]); };
376  inline casacore::Array<casacore::Float>& realData(casacore::Int chnk) { return *(real_[chnk]); };
387  inline casacore::Array<casacore::Float>& imagData(casacore::Int chnk) { return *(imag_[chnk]); };
412 
413  // weight axes
414  inline casacore::Array<casacore::Float>& wt(casacore::Int chnk) { return *(wt_[chnk]); };
415  inline casacore::Array<casacore::Float>& wtsp(casacore::Int chnk) { return *(wtsp_[chnk]); };
416  inline casacore::Array<casacore::Float>& sigma(casacore::Int chnk) { return *(sigma_[chnk]); };
418 
419  // observational geometry axes
422  inline casacore::Vector<casacore::Double>& u(casacore::Int chnk) { return *(u_[chnk]); };
423  inline casacore::Vector<casacore::Double>& v(casacore::Int chnk) { return *(v_[chnk]); };
424  inline casacore::Vector<casacore::Double>& w(casacore::Int chnk) { return *(w_[chnk]); };
425  inline casacore::Matrix<casacore::Double>& uWave(casacore::Int chnk) { return *(uwave_[chnk]); };
426  inline casacore::Matrix<casacore::Double>& vWave(casacore::Int chnk) { return *(vwave_[chnk]); };
427  inline casacore::Matrix<casacore::Double>& wWave(casacore::Int chnk) { return *(wwave_[chnk]); };
428  inline casacore::Double az0(casacore::Int chnk) { return az0_[chnk]; };
429  inline casacore::Double el0(casacore::Int chnk) { return el0_[chnk]; };
430  inline casacore::Double ha0(casacore::Int chnk) { return ha0_[chnk]; };
431  inline casacore::Double pa0(casacore::Int chnk) { return pa0_[chnk]; };
432  inline casacore::Vector<casacore::Int>& ant(casacore::Int chnk) { return *(antenna_[chnk]); };
433  inline casacore::Vector<casacore::Double>& az(casacore::Int chnk) { return *(az_[chnk]); };
434  inline casacore::Vector<casacore::Double>& el(casacore::Int chnk) { return *(el_[chnk]); };
435  inline casacore::Vector<casacore::Float>& parAng(casacore::Int chnk) { return *(parang_[chnk]); };
436 
437  // ephemeris axes
438  inline casacore::Double radvel(casacore::Int chnk) { return radialVelocity_[chnk]; };
439  inline casacore::Double rho(casacore::Int chnk) { return rho_[chnk]; };
440 
441  // calibration axes
442  inline casacore::Array<casacore::Float>& par(casacore::Int chnk) { return *(par_[chnk]); };
443  inline casacore::Array<casacore::Float>& snr(casacore::Int chnk) { return *(snr_[chnk]); };
444  inline casacore::Array<casacore::Float>& antpos(casacore::Int chnk) { return *(antpos_[chnk]); };
445 
446  // curve overlay axes
447  inline casacore::Vector<casacore::Double>& atm(casacore::Int chnk) { return *(atm_[chnk]); };
448  inline casacore::Vector<casacore::Double>& tsky(casacore::Int chnk) { return *(tsky_[chnk]); };
450 
451  /* -----------------------------------------------------------------------*/
452 
453  // Returns a list of channel numbers that were averaged together in that chunk
455 
456  casacore::Record locateInfo(int plotIterIndex,
457  const casacore::Vector<PlotRegion>& regions, bool showUnflagged,
458  bool showFlagged, bool selectAll );
459 
460  PlotLogMessage* locateRange( int plotIterIndex,
461  const casacore::Vector<PlotRegion> & regions, bool showUnflagged,
462  bool showFlagged);
463 
464  PlotLogMessage* flagRange( int plotIterIndex, casa::PlotMSFlagging& flagging,
465  const casacore::Vector<PlotRegion>& regions, bool showFlagged);
466 
467  //Return a formatted string for time iteration plots giving the time range.
468  casacore::String getTimeBounds( int iterValue );
469  // Return the time as doubles
470  pair<casacore::Double,casacore::Double> getTimeBounds() const;
471  // Return the axes ranges
472  pair<casacore::Double,casacore::Double> getXAxisBounds(int index) const;
473  pair<casacore::Double,casacore::Double> getYAxisBounds(int index) const;
474 
475  inline PMS::DataColumn getXDataColumn() { return currentXData_[0]; };
476  inline PMS::DataColumn getYDataColumn(int index) { return currentYData_[index]; };
477 
478  void setPlot(PlotMSPlot *plot);
479 
481  using RaDecMap = std::map<DirectionAxisParams,RaDecData>;
482 
483  bool isValidRaDecIndex(int index) const;
484  const RaDecData & getRaDataX(int index) const;
485  const RaDecData & getRaDataY(int index) const;
486  const RaDecData & getDecDataX(int index) const;
487  const RaDecData & getDecDataY(int index) const;
488 
489  // public log method
490  inline void logmesg(const casacore::String& method,
491  const casacore::String& message, int type=PlotLogger::MSG_INFO)
492  { log(method, message, type); };
493 
494 protected:
495 
496  // Forbid copy for now
498 
499  // Resize storage for the number of chunks
500  // increaseCache parameter:
501  // false to initialize with empty Arrays before loading cache
502  // true to increase: copy values then add empty Arrays while loading cache
503  void setCache(casacore::Int newnChunk, const std::vector<PMS::Axis>& loadAxes,
504  const std::vector<PMS::DataColumn>& loadData, bool increaseCache=false);
505  template<typename T> void addArrays(
506  casacore::PtrBlock<casacore::Array<T>*>& input, bool increaseCache=false);
507  template<typename T> void addMatrices(
508  casacore::PtrBlock<casacore::Matrix<T>*>& input, bool increaseCache=false);
509  template<typename T> void addVectors(
510  casacore::PtrBlock<casacore::Vector<T>*>& input, bool increaseCache=false);
511 
512  // Specialized method for loading the cache
513  // (pure virtual: implemented specifically in child classes)
514  virtual void loadIt(std::vector<PMS::Axis>& loadAxes,
515  std::vector<PMS::DataColumn>& loadData,
516  /*PlotMSCacheThread**/ThreadCommunication* thread = NULL)=0;
517 
518  virtual void flagToDisk(const PlotMSFlagging& flagging,
522  PlotMSIndexer* indexer, int dataIndex)=0;
523 
524  // Clean up the PtrBlocks
525  void deleteCache();
526  void deleteIndexer();
527 
528  // helpers for atm/tsky overlays
529  void deleteAtm();
531 
532  virtual bool isEphemeris() {return false;};
533  bool isEphemerisAxis( PMS::Axis axis ) const;
534  // Set the net axes mask (defines how to collapse flags for the chosen plot axes)
535  void setAxesMask(PMS::Axis axis,casacore::Vector<casacore::Bool>& axismask);
536 
537  // Return the net axes mask for the currently set plot axes
538  casacore::Vector<casacore::Bool> netAxesMask(PMS::Axis xaxis,PMS::Axis yaxis);
539 
540  // Derive the plot mask by appropriately collapsing the flags
541  void setPlotMask( casacore::Int dataIndex); // all chunks
542  void setPlotMask(casacore::Int dataIndex, casacore::Int chunk); // per chunk
543 
544  // Delete the whole plot mask
545  void deletePlotMask();
546 
547  // Returns the number of points loaded for the given axis or 0 if not loaded.
548  // Only used for PlotMSCacheTab, no longer used in plotms
549  //unsigned int nPointsForAxis(PMS::Axis axis) const;
550 
551  // Convenience methods that call log() with the given method name and the
552  // appropriate event type.
553  // <group>
554  void logInfo(const casacore::String& method, const casacore::String& message) {
555  log(method, message, PlotLogger::MSG_INFO); }
556  void logDebug(const casacore::String& method, const casacore::String& message) {
557  log(method, message, PlotLogger::MSG_DEBUG); }
558  void logWarn(const casacore::String& method, const casacore::String& message) {
559  log(method, message, PlotLogger::MSG_WARN); }
560  void logError(const casacore::String& method, const casacore::String& message) {
561  log(method, message, PlotLogger::MSG_ERROR); }
562 
563  void logLoad(const casacore::String& message) {
565  void logFlag(const casacore::String& message) {
567  // </group>
568 
569  // Logs the given message from the given method name as the given event type
570  // (see PlotLogger).
571  void log(const casacore::String& method, const casacore::String& message, int eventType);
572 
573  //Return the color lookup index for the chunk.
574  int findColorIndex( int chunk, bool initialize );
575 
576  // Check access to vector
577  template<typename T>
578  T checkIndex(int index, const std::vector<T>& v, const std::string &vname) const;
579 
580  // Private data
581 
582  // Parent plotms.
583  // (used only for access to logger, so far)
585 
586  // Parent PlotMSPlot, if any
588 
589  // An empty indexer (its an empty PlotData object used for initialization)
591 
592  // The indexer into the cache
593  std::vector<casacore::PtrBlock<PlotMSIndexer*> > indexer_;
594 
595  // The number of chunks in the cache
597 
598  // The reference time for this cache, in seconds
600 
601  // The number of antennas
603 
604  // Set frame from VI if not specified by user
605  // (for VI2::getFrequencies and axis label)
607 
608  // Global min/max
610 
611  // The fundamental meta-data cache
627 
628  // Optional parts of the cache
630 
631  // casacore::Data (the heavy part)
639  phaCorrDivModelS_; // no phase for FLOAT_DATA
643  realCorrDivModelS_; // use real_ for FLOAT_DATA
647  imagCorrDivModelS_; // no imag for FLOAT_DATA
652  wtxampFloat_;
653 
656 
659 
664  std::map<DirectionAxisParams,RaDecData> raMap_,decMap_;
665 
668 
670 
671  // for cal tables
674 
675  // Current setup/state.
678  std::vector<PMS::Axis> currentX_;
679  std::vector<PMS::Axis> currentY_;
680  std::vector<PMS::DataColumn> currentXData_;
681  std::vector<PMS::DataColumn> currentYData_;
682  std::vector<PMS::CoordSystem> currentXFrame_;
683  std::vector<PMS::CoordSystem> currentYFrame_;
684  std::vector<PMS::InterpMethod> currentXInterp_;
685  std::vector<PMS::InterpMethod> currentYInterp_;
686  std::vector<PMS::CoordSystem> xyFrame_;
687  std::vector<PMS::InterpMethod> xyInterp_;
688  std::vector<PMS::CoordSystem> loadXYFrame_;
689  std::vector<PMS::InterpMethod> loadXYInterp_;
690  decltype(raMap_)::mapped_type *loadRa_;
691  decltype(decMap_)::mapped_type *loadDec_;
692  map<PMS::Axis, bool> loadedAxes_;
693  map<PMS::Axis, casacore::Record> loadedAxesData_;
694  //map<PMS::Axis, std::set<PMS::DataColumn>> loadedAxesData_;
695  map<PMS::Axis, bool> pendingLoadAxes_;
696 
697  // Global ranges (unflagged and flagged, per indexer)
700 
701  // A copy of the casacore::Data parameters
707 
708  // Axes mask
709  std::vector<casacore::Vector<casacore::Bool> > netAxesMask_;
710 
711  // collapsed flag mask for plotting
712  std::vector<casacore::PtrBlock<casacore::Array<casacore::Bool>* > > plmask_;
713 
714  // meta info for locate output
721 
722  PMS::Axis iterAxis;
725 
726  // The calibration type (casacore::Table subType)
728  // polarization selection is ratio ("/")
730 
731  // Page header items
733 
734  // For atm/tsky overlays
736 
737 private:
739  bool axisIsValid(PMS::Axis axis, const PlotMSAveraging& averaging);
740 
741 };
743 
744 
745 }
746 
747 #endif /* PLOTMSCACHEBASE_H_ */
casacore::Vector< casacore::Double > & freq(casacore::Int chnk)
::QVector< double > uniqueTimes
casacore::Double getImagDataDivMod(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & ampModel(casacore::Int chnk)
bool isEphemerisAxis(PMS::Axis axis) const
casacore::Double getDec(casacore::Int chnk, casacore::Int irel)
virtual void load(const std::vector< PMS::Axis > &axes, const std::vector< PMS::DataColumn > &data, const casacore::String &filename, const PlotMSSelection &selection, const PlotMSAveraging &averaging, const PlotMSTransformations &transformations, const PlotMSCalibration &calibration, ThreadCommunication *thread=NULL)
Loads the cache for the given axes and data columns.
casacore::Array< casacore::Float > & wtxampCorr(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampCorr_
casacore::Double az0(casacore::Int chnk)
casacore::Array< casacore::Float > & phaDataDivModelS(casacore::Int chnk)
casacore::PtrBlock< casacore::Vector< casacore::Double > * > v_
pair< casacore::Double, casacore::Double > getYAxisBounds(int index) const
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampCorrModelS_
casacore::Vector< casacore::Double > & atm(casacore::Int chnk)
curve overlay axes
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaModel_
casacore::Vector< casacore::Int > field_
casacore::Double getFreq(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & wtsp(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxamp_
const RaDecData & getRaDataX(int index) const
Specifies averaging parameters for an MS.
int Int
Definition: aipstype.h:50
casacore::Vector< casacore::Bool > netAxesMask(PMS::Axis xaxis, PMS::Axis yaxis)
Return the net axes mask for the currently set plot axes.
casacore::Vector< casacore::Double > & vel(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagDataDivModel_
casacore::Vector< casacore::Double > rho_
casacore::Double getAmpCorrDivMod(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaCorr_
casacore::Vector< casacore::Int > & feed1(casacore::Int chnk)
PlotMSTransformations & transformations()
Access to transformations state in the cache.
casacore::Vector< casacore::Double > yminG_
casacore::Double time(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > amp_
casacore::Data (the heavy part)
casacore::PtrBlock< casacore::Array< casacore::Float > * > realCorrModelS_
casacore::Vector< casacore::Int > getChansPerBin(casacore::Int chnk, casacore::Int irel)
Returns a list of channel numbers that were averaged together in that chunk.
casacore::Array< casacore::Float > & imagCorrDivModel(casacore::Int chnk)
casacore::Double getPhaModel(casacore::Int chnk, casacore::Int irel)
casacore::Double getImagModel(casacore::Int chnk, casacore::Int irel)
casacore::Vector< casacore::Double > & tsky(casacore::Int chnk)
casacore::Double getWt(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Vector< casacore::Float > * > parang_
casacore::PtrBlock< casacore::Vector< casacore::uInt > * > row_
casacore::Array< casacore::Float > & realDataDivModelS(casacore::Int chnk)
casacore::Array< casacore::Float > & phaCorrDivModel(casacore::Int chnk)
casacore::Double getAnt1(casacore::Int chnk, casacore::Int irel)
void _updateAntennaMask(casacore::Int a, casacore::Vector< casacore::Bool > &antMask, const casacore::Vector< casacore::Int > selectedAntennas)
casacore::Matrix< casacore::Int > & chunkShapes()
Report the data shapes.
casacore::Vector< casacore::Int > & intent(casacore::Int chnk)
PlotMSSelection selection_
casacore::Double getPhaCorrMod(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & realCorrModel(casacore::Int chnk)
casacore::Int nChunk_
The number of chunks in the cache.
casacore::PtrBlock< casacore::Array< casacore::Float > * > realModel_
std::vector< PMS::CoordSystem > xyFrame_
casacore::Array< casacore::Double > positions_
casacore::Double getAz(casacore::Int chnk, casacore::Int irel)
casacore::Double getImagCorrModS(casacore::Int chnk, casacore::Int irel)
void logWarn(const casacore::String &method, const casacore::String &message)
casacore::Double getWtxAmpDataModS(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Vector< casacore::Int > * > baseline_
casacore::Vector< casacore::Float > & parAng(casacore::Int chnk)
casacore::Double getImageSideband(casacore::Int chnk, casacore::Int irel)
casacore::Matrix< casacore::Double > & wWave(casacore::Int chnk)
std::vector< PMS::InterpMethod > xyInterp_
void clear()
Clears the cache of all stored values.
casacore::Array< casacore::Float > & wtxampCorrModel(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampDataDivModelS_
casacore::Double getPhaDataDivModS(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & antpos(casacore::Int chnk)
std::vector< casacore::PtrBlock< PlotMSIndexer * > > indexer_
The indexer into the cache.
decltype(decMap_)::mapped_type * loadDec_
casacore::Double getReal(casacore::Int chnk, casacore::Int irel)
casacore::Double getRealCorrMod(casacore::Int chnk, casacore::Int irel)
void logmesg(const casacore::String &method, const casacore::String &message, int type=PlotLogger::MSG_INFO)
public log method
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampCorrModelS_
casacore::Vector< casacore::Double > yflmaxG_
bool canShowImageCurve()
IMAGESB axis; for axis labels/title (image curve axis not always loaded)
casacore::Double getPar(casacore::Int chnk, casacore::Int irel)
These support generic non-complex calibration.
casacore::Array< casacore::Float > & realCorrDivModelS(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > sigma_
casacore::PtrBlock< casacore::Vector< casacore::Int > * > antenna1_
casacore::PtrBlock< casacore::Vector< casacore::Double > * > freq_
virtual void flagToDisk(const PlotMSFlagging &flagging, casacore::Vector< casacore::Int > &chunks, casacore::Vector< casacore::Int > &relids, casacore::Bool flag, PlotMSIndexer *indexer, int dataIndex)=0
static const int MSG_DEBUG
Miscellaneous debugging messages.
Definition: PlotLogger.h:342
casacore::Vector< casacore::Double > radialVelocity_
static const int MSG_ERROR
Definition: PlotLogger.h:338
casacore::Double getW(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > real_
casacore::Array< casacore::Float > & phaData(casacore::Int chnk)
casacore::Array< casacore::Float > & imagCorrDivModelS(casacore::Int chnk)
map< PMS::Axis, bool > pendingLoadAxes_
map&lt;PMS::Axis, std::set&lt;PMS::DataColumn&gt;&gt; loadedAxesData_;
void deleteAtm()
helpers for atm/tsky overlays
virtual Type type()
Return the type enum.
static const casacore::String LOG_ORIGIN_FLAG
casacore::Double getAmpCorrModS(casacore::Int chnk, casacore::Int irel)
casacore::Double getRealCorrDivMod(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Vector< casacore::Int > * > feed2_
static const int MSG_INFO
Static //.
Definition: PlotLogger.h:336
casacore::Array< casacore::Float > & wtxampDataModel(casacore::Int chnk)
void setPlotMask(casacore::Int dataIndex)
Derive the plot mask by appropriately collapsing the flags.
casacore::Vector< casacore::String > antnames_
meta info for locate output
casacore::Double getV(casacore::Int chnk, casacore::Int irel)
void setCache(casacore::Int newnChunk, const std::vector< PMS::Axis > &loadAxes, const std::vector< PMS::DataColumn > &loadData, bool increaseCache=false)
Resize storage for the number of chunks increaseCache parameter: false to initialize with empty Array...
PlotMSAtm * plotmsAtm_
For atm/tsky overlays.
casacore::String calType() const
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampCorrDivModelS_
static const casacore::String LOG_ORIGIN_LOAD_CACHE
casacore::PtrBlock< casacore::Vector< casacore::Int > * > antenna2_
casacore::Vector< casacore::Bool > & flagrow(casacore::Int chunk)
std::vector< PMS::DataColumn > currentYData_
void logFlag(const casacore::String &message)
bool polnRatio_
polarization selection is ratio (&quot;/&quot;)
void addMatrices(casacore::PtrBlock< casacore::Matrix< T > * > &input, bool increaseCache=false)
casacore::Array< casacore::Float > & imagCorr(casacore::Int chnk)
casacore::Int nAnt_
The number of antennas.
casacore::Double pa0(casacore::Int chnk)
casacore::Double getAmpCorrMod(casacore::Int chnk, casacore::Int irel)
casacore::Double getPha(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & ampCorr(casacore::Int chnk)
const RaDecData & getDecDataY(int index) const
Specifies an casacore::MS selection.
std::vector< PMS::InterpMethod > currentXInterp_
void setAxesMask(PMS::Axis axis, casacore::Vector< casacore::Bool > &axismask)
Set the net axes mask (defines how to collapse flags for the chosen plot axes)
void deleteCache()
Clean up the PtrBlocks.
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagDataDivModelS_
casacore::Vector< casacore::Double > & az(casacore::Int chnk)
PMS::Axis metadata(int i)
casacore::Double getAmpDataDivMod(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & imagDataModel(casacore::Int chnk)
void setPlot(PlotMSPlot *plot)
casacore::Double minY_
std::map< DirectionAxisParams, RaDecData > decMap_
casacore::Vector< casacore::Double > xminG_
Global ranges (unflagged and flagged, per indexer)
PlotMSIndexer * indexer0_
An empty indexer (its an empty PlotData object used for initialization)
casacore::PtrBlock< casacore::Vector< casacore::Int > * > feed1_
casacore::Double maxX_
casacore::Double getWtxAmpDataMod(casacore::Int chnk, casacore::Int irel)
casacore::Double getWtxAmpFloat(casacore::Int chnk, casacore::Int irel)
casacore::Double getSnr(casacore::Int chnk, casacore::Int irel)
casacore::Vector< casacore::Int > spw_
casacore::String filename_
A copy of the casacore::Data parameters.
casacore::PtrBlock< casacore::Vector< casacore::Int > * > intent_
casacore::Double getFeed1(casacore::Int chnk, casacore::Int irel)
casacore::Double getImagCorrDivModS(casacore::Int chnk, casacore::Int irel)
casacore::Double getTime(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagCorrDivModelS_
casacore::Double getVel(casacore::Int chnk, casacore::Int irel)
PMS::Axis getIterAxis() const
casacore::PtrBlock< casacore::Array< casacore::Float > * > sigmasp_
casacore::Double getWtxAmpCorr(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagCorrModelS_
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaCorrDivModel_
casacore::Vector< casacore::Int > & ant(casacore::Int chnk)
static const PMS::Axis METADATA[]
casacore::Vector< casacore::Int > & feed2(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > antpos_
casacore::PtrBlock< casacore::Array< casacore::Float > * > realDataDivModelS_
std::map< DirectionAxisParams, RaDecData > raMap_
PlotMSPlot * itsPlot_
Parent PlotMSPlot, if any.
size_t size() const
casacore::Vector< casacore::Double > xmaxG_
casacore::Vector< casacore::Bool > goodChunk_
casacore::PtrBlock< casacore::Vector< casacore::Double > * > ra_
casacore::PtrBlock< casacore::Vector< casacore::Int > * > corr_
casacore::Double getEl0(casacore::Int chnk, casacore::Int irel)
casacore::Double getPhaDataDivMod(casacore::Int chnk, casacore::Int irel)
std::vector< PMS::Axis > loadedAxes() const
Returns which axes have been loaded into the cache, including metadata.
void resizeIndexer(int size)
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaDataModel_
void log(const casacore::String &method, const casacore::String &message, int eventType)
Logs the given message from the given method name as the given event type (see PlotLogger).
PlotMSAveraging & averaging()
Access to averaging state in the cache:
ABSTRACT CLASSES Deliberately vague to be general enough to allow for many different types of data
Definition: PlotData.h:48
casacore::Double getWtxAmpCorrModS(casacore::Int chnk, casacore::Int irel)
casacore::Double getScan(casacore::Int chnk, casacore::Int irel)
casacore::Double getImagDataDivModS(casacore::Int chnk, casacore::Int irel)
bool dataLoaded_
Current setup/state.
casacore::Array< casacore::Float > & imagDataDivModel(casacore::Int chnk)
casacore::Double getRealCorr(casacore::Int chnk, casacore::Int irel)
std::vector< casacore::Vector< casacore::Bool > > netAxesMask_
Axes mask.
void setUpIndexer(PMS::Axis iteraxis=PMS::SCAN, casacore::Bool globalXRange=false, casacore::Bool globalYRange=false, const casacore::String &xconnect="none", bool timeconnect=false, int dataIndex=0)
casacore::Array< casacore::Float > & wtxampCorrModelS(casacore::Int chnk)
bool hasOverlay()
ATM or TSKY axis; for adjusting plot ranges.
casacore::Matrix< casacore::Double > & uVDistL(casacore::Int chnk)
casacore::Int spw(casacore::Int chnk)
virtual casacore::String polname(casacore::Int ipol)=0
Access to pol names.
casacore::Double refTime() const
Report the reference time for this cache (in seconds)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampDataModelS_
static bool axisIsMetaData(PMS::Axis axis)
Controller class for plotms.
Definition: PlotMS.h:55
casacore::Double getWtxAmpModel(casacore::Int chnk, casacore::Int irel)
casacore::Double getRealModel(casacore::Int chnk, casacore::Int irel)
pair< casacore::Double, casacore::Double > getTimeBounds() const
Return the time as doubles.
casacore::Array< casacore::Float > & ampDataModel(casacore::Int chnk)
casacore::Array< casacore::Float > & wtxampCorrDivModel(casacore::Int chnk)
casacore::PtrBlock< casacore::Vector< casacore::Int > * > obsid_
casacore::Double getRealDataModS(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Vector< casacore::Double > * > dec_
casacore::PtrBlock< casacore::Vector< casacore::Double > * > el_
casacore::Double getTsky(casacore::Int chnk, casacore::Int irel)
casacore::Vector< casacore::Double > & el(casacore::Int chnk)
casacore::Double getWtxAmpCorrDivModS(casacore::Int chnk, casacore::Int irel)
casacore::Double getImagDataModS(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampCorrDivModel_
casacore::Array< casacore::Float > & ampFloat(casacore::Int chnk)
casacore::Array< casacore::Float > & ampDataDivModel(casacore::Int chnk)
virtual void setFilename(casacore::String filename)=0
keep MS/CT filename (sets calType_)
casacore::Array< casacore::Float > & phaCorrDivModelS(casacore::Int chnk)
casacore::Double getRa(casacore::Int chnk, casacore::Int irel)
casacore::Double getChan(casacore::Int chnk, casacore::Int irel)
casacore::Double getPhaCorr(casacore::Int chnk, casacore::Int irel)
Referenced counted pointer for constant data.
Definition: VisModelData.h:42
casacore::Double getU(casacore::Int chnk, casacore::Int irel)
int nmetadata() const
Meta axes info.
bool cacheReady() const
Returns whether cache is filled.
casacore::Double maxY_
casacore::Vector< casacore::Double > ha0_
const RaDecData & getDecDataX(int index) const
std::vector< PMS::InterpMethod > loadXYInterp_
casacore::Double getPhaCorrModS(casacore::Int chnk, casacore::Int irel)
casacore::Double getBsln(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & phaDataModel(casacore::Int chnk)
casacore::Double getAmpDataDivModS(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & wtxampFloat(casacore::Int chnk)
casacore::Vector< casacore::String > fldnames_
casacore::PtrBlock< casacore::Vector< casacore::Double > * > az_
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampCorrModel_
casacore::Vector< casacore::Double > az0_
casacore::Array< casacore::Float > & realCorrModelS(casacore::Int chnk)
casacore::Int nIter(int dataIndex) const
casacore::Vector< casacore::Double > yflminG_
casacore::Array< casacore::Float > & realDataModel(casacore::Int chnk)
virtual bool isEphemeris()
casacore::PtrBlock< casacore::Matrix< casacore::Double > * > uvdistL_
casacore::Vector< casacore::Int > & chan(casacore::Int chnk)
bool wasCanceled() const
Returns whether user canceled during loading chunks.
casacore::Double getField(casacore::Int chnk, casacore::Int irel)
casacore::Double getAmpModel(casacore::Int chnk, casacore::Int irel)
Specifies flagging parameters (including possibly flag extension) for an MS.
casacore::Matrix< casacore::Int > chshapes_
The fundamental meta-data cache.
casacore::PtrBlock< casacore::Vector< casacore::Double > * > imageSideband_
bool polnRatio() const
casacore::Double getRealDataDivModS(casacore::Int chnk, casacore::Int irel)
double Double
Definition: aipstype.h:55
casacore::Vector< casacore::Double > & u(casacore::Int chnk)
casacore::Array< casacore::Float > & wtxampModel(casacore::Int chnk)
casacore::Double getParAng(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & ampCorrModelS(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampCorrDivModelS_
std::vector< PMS::CoordSystem > currentXFrame_
casacore::PtrBlock< casacore::Array< casacore::Float > * > wt_
casacore::Double rho(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampCorrModel_
casacore::Array< casacore::Float > & par(casacore::Int chnk)
calibration axes
casacore::Double getAmpCorr(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagDataModel_
casacore::Double el0(casacore::Int chnk)
int findColorIndex(int chunk, bool initialize)
Return the color lookup index for the chunk.
casacore::Vector< casacore::Double > ymaxG_
casacore::Array< casacore::Float > & phaCorrModelS(casacore::Int chnk)
casacore::MFrequency::Types freqFrame_
Set frame from VI if not specified by user (for VI2::getFrequencies and axis label) ...
casacore::Double getRadialVelocity0(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Vector< casacore::Double > * > vel_
casacore::Vector< casacore::Double > xflmaxG_
Class for a single &quot;plot&quot; concept.
Definition: PlotMSPlot.h:57
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtsp_
casacore::Double getImagCorr(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Vector< casacore::Float > * > pa_
Optional parts of the cache.
PlotMSAtm: plotms class for calculating atmospheric transmission curve for bandpass plots...
Definition: PlotMSAtm.h:73
casacore::PtrBlock< casacore::Array< casacore::Float > * > realDataDivModel_
casacore::Vector< casacore::Double > & v(casacore::Int chnk)
PlotMSCalibration calibration_
casacore::Double getPhaCorrDivMod(casacore::Int chnk, casacore::Int irel)
T checkIndex(int index, const std::vector< T > &v, const std::string &vname) const
Check access to vector.
casacore::Double getWtxAmpDataDivMod(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & ampData(casacore::Int chnk)
visibility and flag axes (S is for scalar residuals)
casacore::Double getSpw(casacore::Int chnk, casacore::Int irel)
casacore::Double getRHO0(casacore::Int chnk, casacore::Int irel)
pair< casacore::Double, casacore::Double > getXAxisBounds(int index) const
Return the axes ranges.
casacore::Double getUwave(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > par_
for cal tables
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaDataDivModelS_
casacore::Double getAmpCorrDivModS(casacore::Int chnk, casacore::Int irel)
A hierarchical collection of named fields of various types.
Definition: Record.h:180
static const unsigned int N_METADATA
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::Double ha0(casacore::Int chnk)
casacore::Double getWtSp(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & ampCorrModel(casacore::Int chnk)
casacore::Array< casacore::Bool > & flag(casacore::Int chunk)
casacore::Array< casacore::Float > & wtxampDataModelS(casacore::Int chnk)
casacore::Int scan(casacore::Int chnk)
metadata axes
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampDataModelS_
casacore::PtrBlock< casacore::Matrix< casacore::Double > * > vwave_
casacore::Double getRealCorrDivModS(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagCorr_
casacore::Array< casacore::Float > & wtxampData(casacore::Int chnk)
casacore::Double getAntPos(casacore::Int chnk, casacore::Int irel)
casacore::Double getUVDistL(casacore::Int chnk, casacore::Int irel)
casacore::Vector< casacore::String > intentnames_
casacore::Double getWtxAmpCorrMod(casacore::Int chnk, casacore::Int irel)
bool areRaDecAxesLoaded(const DirectionAxisParams &params) const
Returns true if RA/DEC axes data.
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagDataModelS_
casacore::Double getPhaCorrDivModS(casacore::Int chnk, casacore::Int irel)
map< PMS::Axis, bool > loadedAxes_
casacore::Bool empty() const
std::vector< PMS::Axis > currentY_
casacore::Array< casacore::Float > & ampCorrDivModelS(casacore::Int chnk)
void logDebug(const casacore::String &method, const casacore::String &message)
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampFloat_
casacore::PtrBlock< casacore::Vector< casacore::Bool > * > flagrow_
casacore::Double getVwave(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & realData(casacore::Int chnk)
casacore::PtrBlock< casacore::Vector< casacore::Int > * > chan_
casacore::Array< casacore::Float > & sigma(casacore::Int chnk)
casacore::Double getAmpDataMod(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & phaModel(casacore::Int chnk)
void logLoad(const casacore::String &message)
std::vector< casacore::PtrBlock< casacore::Array< casacore::Bool > * > > plmask_
collapsed flag mask for plotting
A drop-in replacement for Block&lt;T*&gt;.
Definition: WProjectFT.h:54
casacore::Array< casacore::Float > & phaCorr(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampDataDivModelS_
casacore::Double getAz0(casacore::Int chnk, casacore::Int irel)
These are array-global (one value per chunk)
casacore::Vector< casacore::Int > scan_
double referenceValue(PMS::Axis axis)
casacore::Double getAmp(casacore::Int chnk, casacore::Int irel)
casacore::Double getFlagRow(casacore::Int chnk, casacore::Int irel)
casacore::Vector< casacore::Int > & obsid(casacore::Int chnk)
casacore::Array< casacore::Float > & imagDataDivModelS(casacore::Int chnk)
casacore::PtrBlock< casacore::Matrix< casacore::Double > * > wwave_
casacore::PtrBlock< casacore::Array< casacore::Float > * > realCorrDivModel_
casacore::Array< casacore::Float > & imagCorrModel(casacore::Int chnk)
casacore::Double getRow(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & imagCorrModelS(casacore::Int chnk)
casacore::Vector< casacore::String > antstanames_
const RaDecData & getRaDataY(int index) const
casacore::PtrBlock< casacore::Vector< casacore::Double > * > atm_
casacore::Vector< casacore::Double > & imageSideband(casacore::Int chnk)
virtual PlotMSCacheBase::Type cacheType() const =0
Identify myself (MS or CAL)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampDataDivModel_
casacore::Vector< casacore::Double > timeIntr_
casacore::Double getEl(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaCorrModel_
casacore::Array< casacore::Float > & imagDataModelS(casacore::Int chnk)
casacore::Array< casacore::Float > & phaCorrModel(casacore::Int chnk)
void logInfo(const casacore::String &method, const casacore::String &message)
Returns the number of points loaded for the given axis or 0 if not loaded.
void addArrays(casacore::PtrBlock< casacore::Array< T > * > &input, bool increaseCache=false)
casacore::Array< casacore::Float > & realCorrDivModel(casacore::Int chnk)
casacore::Double getWwave(casacore::Int chnk, casacore::Int irel)
static const unsigned int THREAD_SEGMENT
PlotMSIndexer & indexer(int dataIndex, casacore::uInt i)
Reference an indexer; returns -1 if there is no indexer for the given dataIndex.
casacore::Double getAmpDataModS(casacore::Int chnk, casacore::Int irel)
PlotMSCacheBase(PlotMSApp *parent, PlotMSPlot *plot=nullptr)
Constructor which takes parent PlotMS.
casacore::Double getAmpFloat(casacore::Int chnk, casacore::Int irel)
casacore::Double getPhaDataMod(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & phaDataModelS(casacore::Int chnk)
casacore::Array< casacore::Float > & ampDataModelS(casacore::Int chnk)
casacore::Double getCorr(casacore::Int chnk, casacore::Int irel)
casacore::Double getRealDataMod(casacore::Int chnk, casacore::Int irel)
bool isIndexerInitialized(PMS::Axis iteraxis, casacore::Bool globalXRange, casacore::Bool globalYRange, int dataIndex) const
Set up indexing for the plot.
std::vector< PMS::CoordSystem > currentYFrame_
casacore::Double getFlag(casacore::Int chnk, casacore::Int irel)
casacore::Vector< casacore::Int > & ant1(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampCorrDivModel_
casacore::Double getAnt2(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & realCorr(casacore::Int chnk)
casacore::Double getHA0(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > realCorrModel_
casacore::Vector< casacore::Int > & bsln(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampDataDivModel_
casacore::Vector< casacore::Int > & corr(casacore::Int chnk)
std::vector< PMS::InterpMethod > currentYInterp_
bool hasReferenceValue(PMS::Axis axis)
Is there a reference value for the specified axis? TBD: actually make this axis-dep?
casacore::Double getPhaDataModS(casacore::Int chnk, casacore::Int irel)
casacore::Double getTimeIntr(casacore::Int chnk, casacore::Int irel)
Specifies averaging parameters for an MS.
PlotLogMessage * locateRange(int plotIterIndex, const casacore::Vector< PlotRegion > &regions, bool showUnflagged, bool showFlagged)
Base class for all Casacore library errors.
Definition: Error.h:134
casacore::PtrBlock< casacore::Matrix< casacore::Double > * > uwave_
void logError(const casacore::String &method, const casacore::String &message)
casacore::Double getWtxAmpCorrDivMod(casacore::Int chnk, casacore::Int irel)
void addVectors(casacore::PtrBlock< casacore::Vector< T > * > &input, bool increaseCache=false)
casacore::Array< casacore::Float > & ampDataDivModelS(casacore::Int chnk)
casacore::PtrBlock< casacore::Vector< casacore::Double > * > tsky_
casacore::Double getIntent(casacore::Int chnk, casacore::Int irel)
this metadata axis is &quot;loaded&quot; for cal tables so check for empty array
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampDataModel_
Type
TBD: friend class PlotMSData;.
casacore::Vector< casacore::Double > el0_
casacore::Double getRealCorrModS(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > realCorrDivModelS_
static const int MSG_WARN
Definition: PlotLogger.h:337
casacore::Array< casacore::Float > & realDataDivModel(casacore::Int chnk)
casacore::Array< casacore::Float > & wtxampCorrDivModelS(casacore::Int chnk)
casacore::Vector< casacore::Int > & ant2(casacore::Int chnk)
PMS::DataColumn getYDataColumn(int index)
PMS::DataColumn getXDataColumn()
casacore::Vector< casacore::Double > pa0_
casacore::Double getAntenna(casacore::Int chnk, casacore::Int irel)
These are antenna-based.
casacore::Double getImag(casacore::Int chnk, casacore::Int irel)
PageHeaderCache pageHeaderCache_
Page header items.
void release(const std::vector< PMS::Axis > &axes)
Releases the given axes from the cache.
casacore::CountedPtr< PlotMSCacheBase > PlotMSCacheBasePtr
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaDataModelS_
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampCorr_
casacore::Double getImagCorrDivMod(casacore::Int chnk, casacore::Int irel)
casacore::Double getObsid(casacore::Int chnk, casacore::Int irel)
virtual ~PlotMSCacheBase()
Destructor.
casacore::Array< casacore::Float > & imagData(casacore::Int chnk)
casacore::Vector< casacore::Double > & w(casacore::Int chnk)
PlotMSApp * plotms_
Private data.
casacore::Double getSigma(casacore::Int chnk, casacore::Int irel)
casacore::Double refTime_p
The reference time for this cache, in seconds.
bool isValidRaDecIndex(int index) const
casacore::Double getFeed2(casacore::Int chnk, casacore::Int irel)
String: the storage and methods of handling collections of characters.
Definition: String.h:223
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagModel_
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaDataDivModel_
casacore::Bool goodChunk(casacore::Int ichunk)
A chunk is good (T) if it contains data (when averaging, some chunks may have nrows=0) ...
casacore::PtrBlock< casacore::Array< casacore::Float > * > realDataModel_
casacore::Array< casacore::Float > & sigmasp(casacore::Int chnk)
casacore::Array< casacore::Float > & realDataModelS(casacore::Int chnk)
casacore::Array< casacore::Float > & phaDataDivModel(casacore::Int chnk)
Superclass for all messages going through the PlotLogger.
Definition: PlotLogger.h:48
casacore::PtrBlock< casacore::Array< casacore::Float > * > pha_
casacore::Array< casacore::Float > & wt(casacore::Int chnk)
weight axes
map< PMS::Axis, casacore::Record > loadedAxesData_
casacore::Int field(casacore::Int chnk)
PlotLogMessage * flagRange(int plotIterIndex, casa::PlotMSFlagging &flagging, const casacore::Vector< PlotRegion > &regions, bool showFlagged)
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagCorrDivModel_
casacore::Array< casacore::Float > & wtxampDataDivModelS(casacore::Int chnk)
casacore::Double getWtxAmp(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampModel_
Specifies calibration parameters for an MS.
casacore::Array< casacore::Float > & imagModel(casacore::Int chnk)
casacore::Double getPA0(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & snr(casacore::Int chnk)
casacore::PtrBlock< casacore::Vector< casacore::Double > * > uvdist_
casacore::Record locateInfo(int plotIterIndex, const casacore::Vector< PlotRegion > &regions, bool showUnflagged, bool showFlagged, bool selectAll)
std::vector< PMS::DataColumn > currentXData_
casacore::Double getImagCorrMod(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Float > * > ampFloat_
Types
Types of known MFrequencies Warning: The order defines the order in the translation matrix FromTo in...
Definition: MFrequency.h:176
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampModel_
casacore::PtrBlock< casacore::Array< casacore::Float > * > wtxampDataModel_
casacore::Vector< casacore::String > stanames_
PlotMSTransformations transformations_
casacore::Double getAtm(casacore::Int chnk, casacore::Int irel)
Curve overlays.
Subchunk class Provides the ordered pair identifying the current subchunk The first component is the chunk(goes from 0 to nChunks-1 during the outer loop iteration).The second component is the subchunk number which is zero after VisibilityIterator
static const int LOG_EVENT_FLAG
casacore::Double getUVDist(casacore::Int chnk, casacore::Int irel)
casacore::PtrBlock< casacore::Array< casacore::Int > * > chansPerBin_
decltype(raMap_)::mapped_type * loadRa_
casacore::PtrBlock< casacore::Array< casacore::Float > * > realCorr_
std::vector< PMS::Axis > currentX_
PlotMSAveraging averaging_
std::vector< PMS::CoordSystem > loadXYFrame_
casacore::String calType_
The calibration type (casacore::Table subType)
casacore::Matrix< casacore::Double > & uWave(casacore::Int chnk)
casacore::Int nChunk() const
Report the number of chunks.
casacore::Array< casacore::Float > & ampCorrDivModel(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > snr_
bool hasChan()
Some metadata axes not loaded for certain calibration tables.
Defines communication mechanisms that the model and data can use to communicate with the UI concernin...
casacore::Vector< casacore::uInt > & row(casacore::Int chnk)
casacore::Double getRealDataDivMod(casacore::Int chnk, casacore::Int irel)
casacore::Array< casacore::Float > & wtxampDataDivModel(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > imag_
casacore::Double minX_
Global min/max.
PlotMSIndexer & indexer0()
casacore::PtrBlock< casacore::Array< casacore::Float > * > imagCorrModel_
casacore::Vector< casacore::Double > xflminG_
bool axisIsValid(PMS::Axis axis, const PlotMSAveraging &averaging)
casacore::PtrBlock< casacore::Vector< casacore::Double > * > u_
std::map< DirectionAxisParams, RaDecData > RaDecMap
casacore::PtrBlock< casacore::Vector< casacore::Int > * > antenna_
casacore::Double timeIntr(casacore::Int chnk)
casacore::Matrix< casacore::Double > & vWave(casacore::Int chnk)
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaCorrDivModelS_
casacore::PtrBlock< casacore::Array< casacore::Bool > * > flag_
casacore::Vector< casacore::Double > & uVDist(casacore::Int chnk)
observational geometry axes
unsigned int uInt
Definition: aipstype.h:51
casacore::Double getImagDataMod(casacore::Int chnk, casacore::Int irel)
void printAtmStats(casacore::Int scan)
casacore::Double getSigmaSp(casacore::Int chnk, casacore::Int irel)
static const int LOG_EVENT_LOAD_CACHE
virtual void loadIt(std::vector< PMS::Axis > &loadAxes, std::vector< PMS::DataColumn > &loadData, ThreadCommunication *thread=NULL)=0
Specialized method for loading the cache (pure virtual: implemented specifically in child classes) ...
casacore::PtrBlock< casacore::Array< casacore::Float > * > realDataModelS_
void deletePlotMask()
Delete the whole plot mask.
casacore::PtrBlock< casacore::Vector< casacore::Double > * > w_
casacore::PtrBlock< casacore::Array< casacore::Float > * > phaCorrModelS_
casacore::Vector< casacore::Double > time_
casacore::MFrequency::Types getFreqFrame() const
Frequency frame in original casacore::MS or requested by user.
casacore::Double radvel(casacore::Int chnk)
ephemeris axes
casacore::Array< casacore::Float > & realModel(casacore::Int chnk)
casacore::Double getWtxAmpDataDivModS(casacore::Int chnk, casacore::Int irel)