casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
casa::refim::MultiTermFTNew Class Reference

#include <MultiTermFTNew.h>

Inheritance diagram for casa::refim::MultiTermFTNew:
casa::refim::FTMachine

Public Member Functions

 MultiTermFTNew (casacore::CountedPtr< FTMachine > &subftm, casacore::Int nterms=1, casacore::Bool forward=false)
 Construct using an existing FT-Machine. More...
 
 MultiTermFTNew (const casacore::RecordInterface &stateRec)
 Construct from a casacore::Record containing the MultiTermFTNew state. More...
 
 MultiTermFTNew (const MultiTermFTNew &other)
 Copy constructor. More...
 
MultiTermFTNewoperator= (const MultiTermFTNew &other)
 Assignment operator — leave it as the default. More...
 
 ~MultiTermFTNew ()
 Destructor. More...
 
void initializeToVis (casacore::ImageInterface< casacore::Complex > &, const vi::VisBuffer2 &)
 Called at the start of de-gridding : subftm->initializeToVis() Note : Pre-de-gridding model-image divisions by PBs will go here. More...
 
virtual void initializeToVisNew (const vi::VisBuffer2 &vb, casacore::CountedPtr< SIImageStore > imstore)
 Vectorized InitializeToVis void initializeToVis(casacore::Block<casacore::CountedPtr<casacore::ImageInterface<casacore::Complex> > > & compImageVec,casacore::PtrBlock<casacore::SubImage<casacore::Float> *> & modelImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *>& weightImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *>& fluxScaleVec, casacore::Block<casacore::Matrix<casacore::Float> >& weightsVec, const VisBuffer& vb);. More...
 
void finalizeToVis ()
 Called at the end of de-gridding : subftm->finalizeToVis() More...
 
void initializeToSky (casacore::ImageInterface< casacore::Complex > &, casacore::Matrix< casacore::Float > &, const vi::VisBuffer2 &)
 Called at the start of gridding : subftm->initializeToSky() More...
 
virtual void initializeToSkyNew (const casacore::Bool dopsf, const vi::VisBuffer2 &vb, casacore::CountedPtr< SIImageStore > imstore)
 void initializeToSky(casacore::Block<casacore::CountedPtr<casacore::ImageInterface<casacore::Complex> > > & compImageVec, casacore::Block<casacore::Matrix<casacore::Float> >& weightsVec, const VisBuffer& vb, const casacore::Bool dopsf); More...
 
virtual void initBriggsWeightor (vi::VisibilityIterator2 &vi)
 

This function has to be called after initMaps to initialize Briggs Cube weighting scheme More...

 
void finalizeToSky ()
 Called at the end of gridding : subftm->finalizeToSky() More...
 
virtual void finalizeToSkyNew (casacore::Bool dopsf, const vi::VisBuffer2 &vb, casacore::CountedPtr< SIImageStore > imstore)
 void finalizeToSky(casacore::Block<casacore::CountedPtr<casacore::ImageInterface<casacore::Complex> > > & compImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *> & resImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *>& weightImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *>& fluxScaleVec, casacore::Bool dopsf, casacore::Block<casacore::Matrix<casacore::Float> >& weightsVec, const VisBuffer& vb); More...
 
void get (vi::VisBuffer2 &vb, casacore::Int row=-1)
 void normalizeToSky(casacore::ImageInterface<casacore::Complex>& compImage, casacore::ImageInterface<casacore::Float>& resImage, casacore::ImageInterface<casacore::Float>& weightImage, casacore::Bool dopsf, casacore::Matrix<casacore::Float>& weights) {throw(casacore::AipsError("MultiTermFTNew::normalizeToSky should not get called !"));}; More...
 
void put (vi::VisBuffer2 &vb, casacore::Int row=-1, casacore::Bool dopsf=false, refim::FTMachine::Type type=refim::FTMachine::OBSERVED)
 Modify imaging weights with Taylor-weights and do gridding via subftm->put() More...
 
void put (const vi::VisBuffer2 &, casacore::Int, casacore::Bool, refim::FTMachine::Type)
 Have a const version for compatibility with other FTMs. More...
 
virtual void ComputeResiduals (vi::VisBuffer2 &vb, casacore::Bool useCorrected)
 Calculate residual visibilities if possible. More...
 
void makeImage (refim::FTMachine::Type type, vi::VisibilityIterator2 &vs, casacore::ImageInterface< casacore::Complex > &image, casacore::Matrix< casacore::Float > &weight)
 Make an image : subftm->makeImage() More...
 
Make the multi term images void makeMTImages (refim::FTMachine::Type type, vi::VisibilityIterator2 &vi, casacore::Vector< casacore::CountedPtr< casacore::ImageInterface< casacore::Complex > > > &image, casacore::Vector< casacore::CountedPtr< casacore::Matrix< casacore::Float > > > &weight)
 
casacore::ImageInterface
< casacore::Complex > & 
getImage (casacore::Matrix< casacore::Float > &, casacore::Bool=true)
 Get the final image: do the Fourier transform grid-correct, then optionally normalize by the summed weights Note : Post-gridding residual-image divisions by PBs will go here. More...
 
virtual casacore::Bool useWeightImage ()
 All FTMachines that fill weightimage, need to set this. More...
 
void getWeightImage (casacore::ImageInterface< casacore::Float > &weightImage, casacore::Matrix< casacore::Float > &weights)
 Get the final weights image. More...
 
virtual casacore::Bool toRecord (casacore::String &error, casacore::RecordInterface &outRec, casacore::Bool withImage=false, const casacore::String diskimage="")
 {throw(casacore::AipsError("MultiTermFTNew::getWeightImage() should not be called"));} More...
 
virtual casacore::Bool fromRecord (casacore::String &error, const casacore::RecordInterface &inRec)
 
virtual casacore::Bool isFourier ()
 Various small inline functions. More...
 
virtual void setNoPadding (casacore::Bool nopad)
 To make sure no padding is used in certain gridders. More...
 
virtual casacore::String name () const
 Return the name of the machine. More...
 
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 accumulated avgPB for each Taylor term in the CFCache. More...
 
void printFTTypes ()
 
FTMachinecloneFTM ()
 clone copy should make it pure virtual forcing every ftm to have a cloner More...
 
virtual void setDryRun (casacore::Bool val)
 
virtual casacore::Bool isUsingCFCache ()
 
virtual const
casacore::CountedPtr
< refim::FTMachine > & 
getFTM2 (const casacore::Bool)
 
virtual void setCFCache (casacore::CountedPtr< CFCache > &cfc, const casacore::Bool resetCFC=true)
 
virtual casacore::Int nTerms ()
 return number of terms More...
 
virtual casacore::Int psfNTerms ()
 
virtual void setMovingSource (const casacore::String &sourcename, const casacore::String &ephemtable="")
 set a moving source aka planets or comets => adjust phase center on the fly for gridding More...
 
virtual void setMovingSource (const casacore::MDirection &mdir)
 
virtual void setLocation (const casacore::MPosition &loc)
 set and get the location used for frame More...
 
virtual casacore::Long estimateRAM (const casacore::CountedPtr< SIImageStore > &imstore)
 estimate of memory necessary in kB More...
 
- Public Member Functions inherited from casa::refim::FTMachine
 FTMachine ()
 
 FTMachine (casacore::CountedPtr< CFCache > &cfcache, casacore::CountedPtr< ConvolutionFunction > &cfctor)
 
 FTMachine (const FTMachine &other)
 
FTMachineoperator= (const FTMachine &other)
 
void setBasePrivates (const FTMachine &other)
 
virtual ~FTMachine ()
 
virtual void finalizeToSky (casacore::ImageInterface< casacore::Complex > &iimage)
 
virtual void correlationToStokes (casacore::ImageInterface< casacore::Complex > &compImage, casacore::ImageInterface< casacore::Float > &resImage, const casacore::Bool dopsf)
 
More...
 
virtual void stokesToCorrelation (casacore::ImageInterface< casacore::Float > &modelImage, casacore::ImageInterface< casacore::Complex > &compImage)
 
virtual void normalizeImage (casacore::Lattice< casacore::Complex > &, const casacore::Matrix< casacore::Double > &, casacore::Lattice< casacore::Float > &, casacore::Bool)
 
virtual void normalizeImage (casacore::ImageInterface< casacore::Float > &skyImage, casacore::Matrix< casacore::Float > &sumOfWts, casacore::ImageInterface< casacore::Float > &sensitivityImage, casacore::Bool dopsf, casacore::Float pblimit, casacore::Int normtype)
 
virtual casacore::Bool isSkyJonesSet ()
 
virtual casacore::Bool isSkyJonesChanged (vi::VisBuffer2 &vb, casacore::Int row)
 
virtual void setSkyJones (casacore::Vector< casacore::CountedPtr< SkyJones > > &sj)
 Set SkyJones if image domain corrections /applycation are needed To reset the the FTMachine for stopping image based correction/applycation set in a casacore::Vector of size 0. More...
 
casacore::Bool changedSkyJonesLogic (const vi::VisBuffer2 &vb, casacore::Bool &firstRow, casacore::Bool &internalRow)
 
template<typename T >
void getGrid (casacore::Array< T > &thegrid)
 
More...
 
virtual const
casacore::CountedPtr
< refim::ConvolutionFunction > & 
getAWConvFunc ()
 
virtual void findConvFunction (const casacore::ImageInterface< casacore::Complex > &, const vi::VisBuffer2 &)
 
virtual void getFluxImage (casacore::ImageInterface< casacore::Float > &image)
 Get a flux (divide by this to get a flux density correct image) image if there is one. More...
 
void rotateUVW (casacore::Matrix< casacore::Double > &uvw, casacore::Vector< casacore::Double > &dphase, const vi::VisBuffer2 &vb)
 
More...
 
void girarUVW (casacore::Matrix< casacore::Double > &uvw, casacore::Vector< casacore::Double > &dphase, const vi::VisBuffer2 &vb)
 rotate with facetting style rephasing..for multifield mosaic More...
 
void refocus (casacore::Matrix< casacore::Double > &uvw, const casacore::Vector< casacore::Int > &ant1, const casacore::Vector< casacore::Int > &ant2, casacore::Vector< casacore::Double > &dphase, const vi::VisBuffer2 &vb)
 Refocus on a finite distance. More...
 
virtual casacore::Bool changed (const vi::VisBuffer2 &vb)
 Has this operator changed since the last application? More...
 
casacore::Bool setFrameValidity (casacore::Bool validFrame)
 set otf spectral frame transform is on or off; More...
 
virtual casacore::Bool doublePrecGrid ()
 return whether the ftmachine is using a double precision grid More...
 
virtual casacore::MPositiongetLocation ()
 
virtual void reset ()
 reset stuff in an FTMachine More...
 
virtual void setFreqInterpolation (const casacore::String &method)
 set frequency interpolation type More...
 
virtual void setFreqInterpolation (const casacore::InterpolateArray1D< casacore::Double, casacore::Complex >::InterpolationMethod type)
 
virtual void setPointingDirColumn (const casacore::String &column="DIRECTION")
 tell ftmachine which Pointing table column to use for Direction Mosaic or Single dish ft use this for example More...
 
virtual casacore::String getPointingDirColumnInUse ()
 
virtual void setSpwChanSelection (const casacore::Cube< casacore::Int > &spwchansels)
 
virtual void setSpwFreqSelection (const casacore::Matrix< casacore::Double > &spwfreqs)
 
virtual void setCanComputeResiduals (casacore::Bool &b)
 
virtual casacore::Bool canComputeResiduals ()
 
virtual casacore::Float getPBLimit ()
 
void setnumthreads (casacore::Int n)
 virtual void ComputeResiduals(VBStore& vb)=0; get and set numthreads More...
 
casacore::Int getnumthreads ()
 
casacore::CountedPtr< CFCachegetCFCache ()
 
casacore::String getCacheDir ()
 
virtual casacore::Bool dryRun ()
 
void setPseudoIStokes (casacore::Bool pseudoI)
 
void setPhaseCenterTime (const casacore::Double time)
 set and get Time to calculate phasecenter -1.0 means using the time available at each iteration..this is used when the phasecenter in the field table is either a polynomial or has a ephemerides tables associated with it Using double in the units and epoch-frame of the ms(s)..caller is responsible for conversion More...
 
casacore::Double getPhaseCenterTime ()
 
casacore::Vector< casacore::IntchannelMap (const vi::VisBuffer2 &vb)
 
casacore::Matrix
< casacore::Double
getSumWeights ()
 
void setBriggsCubeWeight (casacore::CountedPtr< refim::BriggsCubeWeightor > bwght)
 Functions associated with Briggs weighting for cubes. More...
 
void getImagingWeight (casacore::Matrix< casacore::Float > &imwght, const vi::VisBuffer2 &vb)
 

Protected Member Functions

virtual void initMaps (const vi::VisBuffer2 &vb)
 have to call the initmaps of subftm More...
 
casacore::CountedPtr< FTMachinegetNewFTM (const casacore::CountedPtr< FTMachine > &ftm)
 Instantiate a new sub FTM. More...
 
casacore::Bool modifyVisWeights (vi::VisBuffer2 &vb, casacore::uInt thisterm)
 Multiply Imaging weights by Taylor-function weights - during "put". More...
 
casacore::Bool modifyModelVis (vi::VisBuffer2 &vb, casacore::uInt thisterm)
 Multiply model visibilities by Taylor-function weights - during "get". More...
 
void restoreImagingWeights (vi::VisBuffer2 &vb)
 Restore vb.imagingweights to the original. More...
 
casacore::Bool storeAsImg (casacore::String fileName, casacore::ImageInterface< casacore::Float > &theImg)
 Helper function to write ImageInterfaces to disk. More...
 
- Protected Member Functions inherited from casa::refim::FTMachine
casacore::LogIOlogIO ()
 
virtual void initPolInfo (const vi::VisBuffer2 &vb)
 
virtual void ok ()
 
virtual void gridOk (casacore::Int gridsupport)
 check if image is big enough for gridding More...
 
casacore::Bool matchChannel (const casacore::Int &spw, const VisBuffer &vb)
 
casacore::Bool matchChannel (const vi::VisBuffer2 &vb)
 
casacore::Bool matchAllSpwChans (const VisBuffer &vb)
 redo all spw chan match especially if ms has changed underneath More...
 
virtual casacore::Bool interpolateFrequencyTogrid (const vi::VisBuffer2 &vb, const casacore::Matrix< casacore::Float > &wt, casacore::Cube< casacore::Complex > &data, casacore::Cube< casacore::Int > &flag, casacore::Matrix< casacore::Float > &weight, FTMachine::Type type=FTMachine::OBSERVED)
 casacore::Bool matchAllSpwChans(const vi::VisBuffer2& vb); interpolate visibility data of vb to grid frequency definition flag will be set the one as described in interpolateArray1D return false if no interpolation is done...for e.g for nearest case More...
 
virtual casacore::Bool interpolateFrequencyFromgrid (vi::VisBuffer2 &vb, casacore::Cube< casacore::Complex > &data, FTMachine::Type type=FTMachine::MODEL)
 degridded data interpolated back onto visibilities More...
 
virtual void getInterpolateArrays (const vi::VisBuffer2 &vb, casacore::Cube< casacore::Complex > &data, casacore::Cube< casacore::Int > &flag)
 Interpolate visibilities to be degridded upon. More...
 
void setSpectralFlag (const vi::VisBuffer2 &vb, casacore::Cube< casacore::Bool > &modflagcube)
 
casacore::Bool storeMovingSourceState (casacore::String &error, casacore::RecordInterface &outRecord)
 Save/Recover some elements of state of ftmachine in/from record. More...
 
casacore::Bool saveMeasure (casacore::RecordInterface &rec, const casacore::String &name, casacore::String &error, const casacore::Measure &ms)
 helper to save Measures in a record More...
 
casacore::Bool recoverMovingSourceState (casacore::String &error, const casacore::RecordInterface &inRecord)
 
casacore::Matrix
< casacore::Double
negateUV (const vi::VisBuffer2 &vb)
 
virtual void findGridSector (const casacore::Int &nxp, const casacore::Int &nyp, const casacore::Int &ixsub, const casacore::Int &iysub, const casacore::Int &minx, const casacore::Int &miny, const casacore::Int &icounter, casacore::Int &x0, casacore::Int &y0, casacore::Int &nxsub, casacore::Int &nysub, const casacore::Bool linear)
 
virtual void tweakGridSector (const casacore::Int &nx, const casacore::Int &ny, const casacore::Int &ixsub, const casacore::Int &iysub)
 
void initSourceFreqConv ()
 
void shiftFreqToSource (casacore::Vector< casacore::Double > &freqs)
 

Protected Attributes

casacore::Cube< casacore::Complex > modviscube_p
 
New MTFT specific internal
parameters and functions
*casacore::uInt 
nterms_p
 
New MTFT specific internal
parameters and functions
*casacore::uInt 
psfnterms_p
 
casacore::Double reffreq_p
 
casacore::Matrix< casacore::Floatimweights_p
 
casacore::String machineName_p
 
casacore::Block
< casacore::CountedPtr
< FTMachine > > 
subftms_p
 casacore::Bool donePSF_p; More...
 
- Protected Attributes inherited from casa::refim::FTMachine
casacore::LogIO logIO_p
 
casacore::ImageInterface
< casacore::Complex > * 
image
 
casacore::UVWMachineuvwMachine_p
 
casacore::CountedPtr
< casacore::UVWMachine
phaseShifter_p
 
casacore::MeasFrame mFrame_p
 
casacore::Bool tangentSpecified_p
 Direction of desired tangent plane. More...
 
casacore::MDirection mTangent_p
 
casacore::MDirection mImage_p
 
casacore::MDirection movingDir_p
 moving source stuff More...
 
casacore::Bool fixMovingSource_p
 
casacore::String ephemTableName_p
 
casacore::MDirection firstMovingDir_p
 
casacore::MVDirection movingDirShift_p
 This will hold the angular difference between movingDir and firstMovingDir with the frame conversion done properly etc. More...
 
casacore::Double distance_p
 
casacore::uInt nAntenna_p
 
casacore::Int lastFieldId_p
 
casacore::Int lastMSId_p
 
casacore::CountedPtr
< casacore::ROMSColumns
romscol_p
 
casacore::Bool useDoubleGrid_p
 Use douple precision grid in gridding process. More...
 
casacore::Matrix
< casacore::Double
sumWeight
 Sum of weights per polarization and per chan. More...
 
casacore::Matrix
< casacore::Double
sumCFWeight
 
casacore::Int nx
 Sizes. More...
 
casacore::Int ny
 
casacore::Int npol
 
casacore::Int nchan
 
casacore::Int nvischan
 
casacore::Int nvispol
 
casacore::Vector< casacore::IntchanMap
 Maps of channels and polarization. More...
 
casacore::Vector< casacore::IntpolMap
 
casacore::Bool isPseudoI_p
 Stokes pseudo I only? single parallel flagged will be allowed. More...
 
casacore::MPosition mLocation_p
 Default Position used for phase rotations. More...
 
casacore::Bool doUVWRotation_p
 Set if uvwrotation is necessary. More...
 
casacore::Vector< casacore::IntnVisChan_p
 
setup multiple spectral window for cubes

casacore::Block <casacore::Vector <casacore::Int> > multiChanMap_p; casacore::Vector<casacore::Int> selectedSpw_p; More...

 
casacore::SpectralCoordinate spectralCoord_p
 Private variables needed for spectral frame conversion. More...
 
casacore::Bool freqFrameValid_p
 casacore::Vector<casacore::Bool> doConversion_p; More...
 
casacore::Vector
< casacore::Double
imageFreq_p
 
casacore::Vector
< casacore::Double
lsrFreq_p
 casacore::Vector of float lsrfreq needed for regridding More...
 
casacore::Vector
< casacore::Double
interpVisFreq_p
 
casacore::InterpolateArray1D
< casacore::Double,
casacore::Complex >
::InterpolationMethod 
freqInterpMethod_p
 
casacore::String pointingDirCol_p
 
casacore::Cube< casacore::IntspwChanSelFlag_p
 
casacore::Matrix
< casacore::Double
spwFreqSel_p
 
casacore::Matrix
< casacore::Double
expandedSpwFreqSel_p
 
casacore::Matrix
< casacore::Double
expandedSpwConjFreqSel_p
 
casacore::Vector< casacore::IntcfStokes_p
 
casacore::Int polInUse_p
 
casacore::CountedPtr< CFCachecfCache_p
 
CFStore cfs_p
 
CFStore cfwts_p
 
casacore::CountedPtr< CFStore2cfs2_p
 
casacore::CountedPtr< CFStore2cfwts2_p
 
casacore::CountedPtr
< ConvolutionFunction
convFuncCtor_p
 
casacore::CountedPtr
< PolOuterProduct
pop_p
 
casacore::Bool canComputeResiduals_p
 
casacore::Bool toVis_p
 
casacore::Int numthreads_p
 
casacore::Array
< casacore::Complex > 
griddedData
 casacore::Array for non-tiled gridding These are common to most FTmachines More...
 
casacore::Array
< casacore::DComplex > 
griddedData2
 
casacore::Float pbLimit_p
 
casacore::Vector
< casacore::CountedPtr
< SkyJones > > 
sj_p
 casacore::Vector<SkyJones *> sj_p; More...
 
casacore::CountedPtr
< casacore::ImageInterface
< casacore::Complex > > 
cmplxImage_p
 A holder for the complex image if nobody else is keeping it. More...
 
casacore::CountedPtr
< VisBufferUtil
vbutil_p
 
casacore::Double phaseCenterTime_p
 
casacore::Int doneThreadPartition_p
 Some parameters and helpers for multithreaded gridders. More...
 
casacore::Vector< casacore::Intxsect_p
 
casacore::Vector< casacore::Intysect_p
 
casacore::Vector< casacore::Intnxsect_p
 
casacore::Vector< casacore::Intnysect_p
 
casacore::CountedPtr
< refim::BriggsCubeWeightor
briggsWeightor_p
 
casacore::MRadialVelocity::Convert obsvelconv_p
 moving source spectral frame stuff More...
 
casacore::MeasTable::Types mtype_p
 
FFT2D ft_p
 

Additional Inherited Members

- Public Types inherited from casa::refim::FTMachine
enum  Type {
  OBSERVED,
  MODEL,
  CORRECTED,
  RESIDUAL,
  PSF,
  COVERAGE,
  N_types,
  DEFAULT
}
 Types of known Images that may be made using the makeImage method. More...
 
- Static Public Member Functions inherited from casa::refim::FTMachine
static void locateuvw (const casacore::Double *&uvw, const casacore::Double *&dphase, const casacore::Double *&freq, const casacore::Int &nchan, const casacore::Double *&scale, const casacore::Double *&offset, const casacore::Int &sampling, casacore::Int *&loc, casacore::Int *&off, casacore::Complex *&phasor, const casacore::Int &row, const casacore::Bool &doW=false)
 helper function for openmp to call...no private dependency More...
 
- Public Attributes inherited from casa::refim::FTMachine
casacore::Bool isDryRun
 

Detailed Description

Definition at line 60 of file MultiTermFTNew.h.

Constructor & Destructor Documentation

casa::refim::MultiTermFTNew::MultiTermFTNew ( casacore::CountedPtr< FTMachine > &  subftm,
casacore::Int  nterms = 1,
casacore::Bool  forward = false 
)

Construct using an existing FT-Machine.

casa::refim::MultiTermFTNew::MultiTermFTNew ( const casacore::RecordInterface stateRec)

Construct from a casacore::Record containing the MultiTermFTNew state.

casa::refim::MultiTermFTNew::MultiTermFTNew ( const MultiTermFTNew other)

Copy constructor.

This first calls the default "=" operator, and then instantiates objects for member pointers.

casa::refim::MultiTermFTNew::~MultiTermFTNew ( )

Destructor.

Member Function Documentation

FTMachine* casa::refim::MultiTermFTNew::cloneFTM ( )
virtual

clone copy should make it pure virtual forcing every ftm to have a cloner

Reimplemented from casa::refim::FTMachine.

virtual void casa::refim::MultiTermFTNew::ComputeResiduals ( vi::VisBuffer2 vb,
casacore::Bool  useCorrected 
)
virtual

Calculate residual visibilities if possible.

The purpose is to allow rGridFT to make this multi-threaded

Implements casa::refim::FTMachine.

virtual casacore::Long casa::refim::MultiTermFTNew::estimateRAM ( const casacore::CountedPtr< SIImageStore > &  imstore)
virtual

estimate of memory necessary in kB

Reimplemented from casa::refim::FTMachine.

void casa::refim::MultiTermFTNew::finalizeToSky ( )
inlinevirtual

Called at the end of gridding : subftm->finalizeToSky()

Implements casa::refim::FTMachine.

Definition at line 104 of file MultiTermFTNew.h.

virtual void casa::refim::MultiTermFTNew::finalizeToSkyNew ( casacore::Bool  dopsf,
const vi::VisBuffer2 vb,
casacore::CountedPtr< SIImageStore imstore 
)
virtual

void finalizeToSky(casacore::Block<casacore::CountedPtr<casacore::ImageInterface<casacore::Complex> > > & compImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *> & resImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *>& weightImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *>& fluxScaleVec, casacore::Bool dopsf, casacore::Block<casacore::Matrix<casacore::Float> >& weightsVec, const VisBuffer& vb);

Reimplemented from casa::refim::FTMachine.

void casa::refim::MultiTermFTNew::finalizeToVis ( )
virtual

Called at the end of de-gridding : subftm->finalizeToVis()

Implements casa::refim::FTMachine.

virtual casacore::Bool casa::refim::MultiTermFTNew::fromRecord ( casacore::String error,
const casacore::RecordInterface inRec 
)
virtual

Reimplemented from casa::refim::FTMachine.

void casa::refim::MultiTermFTNew::get ( vi::VisBuffer2 vb,
casacore::Int  row = -1 
)
virtual

void normalizeToSky(casacore::ImageInterface<casacore::Complex>& compImage, casacore::ImageInterface<casacore::Float>& resImage, casacore::ImageInterface<casacore::Float>& weightImage, casacore::Bool dopsf, casacore::Matrix<casacore::Float>& weights) {throw(casacore::AipsError("MultiTermFTNew::normalizeToSky should not get called !"));};

Do the degridding via subftm->get() and modify model-visibilities by Taylor-weights

Implements casa::refim::FTMachine.

virtual const casacore::CountedPtr<refim::FTMachine>& casa::refim::MultiTermFTNew::getFTM2 ( const casacore::Bool  )
inlinevirtual

Reimplemented from casa::refim::FTMachine.

Definition at line 187 of file MultiTermFTNew.h.

References subftms_p.

casacore::ImageInterface<casacore::Complex>& casa::refim::MultiTermFTNew::getImage ( casacore::Matrix< casacore::Float > &  ,
casacore::Bool  = true 
)
inlinevirtual

Get the final image: do the Fourier transform grid-correct, then optionally normalize by the summed weights Note : Post-gridding residual-image divisions by PBs will go here.

For now, it just calls subftm->getImage() casacore::ImageInterface<casacore::Complex>& getImage(casacore::Matrix<casacore::Float>& weights, casacore::Bool normalize=true) {return getImage(weights,normalize,0);}; casacore::ImageInterface<casacore::Complex>& getImage(casacore::Matrix<casacore::Float>& weights, casacore::Bool normalize=true, const casacore::Int taylorindex=0);

Implements casa::refim::FTMachine.

Definition at line 148 of file MultiTermFTNew.h.

casacore::CountedPtr<FTMachine> casa::refim::MultiTermFTNew::getNewFTM ( const casacore::CountedPtr< FTMachine > &  ftm)
protected

Instantiate a new sub FTM.

void casa::refim::MultiTermFTNew::getWeightImage ( casacore::ImageInterface< casacore::Float > &  weightImage,
casacore::Matrix< casacore::Float > &  weights 
)
inlinevirtual

Get the final weights image.

Implements casa::refim::FTMachine.

Definition at line 154 of file MultiTermFTNew.h.

References AlwaysAssert, and subftms_p.

virtual void casa::refim::MultiTermFTNew::initBriggsWeightor ( vi::VisibilityIterator2 vi)
virtual


This function has to be called after initMaps to initialize Briggs Cube weighting scheme

Reimplemented from casa::refim::FTMachine.

void casa::refim::MultiTermFTNew::initializeToSky ( casacore::ImageInterface< casacore::Complex > &  ,
casacore::Matrix< casacore::Float > &  ,
const vi::VisBuffer2  
)
inlinevirtual

Called at the start of gridding : subftm->initializeToSky()

Implements casa::refim::FTMachine.

Definition at line 94 of file MultiTermFTNew.h.

virtual void casa::refim::MultiTermFTNew::initializeToSkyNew ( const casacore::Bool  dopsf,
const vi::VisBuffer2 vb,
casacore::CountedPtr< SIImageStore imstore 
)
virtual

void initializeToSky(casacore::Block<casacore::CountedPtr<casacore::ImageInterface<casacore::Complex> > > & compImageVec, casacore::Block<casacore::Matrix<casacore::Float> >& weightsVec, const VisBuffer& vb, const casacore::Bool dopsf);

Reimplemented from casa::refim::FTMachine.

void casa::refim::MultiTermFTNew::initializeToVis ( casacore::ImageInterface< casacore::Complex > &  ,
const vi::VisBuffer2  
)
inlinevirtual

Called at the start of de-gridding : subftm->initializeToVis() Note : Pre-de-gridding model-image divisions by PBs will go here.

Implements casa::refim::FTMachine.

Definition at line 82 of file MultiTermFTNew.h.

virtual void casa::refim::MultiTermFTNew::initializeToVisNew ( const vi::VisBuffer2 vb,
casacore::CountedPtr< SIImageStore imstore 
)
virtual

Vectorized InitializeToVis void initializeToVis(casacore::Block<casacore::CountedPtr<casacore::ImageInterface<casacore::Complex> > > & compImageVec,casacore::PtrBlock<casacore::SubImage<casacore::Float> *> & modelImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *>& weightImageVec, casacore::PtrBlock<casacore::SubImage<casacore::Float> *>& fluxScaleVec, casacore::Block<casacore::Matrix<casacore::Float> >& weightsVec, const VisBuffer& vb);.

Reimplemented from casa::refim::FTMachine.

virtual void casa::refim::MultiTermFTNew::initMaps ( const vi::VisBuffer2 vb)
protectedvirtual

have to call the initmaps of subftm

Reimplemented from casa::refim::FTMachine.

virtual casacore::Bool casa::refim::MultiTermFTNew::isFourier ( )
inlinevirtual

Various small inline functions.

Reimplemented from casa::refim::FTMachine.

Definition at line 165 of file MultiTermFTNew.h.

virtual casacore::Bool casa::refim::MultiTermFTNew::isUsingCFCache ( )
inlinevirtual

Reimplemented from casa::refim::FTMachine.

Definition at line 186 of file MultiTermFTNew.h.

References isUsingCFCache(), and subftms_p.

Referenced by isUsingCFCache().

void casa::refim::MultiTermFTNew::makeImage ( refim::FTMachine::Type  type,
vi::VisibilityIterator2 vs,
casacore::ImageInterface< casacore::Complex > &  image,
casacore::Matrix< casacore::Float > &  weight 
)
virtual

Make an image : subftm->makeImage()

Reimplemented from casa::refim::FTMachine.

Make the multi term images void casa::refim::MultiTermFTNew::makeMTImages ( refim::FTMachine::Type  type,
vi::VisibilityIterator2 vi,
casacore::Vector< casacore::CountedPtr< casacore::ImageInterface< casacore::Complex > > > &  image,
casacore::Vector< casacore::CountedPtr< casacore::Matrix< casacore::Float > > > &  weight 
)
casacore::Bool casa::refim::MultiTermFTNew::modifyModelVis ( vi::VisBuffer2 vb,
casacore::uInt  thisterm 
)
protected

Multiply model visibilities by Taylor-function weights - during "get".

casacore::Bool casa::refim::MultiTermFTNew::modifyVisWeights ( vi::VisBuffer2 vb,
casacore::uInt  thisterm 
)
protected

Multiply Imaging weights by Taylor-function weights - during "put".

virtual casacore::String casa::refim::MultiTermFTNew::name ( ) const
inlinevirtual

Return the name of the machine.

Implements casa::refim::FTMachine.

Definition at line 167 of file MultiTermFTNew.h.

References machineName_p.

virtual casacore::Int casa::refim::MultiTermFTNew::nTerms ( )
inlinevirtual

return number of terms

Definition at line 193 of file MultiTermFTNew.h.

References nterms_p.

MultiTermFTNew& casa::refim::MultiTermFTNew::operator= ( const MultiTermFTNew other)

Assignment operator — leave it as the default.

void casa::refim::MultiTermFTNew::printFTTypes ( )
inline

Definition at line 170 of file MultiTermFTNew.h.

References casacore::nelements(), and subftms_p.

virtual casacore::Int casa::refim::MultiTermFTNew::psfNTerms ( )
inlinevirtual

Definition at line 194 of file MultiTermFTNew.h.

References psfnterms_p.

void casa::refim::MultiTermFTNew::put ( vi::VisBuffer2 vb,
casacore::Int  row = -1,
casacore::Bool  dopsf = false,
refim::FTMachine::Type  type = refim::FTMachine::OBSERVED 
)
virtual

Modify imaging weights with Taylor-weights and do gridding via subftm->put()

Reimplemented from casa::refim::FTMachine.

void casa::refim::MultiTermFTNew::put ( const vi::VisBuffer2 ,
casacore::Int  ,
casacore::Bool  ,
refim::FTMachine::Type   
)
inlinevirtual

Have a const version for compatibility with other FTMs.

. Throw an exception if called.

Implements casa::refim::FTMachine.

Definition at line 122 of file MultiTermFTNew.h.

void casa::refim::MultiTermFTNew::restoreImagingWeights ( vi::VisBuffer2 vb)
protected

Restore vb.imagingweights to the original.

virtual void casa::refim::MultiTermFTNew::setCFCache ( casacore::CountedPtr< CFCache > &  cfc,
const casacore::Bool  resetCFC = true 
)
virtual

Reimplemented from casa::refim::FTMachine.

virtual void casa::refim::MultiTermFTNew::setDryRun ( casacore::Bool  val)
inlinevirtual

cerr << "MTFTMN: " << isDryRun << endl;

Reimplemented from casa::refim::FTMachine.

Definition at line 179 of file MultiTermFTNew.h.

References casa::refim::FTMachine::isDryRun, and subftms_p.

virtual void casa::refim::MultiTermFTNew::setLocation ( const casacore::MPosition loc)
virtual

set and get the location used for frame

Reimplemented from casa::refim::FTMachine.

virtual void casa::refim::MultiTermFTNew::setMiscInfo ( const casacore::Int  qualifier)
inlinevirtual

set the order of the Taylor term for MFS this is to tell A-casacore::Projection to qualify the accumulated avgPB for each Taylor term in the CFCache.

Implements casa::refim::FTMachine.

Definition at line 168 of file MultiTermFTNew.h.

virtual void casa::refim::MultiTermFTNew::setMovingSource ( const casacore::String sourcename,
const casacore::String ephemtable = "" 
)
virtual

set a moving source aka planets or comets => adjust phase center on the fly for gridding

Reimplemented from casa::refim::FTMachine.

virtual void casa::refim::MultiTermFTNew::setMovingSource ( const casacore::MDirection mdir)
virtual

Reimplemented from casa::refim::FTMachine.

virtual void casa::refim::MultiTermFTNew::setNoPadding ( casacore::Bool  nopad)
inlinevirtual

To make sure no padding is used in certain gridders.

Reimplemented from casa::refim::FTMachine.

Definition at line 166 of file MultiTermFTNew.h.

References subftms_p.

casacore::Bool casa::refim::MultiTermFTNew::storeAsImg ( casacore::String  fileName,
casacore::ImageInterface< casacore::Float > &  theImg 
)
protected

Helper function to write ImageInterfaces to disk.

virtual casacore::Bool casa::refim::MultiTermFTNew::toRecord ( casacore::String error,
casacore::RecordInterface outRec,
casacore::Bool  withImage = false,
const casacore::String  diskimage = "" 
)
virtual

{throw(casacore::AipsError("MultiTermFTNew::getWeightImage() should not be called"));}

Save and restore the MultiTermFTNew to and from a record

Reimplemented from casa::refim::FTMachine.

virtual casacore::Bool casa::refim::MultiTermFTNew::useWeightImage ( )
inlinevirtual

All FTMachines that fill weightimage, need to set this.

TODO : Make this pure virtual.

Reimplemented from casa::refim::FTMachine.

Definition at line 151 of file MultiTermFTNew.h.

References AlwaysAssert, and subftms_p.

Member Data Documentation

casacore::Matrix<casacore::Float> casa::refim::MultiTermFTNew::imweights_p
protected

Definition at line 226 of file MultiTermFTNew.h.

casacore::String casa::refim::MultiTermFTNew::machineName_p
protected

Definition at line 227 of file MultiTermFTNew.h.

Referenced by name().

casacore::Cube<casacore::Complex> casa::refim::MultiTermFTNew::modviscube_p
protected

Definition at line 221 of file MultiTermFTNew.h.

New MTFT specific internal parameters and functions* casacore::uInt casa::refim::MultiTermFTNew::nterms_p
protected

Definition at line 224 of file MultiTermFTNew.h.

Referenced by nTerms().

New MTFT specific internal parameters and functions* casacore::uInt casa::refim::MultiTermFTNew::psfnterms_p
protected

Definition at line 224 of file MultiTermFTNew.h.

Referenced by psfNTerms().

casacore::Double casa::refim::MultiTermFTNew::reffreq_p
protected

Definition at line 225 of file MultiTermFTNew.h.

casacore::Block< casacore::CountedPtr<FTMachine> > casa::refim::MultiTermFTNew::subftms_p
protected

The documentation for this class was generated from the following file: