casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PBMosaicFT.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_PBMOSAICFT_H
30 #define SYNTHESIS_PBMOSAICFT_H
31 
32 // #include <synthesis/TransformMachines/FTMachine.h>
33 // #include <casa/Arrays/Matrix.h>
34 // #include <scimath/Mathematics/FFTServer.h>
35 // #include <msvis/MSVis/VisBuffer.h>
36 // #include <images/Images/ImageInterface.h>
37 // #include <images/Images/ImageInterface.h>
38 // #include <casa/Containers/Block.h>
39 // #include <casa/Arrays/Array.h>
40 // #include <casa/Arrays/Vector.h>
41 // #include <casa/Arrays/Matrix.h>
42 // #include <scimath/Mathematics/ConvolveGridder.h>
44 
45 namespace casa { //# NAMESPACE CASA - BEGIN
46 
47  class EPJones;
48  // class nPBWProjectFT;
49  class PBMosaicFT : public nPBWProjectFT {
50 
51  public:
52  // Constructor: cachesize is the size of the cache in words
53  // (e.g. a few million is a good number), tilesize is the
54  // size of the tile used in gridding (cannot be less than
55  // 12, 16 works in most cases).
56  // <group>
58  casacore::Int nFacets, casacore::Long cachesize, casacore::String& cfCacheDirName,
59  casacore::Bool applyPointingOffset=true,
60  casacore::Bool doPBCorr=true,
62  casacore::Float paSteps=5.0, casacore::Float pbLimit=5e-2,
63  casacore::Bool usezero=false);
64  // </group>
65 
66  // Construct from a casacore::Record containing the PBMosaicFT state
67  PBMosaicFT(const casacore::RecordInterface& stateRec);
68 
69  // Copy constructor
70  // PBMosaicFT(const PBMosaicFT &other);
71 
72  // Assignment operator
73  PBMosaicFT &operator=(const PBMosaicFT &othher);
74 
76 
84  casacore::Bool Evaluate);
85  void normalizeAvgPB();
88  inline virtual casacore::Float pbFunc(casacore::Float& a) {return (a);};
89  void setObservatoryLocation(const casacore::MPosition& mLocation) {mLocation_p=mLocation;};
90  virtual void finalizeToSky();
92  const VisBuffer& vb);
93  virtual casacore::String name() {return "PBMosaicFT";};
95  {return true;};
96 
97  private:
101  //casacore::Float pbNorm;
105  //casacore::Cube<casacore::Complex>& gradVisAzData,
106  //casacore::Cube<casacore::Complex>& gradVisElData,
107  //casacore::IPosition& gradS,
117  casacore::Double area,
118  casacore::Int& doGrad,casacore::Int paIndex);
120  const casacore::Complex& visdata_p,
122  //casacore::Cube<casacore::Complex>& gradVisAzData,
123  //casacore::Cube<casacore::Complex>& gradVisElData,
124  //casacore::IPosition& gradS,
127  const casacore::Matrix<casacore::Float>& weight,
131  const VisBuffer& vb,casacore::Int& Nant_p, casacore::Int& scanNo,
136  casacore::Double& area,
137  casacore::Int& doGrad,
138  casacore::Int& doPSF,casacore::Int paIndex);
142  casacore::Cube<casacore::Complex>& gradVisAzData,
143  casacore::Cube<casacore::Complex>& gradVisElData,
144  // casacore::IPosition& gradS,
154  casacore::Double area,
155  casacore::Int& doGrad,
156  casacore::Int paIndex);
157 
158  };
159 
160 } //# NAMESPACE CASA - END
161 
162 #endif
A Vector of integers, for indexing into Array&lt;T&gt; objects.
Definition: IPosition.h:119
casacore::Int npol
Definition: FTMachine.h:445
void setObservatoryLocation(const casacore::MPosition &mLocation)
Definition: PBMosaicFT.h:89
A Measure: position on Earth.
Definition: MPosition.h:79
int Int
Definition: aipstype.h:50
casacore::Int tilesize
virtual 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)
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)
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...
void normalizePB(casacore::ImageInterface< casacore::Float > &pb, const casacore::Float &nSamp=1)
casacore::Double sigma
virtual void initializeToSky(casacore::ImageInterface< casacore::Complex > &image, casacore::Matrix< casacore::Float > &weight, const VisBuffer &vb)
Initialize transform to Sky plane: initializes the image.
virtual void finalizeToSky()
Finalize transform to Sky plane: flushes the image cache and shows statistics if it is being used...
casacore::ImageInterface< casacore::Complex > * image
Definition: FTMachine.h:409
class nPBWProjectFT;
Definition: PBMosaicFT.h:49
casacore::Vector< casacore::Int > fieldIds_p
Definition: PBMosaicFT.h:99
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)
casacore::Float pbNorm;
casacore::Long cachesize
Sizes.
casacore::TempImage< casacore::Complex > griddedWeights
Definition: PBMosaicFT.h:100
long Long
Definition: aipstype.h:52
casacore::Bool makeAveragePB0(const VisBuffer &vb, const casacore::ImageInterface< casacore::Complex > &image, casacore::Int &polInUse, casacore::TempImage< casacore::Float > &avgPB)
casacore::Complex nApertures
Definition: PBMosaicFT.h:95
virtual casacore::String name()
Definition: PBMosaicFT.h:93
double Double
Definition: aipstype.h:55
void normalizeAvgPB()
VLACalcIlluminationConvFunc vlaPB;.
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
float Float
Definition: aipstype.h:54
casacore::Int Nant_p
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
A Table intended to hold astronomical data (a set of Measurements).
casacore::Int polInUse
No.
const Double e
e and functions thereof:
casacore::Int nchan
Definition: FTMachine.h:445
String: the storage and methods of handling collections of characters.
Definition: String.h:223
casacore::TempImage< casacore::Float > avgPB
VPSkyJones *vpSJ;.
PBMosaicFT(casacore::MeasurementSet &ms, 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.
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
Abstract base class for Record classes.
PBMosaicFT & operator=(const PBMosaicFT &othher)
Copy constructor PBMosaicFT(const PBMosaicFT &amp;other);.
casacore::Int findPointingOffsets(const VisBuffer &vb, casacore::Array< casacore::Float > &l_off, casacore::Array< casacore::Float > &m_off, casacore::Bool Evaluate)
casacore::MPosition mLocation_p
Default Position used for phase rotations.
Definition: FTMachine.h:455
virtual casacore::Bool verifyShapes(casacore::IPosition, casacore::IPosition)
Definition: PBMosaicFT.h:94
virtual casacore::Float pbFunc(casacore::Float &a)
Definition: PBMosaicFT.h:88