29 #ifndef SYNTHESIS_WONLYPROJECTFT_H
30 #define SYNTHESIS_WONLYPROJECTFT_H
32 #include <synthesis/MeasurementComponents/VLACalcIlluminationConvFunc.h>
33 #include <synthesis/MeasurementComponents/VLAIlluminationConvFunc.h>
35 #include <synthesis/MeasurementComponents/EVLAConvFunc.h>
138 class SolvableVisJones;
casacore::MDirection::Convert * pointingToImage
casacore::DirectionCoordinate directionCoord;
A Vector of integers, for indexing into Array<T> objects.
casacore::Int maxConvSupport
No.
casacore::Vector< casacore::Int > polMap
casacore::Float padding_p
Padding in FFT.
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 normalizeImage(casacore::Lattice< casacore::Complex > &skyImage, const casacore::Matrix< casacore::Double > &sumOfWts, casacore::Lattice< casacore::Float > &sensitivityImage, casacore::Bool fftNorm=true)
Given the sky image (Fourier transform of the visibilities), sum of weights and the sensitivity image...
void findConvFunction(const casacore::ImageInterface< casacore::Complex > &image, const VisBuffer &vb)
Locate convolution functions on the disk casacore::Int locateConvFunction(const casacore::Int Nw...
casacore::CountedPtr< VisibilityResampler > reSampler_p
std::complex< Float > Complex
casacore::Vector< casacore::Double > uvOffset
virtual void initializeToVis(casacore::ImageInterface< casacore::Complex > &image, const VisBuffer &vb)
Initialize transform to Visibility plane.
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 Type type()
Return the type enum.
casacore::Int lastIndex_p
casacore::Array< casacore::Complex > convFunc_p
casacore::CountedPtr<ConvolutionFunction> telescopeConvFunc_p; CFStore cfs_p, cfwts_p; ...
casacore::ConvolveGridder< casacore::Double, casacore::Complex > * gridder
Gridder.
virtual casacore::String name()
casacore::Array< casacore::Complex > * getDataPointer(const casacore::IPosition &, casacore::Bool)
Get the appropriate data pointer.
WOnlyProjectFT(casacore::Int nFacets, casacore::Long cachesize, casacore::CountedPtr< CFCache > &cfcache, casacore::CountedPtr< ConvolutionFunction > &cf, casacore::CountedPtr< VisibilityResampler > &reSampler, casacore::Int tilesize=16, casacore::Float pbLimit=5e-2, casacore::Bool usezero=false)
Constructor: cachesize is the size of the cache in words (e.g.
casacore::LatticeCache< casacore::Complex > * imageCache
Image cache.
casacore::ImageInterface< casacore::Complex > * image
virtual void finalizeToSky()
Finalize transform to Sky plane: flushes the image cache and shows statistics if it is being used...
LatticeExprNode floor(const LatticeExprNode &expr)
WOnlyProjectFT & operator=(const WOnlyProjectFT &other)
Assignment operator.
virtual void finalizeToVis()
Finalize transform to Visibility plane: flushes the image cache and shows statistics if it is being u...
casacore::Bool fromRecord(const casacore::RecordInterface &inRec)
casacore::CountedPtr< casacore::Lattice< casacore::Complex > > lattice
Lattice.
casacore::Bool recordOnGrid(const VisBuffer &vb, casacore::Int rownr) const
virtual void initPolInfo(const VisBuffer& vb); Is this record on Grid? check both ends...
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::Array< casacore::Complex > griddedData
casacore::Array for non-tiled gridding
virtual void initVisBuffer(VisBuffer &vb, Type whichVBColumn)
Referenced counted pointer for constant data.
casacore::Bool toRecord(casacore::RecordInterface &outRec, casacore::Bool withImage=false)
Save and restore the WOnlyProjectFT to and from a record.
void makeImage(FTMachine::Type type, VisSet &vs, casacore::ImageInterface< casacore::Complex > &image, casacore::Matrix< casacore::Float > &weight)
Make the entire image.
Type
Types of known Images that may be made using the makeImage method.
Converts UVW coordinates between coordinate systems.
bool Bool
Define the standard types used by Casacore.
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). ...
Functor to apply complex function conj.
casacore::Matrix< casacore::Double > sumWeight
Sum of weights per polarization and per chan.
casacore::Vector< casacore::Int > & getPolMap()
casacore::Bool isFourier()
Can this FTMachine be represented by Fourier convolutions?
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 casacore::ImageInterface< casacore::Float > & getSensitivityImage()
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...
casacore::Int convSampling
casacore::IPosition centerLoc
Useful IPositions.
virtual casacore::Bool verifyShapes(casacore::IPosition shape0, casacore::IPosition shape1)
const Double e
e and functions thereof:
casacore::Bool usezero_p
Grid/degrid zero spacing points?
casacore::IPosition offsetLoc
casacore::Vector< casacore::Double > uvScale
Image Scaling and offset.
casacore::Float maxAbsData
casacore::Int nint(casacore::Double val)
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)
String: the storage and methods of handling collections of characters.
casacore::Long cachesize
Sizes.
casacore::Int convSize
casacore::Vector to hold the support size info.
VisBuffers encapsulate one chunk of visibility data for processing.
Abstract base class for Record classes.
virtual casacore::Matrix< casacore::Double > & getSumOfWeights()
casacore::Array< casacore::Complex > convWeights_p
casacore::Bool isTiled
Is this tiled?
void put(const VisBuffer &, casacore::TempImage< casacore::Complex > &, casacore::Vector< casacore::Double > &, int, casacore::UVWMachine *, casacore::Bool)
Put coherence to grid by gridding.
casacore::CountedPtr< casacore::Lattice< casacore::Complex > > arrayLattice
casacore::Array lattice
defines interface for the Fourier Transform Machine