casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nPBWProjectFT.h
Go to the documentation of this file.
1 //# nPBWProjectFT.h: Definition for nPBWProjectFT
2 //# Copyright (C) 1996,1997,1998,1999,2000,2002
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 adressed 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 //#
27 //# $Id$
28 
29 #ifndef SYNTHESIS_PBWPROJECTFT_H
30 #define SYNTHESIS_PBWPROJECTFT_H
31 
33 #include <casa/Arrays/Matrix.h>
35 #include <msvis/MSVis/VisBuffer.h>
37 #include <casa/Containers/Block.h>
38 #include <casa/Arrays/Array.h>
39 #include <casa/Arrays/Vector.h>
40 #include <casa/Arrays/Matrix.h>
53 
54 //#include <synthesis/MeasurementComponents/EPJones.h>
57 
58 namespace casa { //# NAMESPACE CASA - BEGIN
59 
60  // <summary> An FTMachine for Gridded Fourier transforms including effects of primary beam and pointing offsets and the w-term</summary>
61 
62  // <use visibility=export>
63 
64  // <reviewed reviewer="" date="" tests="" demos="">
65 
66  // <prerequisite>
67  // <li> <linkto class=FTMachine>FTMachine</linkto> module
68  // <li> <linkto class=SkyEquation>SkyEquation</linkto> module
69  // <li> <linkto class=VisBuffer>VisBuffer</linkto> module
70  // <li> <linto class=EPJones>EPJones</linkto> module
71  // </prerequisite>
72  //
73  // <etymology>
74  // FTMachine is a Machine for Fourier Transforms. Like
75  // WProjectFT, nPBWProjectFT does Grid-based Fourier transforms but
76  // also includes the effects of primary beam and antenna pointing
77  // offsets.
78  // </etymology>
79  //
80  // <synopsis>
81  //
82  // The <linkto class=SkyEquation>SkyEquation</linkto> needs to be
83  // able to perform Fourier transforms on visibility
84  // data. nPBWProjectFT allows efficient handling of direction
85  // dependent effects due to the primary beam and antenna pointing
86  // offsets using a <linkto class=VisBuffer>VisBuffer</linkto> which
87  // encapsulates a chunk of visibility (typically all baselines for
88  // one time) together with all the information needed for processing
89  // (e.g. UVW coordinates).
90  //
91  // Using this FTMachine, errors due antenna pointing offsets can be
92  // corrected during deconvolution. One form of antenna pointing
93  // error which is known a-priori is the VLA polarization squint
94  // (about 6% of the Primary beam width at any frequency). For
95  // casacore::Stokes imaging, using this FTMachine, the VLA polarization squint
96  // and beam polarization can also be corrected. Also since the
97  // effects of antenna pointing errors is strongest in the range of
98  // 1-2GHz band (where the sky is not quite empty while the beams are
99  // not too large either), this FTMachine can also be setup to
100  // correct for the w-term.
101  //
102  // Switches are provided in the get() method to compute the
103  // derivatives with respect to the parameters of the primary beam
104  // (only pointing offsets for now). This is used in the pointing
105  // offset solver.
106  //
107  // See the documentation of other FTMachines for details about the
108  // design of the FTMachines in general.
109  //
110  // </synopsis>
111  //
112  // <example>
113  // See the example for <linkto class=SkyModel>SkyModel</linkto>.
114  // </example>
115  //
116  // <motivation>
117  //
118  // Encapsulate the correction of direction dependent effects via
119  // visibility plane convolutions with a potentially different
120  // convolution function for each baseline.
121  //
122  // </motivation>
123  //
124  // <todo asof="2005/07/21">
125  //
126  // <ul> Include the antenna based complex gain term as well since
127  // that can interfere with the effects of pointing offsets.
128  //
129  // <ul> Factor out the actual convolution functions as a separate
130  // class making FTMachines for various direction dependent effects
131  // generic.
132  //
133  // </todo>
134 
135  // class EPJones;
136  class SolvableVisJones;
137  class nPBWProjectFT : public FTMachine {
138  public:
139 
140  // Constructor: cachesize is the size of the cache in words
141  // (e.g. a few million is a good number), tilesize is the
142  // size of the tile used in gridding (cannot be less than
143  // 12, 16 works in most cases).
144  // <group>
146  casacore::Bool applyPointingOffset=true,
147  casacore::Bool doPBCorr=true,
149  casacore::Float paSteps=5.0, casacore::Float pbLimit=5e-2,
150  casacore::Bool usezero=false);
151  // </group>
152 
153  // Construct from a casacore::Record containing the nPBWProjectFT state
154  nPBWProjectFT(const casacore::RecordInterface& stateRec);
155 
156  // Copy constructor
157  nPBWProjectFT(const nPBWProjectFT &other);
158 
159  // Assignment operator
160  nPBWProjectFT &operator=(const nPBWProjectFT &other);
161 
162  ~nPBWProjectFT();
163 
164  // void setEPJones(EPJones* ep_j) {epJ = ep_j;}
165  void setEPJones(SolvableVisJones* ep_j) {epJ = ep_j;}
166 
168  // Initialize transform to Visibility plane using the image
169  // as a template. The image is loaded and Fourier transformed.
170 
172  const VisBuffer& vb);
173  // This version returns the gridded vis...should be used in conjunction
174  // with the version of 'get' that needs the gridded visdata
176  const VisBuffer& vb, casacore::Array<casacore::Complex>& griddedVis,
178 
179  // Finalize transform to Visibility plane: flushes the image
180  // cache and shows statistics if it is being used.
181  virtual void finalizeToVis();
182 
183  // Initialize transform to Sky plane: initializes the image
185  const VisBuffer& vb);
186 
187  // Finalize transform to Sky plane: flushes the image
188  // cache and shows statistics if it is being used. DOES NOT
189  // DO THE FINAL TRANSFORM!
190  virtual void finalizeToSky();
191 
192  virtual void initVisBuffer(VisBuffer& vb, Type whichVBColumn);
193  void initVisBuffer(VisBuffer& vb, Type whichVBColumn, casacore::Int row);
194 
195  // Get actual coherence from grid by degridding
196  void get(VisBuffer& vb, casacore::Int row=-1);
197 
198  // Get the coherence from grid return it in the degrid
199  // is used especially when scratch columns are not
200  // present in ms.
201  void get(VisBuffer& vb, casacore::Cube<casacore::Complex>& degrid,
203  casacore::Int row=-1);
204 
205  void get(VisBuffer& vb, casacore::Cube<casacore::Float>& pointingOffsets, casacore::Int row=-1,
206  Type whichVBColumn=FTMachine::MODEL,casacore::Int Conj=0)
207  {
208  get(vb,vb,vb,pointingOffsets,row,whichVBColumn,whichVBColumn,Conj,0);
209  }
210 
211  void get(VisBuffer& vb, VisBuffer& gradAzVB,VisBuffer& gradElVB,
212  casacore::Cube<casacore::Float>& pointingOffsets,casacore::Int row=-1,
213  Type whichVBColumn=FTMachine::MODEL,
214  Type whichGradVBColumn=FTMachine::MODEL,
215  casacore::Int Conj=0, casacore::Int doGrad=1) ;
216  void nget(VisBuffer& vb,
217  // These offsets should be appropriate for the VB
222  casacore::Int Conj=0, casacore::Int doGrad=1);
223  // Get the coherence from grid return it in the degrid
224  // is used especially when scratch columns are not
225  // present in ms.
226  void get(VisBuffer& vb, casacore::Cube<casacore::Complex>& degrid,
228  casacore::Cube<casacore::Float>& pointingOffsets,casacore::Int row=-1);
229 
230 
231 
232 
233 
234 
235  // Put coherence to grid by gridding.
236  void put(const VisBuffer&,
239  {
240  // throw(casacore::AipsError("nPBWProjectFT::put is not implemented"));
241  }
242  void put(const VisBuffer& vb, casacore::Int row=-1, casacore::Bool dopsf=false,
244 
245  // Make the entire image
247  VisSet& vs,
250 
251  // Get the final image: do the Fourier transform and
252  // grid-correct, then optionally normalize by the summed weights
255  const casacore::Matrix<casacore::Double>& /*sumOfWts*/,
256  casacore::Lattice<casacore::Float>& /*sensitivityImage*/,
257  casacore::Bool /*fftNorm*/)
258  {throw(casacore::AipsError("nPBWProjectFT::normalizeImage() called"));}
259 
260  // Get the final weights image
262 
263  // Save and restore the nPBWProjectFT to and from a record
265  casacore::Bool withImage=false, const casacore::String diskimage="");
267 
268  // Can this FTMachine be represented by Fourier convolutions?
269  casacore::Bool isFourier() {return true;}
270 
271  // casacore::Bool changed(const VisBuffer& vb) {return vpSJ->changed(vb,1);};
272  casacore::Bool changed(const VisBuffer& ) {return false;}
273 
275  casacore::Bool Evaluate=true);
278  casacore::Bool Evaluate=true);
279  virtual casacore::Double getVBPA(const VisBuffer& vb)
280  {
281  // if (!rotateAperture_p) return currentCFPA;
282  // else return getPA(vb);
283  return getPA(vb);
284  };
288  casacore::MEpoch& last);
289  /*
290  void makePB(const VisBuffer& vb,
291  casacore::TempImage<casacore::Float>& PB,
292  casacore::IPosition& shape,casacore::CoordinateSystem& coord);
293 
294  void makeAveragePB(const VisBuffer& vb,
295  const casacore::ImageInterface<casacore::Complex>& image,
296  casacore::Int& polInUse,
297  casacore::TempImage<casacore::Float>& PB,
298  casacore::TempImage<casacore::Float>& avgPB);
299  */
300  //
301  // Make a sensitivity image (sensitivityImage), given the gridded
302  // weights (wtImage). These are related to each other by a
303  // Fourier transform and normalization by the sum-of-weights
304  // (sumWt) and normalization by the product of the 2D FFT size
305  // along each axis. If doFFTNorm=false, normalization by the FFT
306  // size is not done. If sumWt is not provided, normalization by
307  // the sum of weights is also not done.
308  //
312  const casacore::Bool& doFFTNorm=true);
313  virtual casacore::Bool makeAveragePB0(const VisBuffer& vb,
317  /*
318  void makeAveragePB(const VisBuffer& vb,
319  const casacore::ImageInterface<casacore::Complex>& image,
320  casacore::Int& polInUse,
321  casacore::TempImage<casacore::Float>& avgPB);
322  */
324  // casacore::Vector<casacore::Int> makeConjPolMap(const VisBuffer& vb);
326  // void reset() {vpSJ->reset();}
328 
329  void setPAIncrement(const casacore::Quantity &paIncrement);
330 
332  virtual casacore::String name() const { return "PBWProjectFT";};
334  {return verifyShapes(pb.shape(),sky.shape());}
336  {return verifyShapes(pb.shape(),sky.shape());}
342  const casacore::Int nx);
345  casacore::Int op=0,
346  casacore::Bool Square=false);
349  casacore::Int op=0,
350  casacore::Bool Square=false);
352  virtual void setMiscInfo(const casacore::Int qualifier){(void)qualifier;};
353  virtual void ComputeResiduals(VisBuffer&/*vb*/, casacore::Bool /*useCorrected*/) {};
354 
355  protected:
356 
357  // Padding in FFT
359 
361 
362  // Make the PB part of the convolution function
363  casacore::Int makePBPolnCoords(//const casacore::ImageInterface<casacore::Complex>& image,
364  casacore::CoordinateSystem& coord, const VisBuffer& vb);
365  // Locate convolution functions on the disk
368  // Find the convolution function
370  const VisBuffer& vb);
372  const VisBuffer& vb, casacore::Float pa);
373 
375 
376  // Get the appropriate data pointer
378 
379  void ok();
380 
381  void init();
382  // casacore::Int getVisParams();
384  // Is this record on Grid? check both ends. This assumes that the
385  // ends bracket the middle
386  casacore::Bool recordOnGrid(const VisBuffer& vb, casacore::Int rownr) const;
387 
388  // Image cache
390 
391  // Sizes
394 
395  // Gridder
397 
398  // Is this tiled?
400 
401  // casacore::Array lattice
402  //casacore::Lattice<casacore::Complex> * arrayLattice;
404 
405  // Lattice. For non-tiled gridding, this will point to arrayLattice,
406  // whereas for tiled gridding, this points to the image
407  //casacore::Lattice<casacore::Complex>* lattice;
409 
411 
412  // Useful IPositions
414 
415  // Image Scaling and offset
417 
418  // casacore::Array for non-tiled gridding
420 
421  // Pointing columns
423 
424  // Antenna columns
426 
428 
430 
432 
434 
436 
437  // Grid/degrid zero spacing points?
439 
444  //
445  // casacore::Vector to hold the support size info. for the convolution
446  // functions pointed to by the elements of convFunctions_p. The
447  // co-ordinates of this array are (W-term, Poln, PA).
448  //
451  //
452  // Holder for the pointers to the convolution functions. Each
453  // convolution function itself is a complex 3D array (U,V,W) per
454  // PA.
455  //
457  // casacore::Array<casacore::Complex>* convFunc_p;
458 
459  //
460  // The index into the conv. func. cache for the current conv. func.
461  //
463  //
464  // If true, all convolution functions are in the cache.
465  //
467 
469 
471 
473  const casacore::Double& interval);
474 
476  // VPSkyJones *vpSJ;
477  //
478  // The PA averaged (and potentially antenna averaged) PB for
479  // normalization
480  //
482  //
483  // No. of vis. polarization planes used in making the user defined
484  // casacore::Stokes images
485  //
488  //
489  // Percentage of the peak of the PB after which the image is set
490  // to zero.
491  //
493 
494  // EPJones *epJ;
501 
518  // VLACalcIlluminationConvFunc vlaPB;
519  //
520  //----------------------------------------------------------------------
521  //
522  virtual void normalizeAvgPB();
526  //casacore::Cube<casacore::Complex>& gradVisAzData,
527  //casacore::Cube<casacore::Complex>& gradVisElData,
528  //casacore::IPosition& gradS,
538  casacore::Double area,
539  casacore::Int& doGrad,casacore::Int paIndex);
541  const casacore::Complex& visdata_p,
543  //casacore::Cube<casacore::Complex>& gradVisAzData,
544  //casacore::Cube<casacore::Complex>& gradVisElData,
545  //casacore::IPosition& gradS,
548  const casacore::Matrix<casacore::Float>& weight,
552  const VisBuffer& vb,casacore::Int& Nant_p, casacore::Int& scanNo,
557  casacore::Double& area,
558  casacore::Int& doGrad,
559  casacore::Int& doPSF,casacore::Int paIndex);
563  casacore::Cube<casacore::Complex>& gradVisAzData,
564  casacore::Cube<casacore::Complex>& gradVisElData,
565  // casacore::IPosition& gradS,
575  casacore::Double area,
576  casacore::Int& doGrad,
577  casacore::Int paIndex);
578  };
579 
580  //void saveImmage(casacore::TempImage<casacore::Complex>& convFunc, casacore::Int wConvSize);
581 } //# NAMESPACE CASA - END
582 
583 #endif
A Vector of integers, for indexing into Array&lt;T&gt; objects.
Definition: IPosition.h:119
casacore::IPosition offsetLoc
A Measure: astronomical direction.
Definition: MDirection.h:174
casacore::Int npol
Definition: FTMachine.h:445
casacore::Unit Radian
casacore::Bool avgPBReady
int Int
Definition: aipstype.h:50
casacore::Vector< casacore::Int > polMap
Definition: FTMachine.h:448
casacore::Int tilesize
casacore::Int nint(casacore::Double val)
virtual void initializeToSky(casacore::ImageInterface< casacore::Complex > &image, casacore::Matrix< casacore::Float > &weight, const VisBuffer &vb)
Initialize transform to Sky plane: initializes the image.
casacore::Array< casacore::Float > l_offsets
casacore::Int nx
Sizes.
Definition: FTMachine.h:445
casacore::Vector< casacore::Int > & getPolMap()
casacore::Vector< casacore::Double > xyPos
casacore::Bool isFourier()
Can this FTMachine be represented by Fourier convolutions?
casacore::MDirection::Convert * pointingToImage
virtual casacore::Bool makeAveragePB0(const VisBuffer &vb, const casacore::ImageInterface< casacore::Complex > &image, casacore::Int &polInUse, casacore::TempImage< casacore::Float > &avgPB)
casacore::Int lastIndex_p
casacore::Unit Second
casacore::Int PAIndex
casacore::Array&lt;casacore::Complex&gt;* convFunc_p;
virtual casacore::String name() const
Return the name of the machine.
casacore::Bool changed(const VisBuffer &)
casacore::Bool changed(const VisBuffer&amp; vb) {return vpSJ-&gt;changed(vb,1);};
casacore::Double sigma
casacore::Double cfRefFreq_p
casacore::DirectionCoordinate directionCoord
casacore::Int getIndex(const casacore::ROMSPointingColumns &mspc, const casacore::Double &time, const casacore::Double &interval)
virtual Type type()
Return the type enum.
casacore::Array< casacore::Complex > convFunc
casacore::Array< casacore::Complex > griddedData
casacore::Array for non-tiled gridding
casacore::Vector< casacore::Double > uvOffset
casacore::ConvolveGridder< casacore::Double, casacore::Complex > * gridder
Gridder.
casacore::Unit Day
virtual casacore::Bool verifyShapes(casacore::IPosition shape0, casacore::IPosition shape1)
casacore::CoordinateSystem convFuncCS_p
virtual void ComputeResiduals(VisBuffer &, casacore::Bool)
Make the VB and VBStore interefaces for the interim re-factoring work.
ABSTRACT TOOL CLASSES A PlotTool is a higher level event handler for a PlotCanvas The idea is to take common tasks which may require multiple events and put them in one place PlotTools also provide additional functionality in that they can be active and blocking non blocking The PlotCanvas will only send events to active and will not send events to later tools or event handlers if the latest tool was blocking In this way a single tool can be used to handle ALL user interaction via the GUI at one time
Definition: PlotTool.h:43
void makeAntiAliasingCorrection(casacore::Vector< casacore::Complex > &correction, const casacore::Vector< casacore::Complex > &op, const casacore::Int nx)
A class to provide easy read-write access to MSPointing columns.
virtual void initializeToVis(casacore::ImageInterface< casacore::Complex > &image, const VisBuffer &vb)
Initialize transform to Visibility plane using the image as a template.
void makeConvFunction(const casacore::ImageInterface< casacore::Complex > &image, const VisBuffer &vb, casacore::Float pa)
void correctAntiAliasing(casacore::Lattice< casacore::Complex > &cf)
virtual casacore::Bool verifyAvgPB(casacore::ImageInterface< casacore::Float > &pb, casacore::ImageInterface< casacore::Complex > &sky)
void cacheConvFunction(casacore::Int which, casacore::Array< casacore::Complex > &cf, casacore::CoordinateSystem &coord)
void setDOPBCorrection(casacore::Bool doit=true)
casacore::ImageInterface< casacore::Complex > * image
Definition: FTMachine.h:409
casacore::MSAntennaColumns * msac
Antenna columns.
casacore::Int getVisParams(const VisBuffer &vb)
casacore::Int getVisParams();
casacore::MDirection worldPosMeas
LatticeExprNode floor(const LatticeExprNode &expr)
A Measure: instant in time.
Definition: MEpoch.h:104
casacore::Int convSampling
casacore::Vector to hold the support size info.
casacore::Int makePBPolnCoords(casacore::CoordinateSystem &coord, const VisBuffer &vb)
Make the PB part of the convolution function.
Types
Types of known MDirections Warning: The order defines the order in the translation matrix FromTo in ...
Definition: MDirection.h:188
casacore::Vector< casacore::Complex > antiAliasingCorrection
defines physical units
Definition: Unit.h:189
casacore::Long cachesize
Sizes.
void setPAIncrement(const casacore::Quantity &paIncrement)
casacore::Vector< casacore::Float > paList
casacore::Vector< casacore::Complex > antiAliasingOp
void makeImage(FTMachine::Type type, VisSet &vs, casacore::ImageInterface< casacore::Complex > &image, casacore::Matrix< casacore::Float > &weight)
Make the entire image.
casacore::MSPointingColumns * mspc
Pointing columns.
void reset()
void reset() {vpSJ-&gt;reset();}
long Long
Definition: aipstype.h:52
casacore::CountedPtr< casacore::Lattice< casacore::Complex > > arrayLattice
casacore::Array lattice casacore::Lattice&lt;casacore::Complex&gt; * arrayLattice;
casacore::Bool recordOnGrid(const VisBuffer &vb, casacore::Int rownr) const
Is this record on Grid? check both ends.
casacore::PtrBlock< casacore::Array< casacore::Complex > * > convWeightsCache
virtual casacore::Bool verifyAvgPB(casacore::ImageInterface< casacore::Float > &pb, casacore::ImageInterface< casacore::Float > &sky)
virtual void finalizeToSky()
Finalize transform to Sky plane: flushes the image cache and shows statistics if it is being used...
casacore::Int doPointing
LatticeExprNode pa(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds 180/pi*atan2(left,right)/2.
Referenced counted pointer for constant data.
Definition: VisModelData.h:42
casacore::Bool convFuncCacheReady
If true, all convolution functions are in the cache.
virtual IPosition shape() const =0
Return the shape of the Lattice including all degenerate axes (ie.
virtual casacore::Double getVBPA(const VisBuffer &vb)
casacore::Int locateConvFunction(casacore::Int Nw, casacore::Int polInUse, const VisBuffer &vb, casacore::Float &pa)
Locate convolution functions on the disk.
A class to provide easy read-only access to MSPointing columns.
void makeCFPolMap(const VisBuffer &vb, casacore::Vector< casacore::Int > &polM)
casacore::Vector&lt;casacore::Int&gt; makeConjPolMap(const VisBuffer&amp; vb);
Interconvert pixel positions and directions (e.g. RA/DEC).
casacore::Array< casacore::Float > m_offsets
casacore::Int nWPlanes_p
casacore::Int noOfPASteps
casacore::LatticeCache< casacore::Complex > * imageCache
Image cache.
casacore::Vector< casacore::Int > cfStokes
double Double
Definition: aipstype.h:55
casacore::IPosition centerLoc
Useful IPositions.
virtual void reset()
reset to the state which exists just after construction
void makeAntiAliasingOp(casacore::Vector< casacore::Complex > &val, const casacore::Int len)
casacore::Float pbLimit_p
Percentage of the peak of the PB after which the image is set to zero.
casacore::Bool findSupport(casacore::Array< casacore::Complex > &func, casacore::Float &threshold, casacore::Int &origin, casacore::Int &R)
casacore::Int maxConvSupport
void runFortranGetGrad(casacore::Matrix< casacore::Double > &uvw, casacore::Vector< casacore::Double > &dphase, casacore::Cube< casacore::Complex > &visdata, casacore::IPosition &s, casacore::Cube< casacore::Complex > &gradVisAzData, casacore::Cube< casacore::Complex > &gradVisElData, casacore::Int &Conj, casacore::Cube< casacore::Int > &flags, casacore::Vector< casacore::Int > &rowFlags, casacore::Int &rownr, casacore::Vector< casacore::Double > &actualOffset, casacore::Array< casacore::Complex > *dataPtr, casacore::Int &aNx, casacore::Int &aNy, casacore::Int &npol, casacore::Int &nchan, VisBuffer &vb, casacore::Int &Nant_p, casacore::Int &scanNo, casacore::Double &sigma, casacore::Array< casacore::Float > &l_off, casacore::Array< casacore::Float > &m_off, casacore::Double area, casacore::Int &doGrad, casacore::Int paIndex)
casacore::Float padding_p
Padding in FFT.
void nget(VisBuffer &vb, casacore::Array< casacore::Float > &l_off, casacore::Array< casacore::Float > &m_off, casacore::Cube< casacore::Complex > &Mout, casacore::Cube< casacore::Complex > &dMout1, casacore::Cube< casacore::Complex > &dMout2, casacore::Int Conj=0, casacore::Int doGrad=1)
casacore::Float lastPAUsedForWtImg
void makeConjPolMap(const VisBuffer &vb, const casacore::Vector< casacore::Int > cfPolMap, casacore::Vector< casacore::Int > &conjPolMap)
Type
Types of known Images that may be made using the makeImage method.
Definition: FTMachine.h:125
casacore::Double getPA(const VisBuffer &vb)
casacore::Cube< casacore::Int > convSupport
Converts UVW coordinates between coordinate systems.
Definition: UVWMachine.h:160
casacore::Int priorCacheSize
A class to provide easy read-write access to MSAntenna columns.
casacore::Bool pbNormalized
casacore::Vector< casacore::Double > uvScale
Image Scaling and offset.
casacore::Bool toRecord(casacore::String &error, casacore::RecordInterface &outRec, casacore::Bool withImage=false, const casacore::String diskimage="")
Save and restore the nPBWProjectFT to and from a record.
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::Int convSize
casacore::Array< casacore::Complex > * getDataPointer(const casacore::IPosition &, casacore::Bool)
Get the appropriate data pointer.
virtual casacore::Int findPointingOffsets(const VisBuffer &, casacore::Array< casacore::Float > &, casacore::Array< casacore::Float > &, casacore::Bool Evaluate=true)
casacore::Int bandID_p
casacore::Int wConvSize
void findConvFunction(const casacore::ImageInterface< casacore::Complex > &image, const VisBuffer &vb)
Find the convolution function.
casacore::Bool fromRecord(casacore::String &error, const casacore::RecordInterface &inRec)
float Float
Definition: aipstype.h:54
casacore::Int Nant_p
//////////////////////////////////////////////////////////////////////////
Definition: Utils.h:184
An object to manage the caches of pre-computed convolution functions on the disk and in the memory...
Functor to apply complex function conj.
Definition: Functors.h:525
casacore::Matrix< casacore::Double > sumWeight
Sum of weights per polarization and per chan.
Definition: FTMachine.h:442
casacore::Float maxAbsData
casacore::CountedPtr< casacore::Lattice< casacore::Complex > > lattice
Lattice.
A drop-in replacement for Block&lt;T*&gt;.
Definition: WProjectFT.h:54
casacore::Bool usezero_p
Grid/degrid zero spacing points?
virtual Origin origin() const =0
ABSTRACT METHODS //.
virtual void setMiscInfo(const casacore::Int qualifier)
set the order of the Taylor term for MFS this is to tell A-casacore::Projection to qualify the accumu...
casacore::Int polInUse
No.
ParAngleChangeDetector paChangeDetector
void getWeightImage(casacore::ImageInterface< casacore::Float > &, casacore::Matrix< casacore::Float > &)
Get the final weights image.
casacore::Double HPBW
casacore::Double currentCFPA
casacore::Bool resetPBs
casacore::Array< casacore::Complex > convWeights
casacore::PtrBlock< casacore::Array< casacore::Complex > * > convFuncCache
Holder for the pointers to the convolution functions.
Base class for all Casacore library errors.
Definition: Error.h:134
const Double e
e and functions thereof:
void applyAntiAliasingOp(casacore::ImageInterface< casacore::Complex > &cf, casacore::Vector< casacore::IPosition > &offset, casacore::Int op=0, casacore::Bool Square=false)
casacore::Int nchan
Definition: FTMachine.h:445
virtual casacore::ImageInterface< casacore::Complex > & getImage(casacore::Matrix< casacore::Float > &, casacore::Bool normalize=true)
Get the final image: do the Fourier transform and grid-correct, then optionally normalize by the summ...
virtual void runFortranPut(casacore::Matrix< casacore::Double > &uvw, casacore::Vector< casacore::Double > &dphase, const casacore::Complex &visdata_p, casacore::IPosition &s, casacore::Int &Conj, casacore::Cube< casacore::Int > &flags, casacore::Vector< casacore::Int > &rowFlags, const casacore::Matrix< casacore::Float > &weight, casacore::Int &rownr, casacore::Vector< casacore::Double > &actualOffset, casacore::Array< casacore::Complex > &dataPtr, casacore::Int &aNx, casacore::Int &aNy, casacore::Int &npol, casacore::Int &nchan, const VisBuffer &vb, casacore::Int &Nant_p, casacore::Int &scanNo, casacore::Double &sigma, casacore::Array< casacore::Float > &raoffsets, casacore::Array< casacore::Float > &decoffsets, casacore::Matrix< casacore::Double > &sumWeight, casacore::Double &area, casacore::Int &doGrad, casacore::Int &doPSF, casacore::Int paIndex)
casacore::Bool avgPBSaved
SolvableVisJones
casacore::Cube< casacore::Int > convWtSupport
casacore::Bool getXYPos(const VisBuffer &vb, casacore::Int row)
String: the storage and methods of handling collections of characters.
Definition: String.h:223
casacore::TempImage< casacore::Float > avgPB
VPSkyJones *vpSJ;.
nPBWProjectFT & operator=(const nPBWProjectFT &other)
Assignment operator.
casacore::MDirection::Convert makeCoordinateMachine(const VisBuffer &, const casacore::MDirection::Types &, const casacore::MDirection::Types &, casacore::MEpoch &last)
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
void put(const VisBuffer &, casacore::TempImage< casacore::Complex > &, casacore::Vector< casacore::Double > &, int, casacore::UVWMachine *, casacore::Bool)
Put coherence to grid by gridding.
virtual void finalizeToVis()
Finalize transform to Visibility plane: flushes the image cache and shows statistics if it is being u...
Abstract base class for Record classes.
nPBWProjectFT(casacore::Int nFacets, casacore::Long cachesize, casacore::String &cfCacheDirName, casacore::Bool applyPointingOffset=true, casacore::Bool doPBCorr=true, casacore::Int tilesize=16, casacore::Float paSteps=5.0, casacore::Float pbLimit=5e-2, casacore::Bool usezero=false)
Constructor: cachesize is the size of the cache in words (e.g.
casacore::Bool makingPSF
casacore::Vector< casacore::Float > pbPeaks
virtual void runFortranGet(casacore::Matrix< casacore::Double > &uvw, casacore::Vector< casacore::Double > &dphase, casacore::Cube< casacore::Complex > &visdata, casacore::IPosition &s, casacore::Int &Conj, casacore::Cube< casacore::Int > &flags, casacore::Vector< casacore::Int > &rowFlags, casacore::Int &rownr, casacore::Vector< casacore::Double > &actualOffset, casacore::Array< casacore::Complex > *dataPtr, casacore::Int &aNx, casacore::Int &aNy, casacore::Int &npol, casacore::Int &nchan, VisBuffer &vb, casacore::Int &Nant_p, casacore::Int &scanNo, casacore::Double &sigma, casacore::Array< casacore::Float > &raoffsets, casacore::Array< casacore::Float > &decoffsets, casacore::Double area, casacore::Int &doGrad, casacore::Int paIndex)
virtual void makeSensitivityImage(casacore::Lattice< casacore::Complex > &wtImage, casacore::ImageInterface< casacore::Float > &sensitivityImage, const casacore::Matrix< casacore::Float > &sumWt=casacore::Matrix< casacore::Float >(), const casacore::Bool &doFFTNorm=true)
Make a sensitivity image (sensitivityImage), given the gridded weights (wtImage). ...
casacore::Bool isTiled
Is this tiled?
casacore::Vector< casacore::Complex > Area
ConvFuncDiskCache cfCache
virtual void normalizeAvgPB()
VLACalcIlluminationConvFunc vlaPB;.
Interconvert pixel and world coordinates.
SolvableVisJones * epJ
EPJones *epJ;.
casacore::Bool rotateAperture_p
virtual void initVisBuffer(VisBuffer &vb, Type whichVBColumn)
virtual void normalizeImage(casacore::Lattice< casacore::Complex > &, const casacore::Matrix< casacore::Double > &, casacore::Lattice< casacore::Float > &, casacore::Bool)
casacore::Bool doPBCorrection
casacore::Double Diameter_p
void setEPJones(SolvableVisJones *ep_j)
void setEPJones(EPJones* ep_j) {epJ = ep_j;}
defines interface for the Fourier Transform Machine
Definition: FTMachine.h:120