casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
casa::FTMachine Class Referenceabstract

defines interface for the Fourier Transform Machine More...

#include <FTMachine.h>

Inheritance diagram for casa::FTMachine:
casa::AWProjectFT casa::FixVis casa::GridBoth casa::GridFT casa::MosaicFT casa::MultiTermFT casa::MultiTermFTNew casa::NewMultiTermFT casa::nPBWProjectFT casa::rGridFT casa::rGridFT casa::SDGrid casa::WOnlyProjectFT casa::WProjectFT

Public Types

enum  Type {
  OBSERVED,
  MODEL,
  CORRECTED,
  RESIDUAL,
  PSF,
  COVERAGE,
  N_types,
  DEFAULT
}
 Types of known Images that may be made using the makeImage method. More...
 

Public Member Functions

 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 FTMachinecloneFTM ()
 clone copy the default cloner clones via a Record copy More...
 
virtual void initializeToVis (casacore::ImageInterface< casacore::Complex > &image, const VisBuffer &vb)=0
 Initialize transform to Visibility plane. More...
 
virtual 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)
 Vectorized InitializeToVis. More...
 
virtual void initializeToVisNew (const VisBuffer &vb, casacore::CountedPtr< SIImageStore > imstore)
 
virtual void finalizeToVis ()=0
 

Finalize transform to Visibility plane This is mostly a no-op, and is not-even called from CubeSkyEquation. More...

 
virtual void initializeToSky (casacore::ImageInterface< casacore::Complex > &image, casacore::Matrix< casacore::Float > &weight, const VisBuffer &vb)=0
 Note : No vectorized form of finalizeToVis yet.... More...
 
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=false)
 Vectorized InitializeToSky. More...
 
virtual void initializeToSkyNew (const casacore::Bool dopsf, const VisBuffer &vb, casacore::CountedPtr< SIImageStore > imstore)
 
virtual void finalizeToSky ()=0
 

Finalize transform to Sky plane More...

 
virtual void finalizeToSky (casacore::ImageInterface< casacore::Complex > &iimage)
 
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)
 Vectorized finalizeToSky. More...
 
virtual void finalizeToSkyNew (casacore::Bool dopsf, const VisBuffer &vb, casacore::CountedPtr< SIImageStore > imstore)
 
virtual void get (VisBuffer &vb, casacore::Int row=-1)=0
 
More...
 
virtual void put (const VisBuffer &vb, casacore::Int row=-1, casacore::Bool dopsf=false, FTMachine::Type type=FTMachine::OBSERVED)=0
 Put coherence to grid. More...
 
virtual void put (VisBuffer &vb, casacore::Int row=-1, casacore::Bool dopsf=false, FTMachine::Type type=FTMachine::OBSERVED)
 Non const vb version - so that weights can be modified in-place Currently, used only by MultiTermFT. More...
 
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 useWeightImage ()
 All FTMachines that fill weightimage, need to set this. More...
 
virtual casacore::Bool isSkyJonesSet ()
 
virtual casacore::Bool isSkyJonesChanged (VisBuffer &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 VisBuffer &vb, casacore::Bool &firstRow, casacore::Bool &internalRow)
 
template<typename T >
void getGrid (casacore::Array< T > &thegrid)
 
More...
 
virtual
casacore::ImageInterface
< casacore::Complex > & 
getImage (casacore::Matrix< casacore::Float > &, casacore::Bool normalize=true)=0
 Get the final image. More...
 
virtual const
casacore::CountedPtr
< ConvolutionFunction > & 
getAWConvFunc ()
 
virtual void findConvFunction (const casacore::ImageInterface< casacore::Complex > &, const VisBuffer &)
 
virtual void getWeightImage (casacore::ImageInterface< casacore::Float > &weightImage, casacore::Matrix< casacore::Float > &weights)=0
 Get the final weights image. More...
 
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...
 
virtual void makeImage (FTMachine::Type type, VisSet &vs, casacore::ImageInterface< casacore::Complex > &image, casacore::Matrix< casacore::Float > &weight)
 Make the entire image. More...
 
virtual void makeImage (FTMachine::Type type, ROVisibilityIterator &vi, casacore::ImageInterface< casacore::Complex > &image, casacore::Matrix< casacore::Float > &weight)
 Make the entire image using a ROVisIter. More...
 
void girarUVW (casacore::Matrix< casacore::Double > &uvw, casacore::Vector< casacore::Double > &dphase, const VisBuffer &vb)
 
More...
 
void rotateUVW (casacore::Matrix< casacore::Double > &uvw, casacore::Vector< casacore::Double > &dphase, const VisBuffer &vb)
 
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 VisBuffer &vb)
 Refocus on a finite distance. More...
 
virtual casacore::Bool toRecord (casacore::String &error, casacore::RecordInterface &outRecord, casacore::Bool withImage=false, const casacore::String diskimagename="")
 Save and restore the FTMachine to and from a record. More...
 
virtual casacore::Bool fromRecord (casacore::String &error, const casacore::RecordInterface &inRecord)
 
virtual casacore::Bool changed (const VisBuffer &vb)
 Has this operator changed since the last application? More...
 
virtual casacore::Bool isFourier ()
 Can this FTMachine be represented by Fourier convolutions? More...
 
casacore::Bool setSpw (casacore::Vector< casacore::Int > &spw, casacore::Bool validFrame)
 set spw for cube that will be used; More...
 
virtual casacore::Bool doublePrecGrid ()
 return whether the ftmachine is using a double precision grid More...
 
virtual void setNoPadding (casacore::Bool nopad)
 To make sure no padding is used in certain gridders. More...
 
virtual casacore::String name () const =0
 Return the name of the machine. More...
 
void setLocation (const casacore::MPosition &loc)
 set and get the location used for frame More...
 
casacore::MPositiongetLocation ()
 
virtual void setMovingSource (const casacore::String &sourcename)
 set a moving source aka planets or comets => adjust phase center on the fly for gridding More...
 
virtual void setMovingSource (const casacore::MDirection &mdir)
 
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 ()
 
virtual void reset ()
 reset stuff in an FTMachine More...
 
virtual void setFreqInterpolation (const casacore::String &method)
 set frequency interpolation type More...
 
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 casacore::Cube
< casacore::Int
getSpwChanSelection ()
 
virtual void setSpwFreqSelection (const casacore::Matrix< casacore::Double > &spwfreqs)
 
virtual casacore::Matrix
< casacore::Double
getSpwFreqSelection ()
 
virtual void setMiscInfo (const casacore::Int qualifier)=0
 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...
 
virtual void setCanComputeResiduals (casacore::Bool &b)
 
virtual casacore::Bool canComputeResiduals ()
 
virtual void ComputeResiduals (VisBuffer &vb, casacore::Bool useCorrected)=0
 Make the VB and VBStore interefaces for the interim re-factoring work. More...
 
virtual casacore::Float getPBLimit ()
 
void setnumthreads (casacore::Int n)
 virtual void ComputeResiduals(VBStore& vb)=0; get and set numthreads More...
 
casacore::Int getnumthreads ()
 
virtual void setCFCache (casacore::CountedPtr< CFCache > &cfc, const casacore::Bool resetCFC=true)
 
casacore::CountedPtr< CFCachegetCFCache ()
 
casacore::String getCacheDir ()
 
virtual void setDryRun (casacore::Bool val)
 
virtual casacore::Bool dryRun ()
 
virtual casacore::Bool isUsingCFCache ()
 

Static Public Member Functions

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

casacore::Bool isDryRun
 

Protected Member Functions

casacore::LogIOlogIO ()
 
virtual void initMaps (const VisBuffer &vb)
 
virtual void initPolInfo (const VisBuffer &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 matchAllSpwChans (const VisBuffer &vb)
 redo all spw chan match especially if ms has changed underneath More...
 
virtual casacore::Bool interpolateFrequencyTogrid (const VisBuffer &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)
 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 (VisBuffer &vb, casacore::Cube< casacore::Complex > &data, FTMachine::Type type=FTMachine::MODEL)
 degridded data interpolated back onto visibilities More...
 
virtual void getInterpolateArrays (const VisBuffer &vb, casacore::Cube< casacore::Complex > &data, casacore::Cube< casacore::Int > &flag)
 Interpolate visibilities to be degridded upon. More...
 
void setSpectralFlag (const VisBuffer &vb, casacore::Cube< casacore::Bool > &modflagcube)
 
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...
 

Protected Attributes

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::MDirection firstMovingDir_p
 
casacore::Double distance_p
 
casacore::uInt nAntenna_p
 
casacore::Int lastFieldId_p
 
casacore::Int lastMSId_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 isIOnly
 Is casacore::Stokes I only? iso XX,XY,YX,YY or LL,LR,RL,RR. More...
 
casacore::MPosition mLocation_p
 Default Position used for phase rotations. More...
 
casacore::Bool doUVWRotation_p
 Set if uvwrotation is necessary. More...
 
casacore::Block
< casacore::Vector
< casacore::Int > > 
multiChanMap_p
 setup multiple spectral window for cubes More...
 
casacore::Vector< casacore::IntselectedSpw_p
 
casacore::Vector< casacore::IntnVisChan_p
 
casacore::SpectralCoordinate spectralCoord_p
 Private variables needed for spectral frame conversion. More...
 
casacore::Vector< casacore::BooldoConversion_p
 
casacore::Bool freqFrameValid_p
 
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...
 
FFT2D ft_p
 
casacore::Double phaseCenterTime_p
 

Private Member Functions

void swapyz (casacore::Cube< casacore::Complex > &out, const casacore::Cube< casacore::Complex > &in)
 Some temporary wasteful function for swapping axes because we don't Interpolation along the second axis...will need to implement interpolation on y axis of a cube. More...
 
void swapyz (casacore::Cube< casacore::Complex > &out, const casacore::Cube< casacore::Bool > &outFlag, const casacore::Cube< casacore::Complex > &in)
 
void swapyz (casacore::Cube< casacore::Bool > &out, const casacore::Cube< casacore::Bool > &in)
 
void convUVW (casacore::Double &dphase, casacore::Vector< casacore::Double > &thisrow)
 

Friends

class VisModelData
 
class MultiTermFT
 
class MultiTermFTNew
 

Detailed Description

defines interface for the Fourier Transform Machine

Intended use:

Public interface

Prerequisite

Etymology

FTMachine is a Machine for Fourier Transforms

Synopsis

The SkyEquation needs to be able to perform Fourier transforms on visibility data. FTMachine allows efficient Fourier Transform processing using a VisBuffer which encapsulates a chunk of visibility (typically all baselines for one time) together with all the information needed for processing (e.g. UVW coordinates).

Example

A simple example of a FTMachine is found in GridFT. See the example for SkyModel.

Motivation

Define an interface to allow efficient processing of chunks of visibility data

Note that the image must be Complex. It must contain the casacore::Complex casacore::Stokes values (e.g. RR,RL,LR,LL). FTMachine uses the image coordinate system to determine mappings between the polarization and frequency values in the casacore::PagedImage and in the VisBuffer.

Definition at line 120 of file FTMachine.h.

Member Enumeration Documentation

Types of known Images that may be made using the makeImage method.

Enumerator
OBSERVED 
MODEL 
CORRECTED 
RESIDUAL 
PSF 
COVERAGE 
N_types 
DEFAULT 

Definition at line 125 of file FTMachine.h.

Constructor & Destructor Documentation

casa::FTMachine::FTMachine ( )
casa::FTMachine::FTMachine ( casacore::CountedPtr< CFCache > &  cfcache,
casacore::CountedPtr< ConvolutionFunction > &  cfctor 
)
casa::FTMachine::FTMachine ( const FTMachine other)
virtual casa::FTMachine::~FTMachine ( )
virtual

Member Function Documentation

virtual casacore::Bool casa::FTMachine::canComputeResiduals ( )
inlinevirtual

Definition at line 372 of file FTMachine.h.

References canComputeResiduals_p.

virtual casacore::Bool casa::FTMachine::changed ( const VisBuffer vb)
virtual

Has this operator changed since the last application?

Reimplemented in casa::nPBWProjectFT, casa::SDGrid, and casa::GridBoth.

casacore::Bool casa::FTMachine::changedSkyJonesLogic ( const VisBuffer vb,
casacore::Bool firstRow,
casacore::Bool internalRow 
)
virtual FTMachine* casa::FTMachine::cloneFTM ( )
virtual

clone copy the default cloner clones via a Record copy

Reimplemented in casa::MultiTermFTNew, casa::WProjectFT, casa::GridFT, casa::SetJyGridFT, casa::AWProjectWBFTNew, and casa::MosaicFTNew.

virtual void casa::FTMachine::ComputeResiduals ( VisBuffer vb,
casacore::Bool  useCorrected 
)
pure virtual

Make the VB and VBStore interefaces for the interim re-factoring work.

Finally removed the VB interface.

Implemented in casa::AWProjectFT, casa::nPBWProjectFT, casa::MosaicFT, casa::WProjectFT, casa::rGridFT, casa::GridFT, casa::rGridFT, casa::SDGrid, casa::GridBoth, casa::FixVis, casa::MultiTermFTNew, casa::NewMultiTermFT, and casa::MultiTermFT.

void casa::FTMachine::convUVW ( casacore::Double dphase,
casacore::Vector< casacore::Double > &  thisrow 
)
private
virtual void casa::FTMachine::correlationToStokes ( casacore::ImageInterface< casacore::Complex > &  compImage,
casacore::ImageInterface< casacore::Float > &  resImage,
const casacore::Bool  dopsf 
)
virtual


virtual casacore::Bool casa::FTMachine::doublePrecGrid ( )
virtual

return whether the ftmachine is using a double precision grid

virtual casacore::Bool casa::FTMachine::dryRun ( )
inlinevirtual

Definition at line 392 of file FTMachine.h.

References isDryRun.

virtual void casa::FTMachine::finalizeToSky ( )
pure virtual
virtual void casa::FTMachine::finalizeToSky ( casacore::ImageInterface< casacore::Complex > &  iimage)
inlinevirtual

Definition at line 193 of file FTMachine.h.

virtual void casa::FTMachine::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 
)
virtual

Vectorized finalizeToSky.

Reimplemented in casa::NewMultiTermFT.

virtual void casa::FTMachine::finalizeToSkyNew ( casacore::Bool  dopsf,
const VisBuffer vb,
casacore::CountedPtr< SIImageStore imstore 
)
virtual

Reimplemented in casa::MultiTermFTNew.

virtual void casa::FTMachine::finalizeToVis ( )
pure virtual
virtual void casa::FTMachine::findConvFunction ( const casacore::ImageInterface< casacore::Complex > &  ,
const VisBuffer  
)
inlinevirtual
virtual casacore::Bool casa::FTMachine::fromRecord ( casacore::String error,
const casacore::RecordInterface inRecord 
)
virtual
virtual void casa::FTMachine::get ( VisBuffer vb,
casacore::Int  row = -1 
)
pure virtual
virtual const casacore::CountedPtr<ConvolutionFunction>& casa::FTMachine::getAWConvFunc ( )
inlinevirtual

Definition at line 270 of file FTMachine.h.

References convFuncCtor_p.

casacore::String casa::FTMachine::getCacheDir ( )
inline

Definition at line 385 of file FTMachine.h.

References cfCache_p.

casacore::CountedPtr<CFCache> casa::FTMachine::getCFCache ( )
inline

Definition at line 384 of file FTMachine.h.

References cfCache_p.

virtual void casa::FTMachine::getFluxImage ( casacore::ImageInterface< casacore::Float > &  image)
inlinevirtual

Get a flux (divide by this to get a flux density correct image) image if there is one.

Reimplemented in casa::MosaicFT.

Definition at line 279 of file FTMachine.h.

template<typename T >
void casa::FTMachine::getGrid ( casacore::Array< T > &  thegrid)


Get the gridded visibilities or weight

virtual casacore::ImageInterface<casacore::Complex>& casa::FTMachine::getImage ( casacore::Matrix< casacore::Float > &  ,
casacore::Bool  normalize = true 
)
pure virtual
virtual void casa::FTMachine::getInterpolateArrays ( const VisBuffer vb,
casacore::Cube< casacore::Complex > &  data,
casacore::Cube< casacore::Int > &  flag 
)
protectedvirtual

Interpolate visibilities to be degridded upon.

casacore::MPosition& casa::FTMachine::getLocation ( )
casacore::Int casa::FTMachine::getnumthreads ( )
virtual casacore::Float casa::FTMachine::getPBLimit ( )
inlinevirtual

Reimplemented in casa::AWProjectFT.

Definition at line 377 of file FTMachine.h.

References pbLimit_p.

casacore::Double casa::FTMachine::getPhaseCenterTime ( )
inline

Definition at line 348 of file FTMachine.h.

References phaseCenterTime_p.

virtual casacore::String casa::FTMachine::getPointingDirColumnInUse ( )
virtual
virtual casacore::Cube<casacore::Int> casa::FTMachine::getSpwChanSelection ( )
inlinevirtual

Definition at line 362 of file FTMachine.h.

References spwChanSelFlag_p.

virtual casacore::Matrix<casacore::Double> casa::FTMachine::getSpwFreqSelection ( )
inlinevirtual

Definition at line 364 of file FTMachine.h.

References spwFreqSel_p.

virtual void casa::FTMachine::getWeightImage ( casacore::ImageInterface< casacore::Float > &  weightImage,
casacore::Matrix< casacore::Float > &  weights 
)
pure virtual
void casa::FTMachine::girarUVW ( casacore::Matrix< casacore::Double > &  uvw,
casacore::Vector< casacore::Double > &  dphase,
const VisBuffer vb 
)


Rotate the uvw from the observed phase center to the desired phase center.

virtual void casa::FTMachine::gridOk ( casacore::Int  gridsupport)
protectedvirtual

check if image is big enough for gridding

virtual void casa::FTMachine::initializeToSky ( casacore::ImageInterface< casacore::Complex > &  image,
casacore::Matrix< casacore::Float > &  weight,
const VisBuffer vb 
)
pure virtual
virtual void casa::FTMachine::initializeToSky ( casacore::Block< casacore::CountedPtr< casacore::ImageInterface< casacore::Complex > > > &  compImageVec,
casacore::Block< casacore::Matrix< casacore::Float > > &  weightsVec,
const VisBuffer vb,
const casacore::Bool  dopsf = false 
)
virtual

Vectorized InitializeToSky.

Reimplemented in casa::NewMultiTermFT.

virtual void casa::FTMachine::initializeToSkyNew ( const casacore::Bool  dopsf,
const VisBuffer vb,
casacore::CountedPtr< SIImageStore imstore 
)
virtual

Reimplemented in casa::MultiTermFTNew.

virtual void casa::FTMachine::initializeToVis ( casacore::ImageInterface< casacore::Complex > &  image,
const VisBuffer vb 
)
pure virtual
virtual void casa::FTMachine::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 
)
virtual

Vectorized InitializeToVis.

Reimplemented in casa::AWProjectFT, and casa::NewMultiTermFT.

virtual void casa::FTMachine::initializeToVisNew ( const VisBuffer vb,
casacore::CountedPtr< SIImageStore imstore 
)
virtual

Reimplemented in casa::MultiTermFTNew.

virtual void casa::FTMachine::initMaps ( const VisBuffer vb)
protectedvirtual

Reimplemented in casa::MultiTermFTNew, and casa::MultiTermFT.

virtual void casa::FTMachine::initPolInfo ( const VisBuffer vb)
protectedvirtual
virtual casacore::Bool casa::FTMachine::interpolateFrequencyFromgrid ( VisBuffer vb,
casacore::Cube< casacore::Complex > &  data,
FTMachine::Type  type = FTMachine::MODEL 
)
protectedvirtual

degridded data interpolated back onto visibilities

virtual casacore::Bool casa::FTMachine::interpolateFrequencyTogrid ( const VisBuffer 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 
)
protectedvirtual

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

virtual casacore::Bool casa::FTMachine::isFourier ( )
inlinevirtual
virtual casacore::Bool casa::FTMachine::isSkyJonesChanged ( VisBuffer vb,
casacore::Int  row 
)
inlinevirtual

Definition at line 252 of file FTMachine.h.

References sj_p.

virtual casacore::Bool casa::FTMachine::isSkyJonesSet ( )
inlinevirtual

Definition at line 251 of file FTMachine.h.

References sj_p.

virtual casacore::Bool casa::FTMachine::isUsingCFCache ( )
inlinevirtual

cerr << "@#%$@% = " << cfCache_p.nrefs() << endl;

Reimplemented in casa::MultiTermFTNew.

Definition at line 393 of file FTMachine.h.

References cfCache_p.

static void casa::FTMachine::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 
)
static

helper function for openmp to call...no private dependency

casacore::LogIO& casa::FTMachine::logIO ( )
protected
virtual void casa::FTMachine::makeImage ( FTMachine::Type  type,
VisSet vs,
casacore::ImageInterface< casacore::Complex > &  image,
casacore::Matrix< casacore::Float > &  weight 
)
virtual
virtual void casa::FTMachine::makeImage ( FTMachine::Type  type,
ROVisibilityIterator vi,
casacore::ImageInterface< casacore::Complex > &  image,
casacore::Matrix< casacore::Float > &  weight 
)
virtual

Make the entire image using a ROVisIter.

Reimplemented in casa::AWProjectFT, and casa::SDGrid.

casacore::Bool casa::FTMachine::matchAllSpwChans ( const VisBuffer vb)
protected

redo all spw chan match especially if ms has changed underneath

casacore::Bool casa::FTMachine::matchChannel ( const casacore::Int spw,
const VisBuffer vb 
)
protected
virtual casacore::String casa::FTMachine::name ( ) const
pure virtual
virtual void casa::FTMachine::normalizeImage ( casacore::Lattice< casacore::Complex > &  ,
const casacore::Matrix< casacore::Double > &  ,
casacore::Lattice< casacore::Float > &  ,
casacore::Bool   
)
inlinevirtual
virtual void casa::FTMachine::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
virtual void casa::FTMachine::ok ( )
protectedvirtual
FTMachine& casa::FTMachine::operator= ( const FTMachine other)

Referenced by setBasePrivates().

virtual void casa::FTMachine::put ( const VisBuffer vb,
casacore::Int  row = -1,
casacore::Bool  dopsf = false,
FTMachine::Type  type = FTMachine::OBSERVED 
)
pure virtual
virtual void casa::FTMachine::put ( VisBuffer vb,
casacore::Int  row = -1,
casacore::Bool  dopsf = false,
FTMachine::Type  type = FTMachine::OBSERVED 
)
inlinevirtual

Non const vb version - so that weights can be modified in-place Currently, used only by MultiTermFT.

Reimplemented in casa::MultiTermFTNew, casa::NewMultiTermFT, and casa::MultiTermFT.

Definition at line 219 of file FTMachine.h.

References put(), and casa::type().

void casa::FTMachine::refocus ( casacore::Matrix< casacore::Double > &  uvw,
const casacore::Vector< casacore::Int > &  ant1,
const casacore::Vector< casacore::Int > &  ant2,
casacore::Vector< casacore::Double > &  dphase,
const VisBuffer vb 
)

Refocus on a finite distance.

virtual void casa::FTMachine::reset ( void  )
inlinevirtual

reset stuff in an FTMachine

Reimplemented in casa::AWProjectFT, casa::nPBWProjectFT, and casa::MosaicFT.

Definition at line 350 of file FTMachine.h.

void casa::FTMachine::rotateUVW ( casacore::Matrix< casacore::Double > &  uvw,
casacore::Vector< casacore::Double > &  dphase,
const VisBuffer vb 
)
casacore::Bool casa::FTMachine::saveMeasure ( casacore::RecordInterface rec,
const casacore::String name,
casacore::String error,
const casacore::Measure ms 
)
protected

helper to save Measures in a record

void casa::FTMachine::setBasePrivates ( const FTMachine other)
inline

Definition at line 145 of file FTMachine.h.

References operator=().

virtual void casa::FTMachine::setCanComputeResiduals ( casacore::Bool b)
inlinevirtual

Definition at line 371 of file FTMachine.h.

References canComputeResiduals_p.

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

Reimplemented in casa::AWProjectWBFT.

virtual void casa::FTMachine::setDryRun ( casacore::Bool  val)
inlinevirtual

cerr << "FTM: " << isDryRun << endl;

Reimplemented in casa::MultiTermFTNew, and casa::AWProjectWBFTNew.

Definition at line 387 of file FTMachine.h.

References isDryRun.

virtual void casa::FTMachine::setFreqInterpolation ( const casacore::String method)
virtual

set frequency interpolation type

void casa::FTMachine::setLocation ( const casacore::MPosition loc)

set and get the location used for frame

virtual void casa::FTMachine::setMiscInfo ( const casacore::Int  qualifier)
pure virtual

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.

Implemented in casa::AWProjectFT, casa::nPBWProjectFT, casa::WOnlyProjectFT, casa::MosaicFT, casa::WProjectFT, casa::rGridFT, casa::GridFT, casa::rGridFT, casa::SDGrid, casa::GridBoth, casa::MultiTermFTNew, casa::NewMultiTermFT, casa::FixVis, and casa::MultiTermFT.

virtual void casa::FTMachine::setMovingSource ( const casacore::String sourcename)
virtual

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

virtual void casa::FTMachine::setMovingSource ( const casacore::MDirection mdir)
virtual
virtual void casa::FTMachine::setNoPadding ( casacore::Bool  nopad)
inlinevirtual

To make sure no padding is used in certain gridders.

Reimplemented in casa::rGridFT, casa::GridFT, casa::rGridFT, casa::MultiTermFTNew, casa::NewMultiTermFT, and casa::MultiTermFT.

Definition at line 328 of file FTMachine.h.

void casa::FTMachine::setnumthreads ( casacore::Int  n)

virtual void ComputeResiduals(VBStore& vb)=0; get and set numthreads

void casa::FTMachine::setPhaseCenterTime ( const casacore::Double  time)
inline

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

Definition at line 347 of file FTMachine.h.

References phaseCenterTime_p, and casa::time.

virtual void casa::FTMachine::setPointingDirColumn ( const casacore::String column = "DIRECTION")
virtual

tell ftmachine which Pointing table column to use for Direction Mosaic or Single dish ft use this for example

virtual void casa::FTMachine::setSkyJones ( casacore::Vector< casacore::CountedPtr< SkyJones > > &  sj)
virtual

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.

The pointers have to be handled by the caller..no delete happening here

void casa::FTMachine::setSpectralFlag ( const VisBuffer vb,
casacore::Cube< casacore::Bool > &  modflagcube 
)
protected
casacore::Bool casa::FTMachine::setSpw ( casacore::Vector< casacore::Int > &  spw,
casacore::Bool  validFrame 
)

set spw for cube that will be used;

virtual void casa::FTMachine::setSpwChanSelection ( const casacore::Cube< casacore::Int > &  spwchansels)
virtual
virtual void casa::FTMachine::setSpwFreqSelection ( const casacore::Matrix< casacore::Double > &  spwfreqs)
virtual
virtual void casa::FTMachine::stokesToCorrelation ( casacore::ImageInterface< casacore::Float > &  modelImage,
casacore::ImageInterface< casacore::Complex > &  compImage 
)
virtual
void casa::FTMachine::swapyz ( casacore::Cube< casacore::Complex > &  out,
const casacore::Cube< casacore::Complex > &  in 
)
private

Some temporary wasteful function for swapping axes because we don't Interpolation along the second axis...will need to implement interpolation on y axis of a cube.

void casa::FTMachine::swapyz ( casacore::Cube< casacore::Complex > &  out,
const casacore::Cube< casacore::Bool > &  outFlag,
const casacore::Cube< casacore::Complex > &  in 
)
private
void casa::FTMachine::swapyz ( casacore::Cube< casacore::Bool > &  out,
const casacore::Cube< casacore::Bool > &  in 
)
private
virtual casacore::Bool casa::FTMachine::toRecord ( casacore::String error,
casacore::RecordInterface outRecord,
casacore::Bool  withImage = false,
const casacore::String  diskimagename = "" 
)
virtual
virtual casacore::Bool casa::FTMachine::useWeightImage ( )
inlinevirtual

All FTMachines that fill weightimage, need to set this.

TODO : Make this pure virtual.

Reimplemented in casa::MosaicFT, casa::MultiTermFTNew, and casa::AWProjectWBFTNew.

Definition at line 250 of file FTMachine.h.

Friends And Related Function Documentation

friend class MultiTermFT
friend

Definition at line 403 of file FTMachine.h.

friend class MultiTermFTNew
friend

Definition at line 404 of file FTMachine.h.

friend class VisModelData
friend

Definition at line 402 of file FTMachine.h.

Member Data Documentation

casacore::Bool casa::FTMachine::canComputeResiduals_p
protected

Definition at line 524 of file FTMachine.h.

Referenced by canComputeResiduals(), and setCanComputeResiduals().

casacore::CountedPtr<CFCache> casa::FTMachine::cfCache_p
protected

Definition at line 517 of file FTMachine.h.

Referenced by getCacheDir(), getCFCache(), and isUsingCFCache().

casacore::CountedPtr<CFStore2> casa::FTMachine::cfs2_p
protected

Definition at line 519 of file FTMachine.h.

CFStore casa::FTMachine::cfs_p
protected

Definition at line 518 of file FTMachine.h.

casacore::Vector<casacore::Int> casa::FTMachine::cfStokes_p
protected

Definition at line 514 of file FTMachine.h.

casacore::CountedPtr<CFStore2> casa::FTMachine::cfwts2_p
protected

Definition at line 519 of file FTMachine.h.

CFStore casa::FTMachine::cfwts_p
protected

Definition at line 518 of file FTMachine.h.

casacore::Vector<casacore::Int> casa::FTMachine::chanMap
protected

Maps of channels and polarization.

Definition at line 448 of file FTMachine.h.

casacore::CountedPtr<casacore::ImageInterface<casacore::Complex> > casa::FTMachine::cmplxImage_p
protected

A holder for the complex image if nobody else is keeping it.

Definition at line 538 of file FTMachine.h.

casacore::CountedPtr<ConvolutionFunction> casa::FTMachine::convFuncCtor_p
protected

Definition at line 521 of file FTMachine.h.

Referenced by getAWConvFunc().

casacore::Double casa::FTMachine::distance_p
protected

Definition at line 428 of file FTMachine.h.

casacore::Vector<casacore::Bool> casa::FTMachine::doConversion_p
protected

Definition at line 504 of file FTMachine.h.

casacore::Bool casa::FTMachine::doUVWRotation_p
protected

Set if uvwrotation is necessary.

Definition at line 459 of file FTMachine.h.

casacore::Matrix<casacore::Double> casa::FTMachine::expandedSpwConjFreqSel_p
protected

Definition at line 513 of file FTMachine.h.

casacore::Matrix<casacore::Double> casa::FTMachine::expandedSpwFreqSel_p
protected

Definition at line 513 of file FTMachine.h.

casacore::MDirection casa::FTMachine::firstMovingDir_p
protected

Definition at line 425 of file FTMachine.h.

casacore::Bool casa::FTMachine::fixMovingSource_p
protected

Definition at line 424 of file FTMachine.h.

casacore::Bool casa::FTMachine::freqFrameValid_p
protected

Definition at line 505 of file FTMachine.h.

casacore::InterpolateArray1D<casacore::Double,casacore::Complex>::InterpolationMethod casa::FTMachine::freqInterpMethod_p
protected

Definition at line 510 of file FTMachine.h.

FFT2D casa::FTMachine::ft_p
protected

Definition at line 540 of file FTMachine.h.

casacore::Array<casacore::Complex> casa::FTMachine::griddedData
protected

casacore::Array for non-tiled gridding These are common to most FTmachines

Definition at line 530 of file FTMachine.h.

casacore::Array<casacore::DComplex> casa::FTMachine::griddedData2
protected

Definition at line 531 of file FTMachine.h.

casacore::ImageInterface<casacore::Complex>* casa::FTMachine::image
protected

Definition at line 409 of file FTMachine.h.

Referenced by casa::FixVis::getImage().

casacore::Vector<casacore::Double> casa::FTMachine::imageFreq_p
protected

Definition at line 506 of file FTMachine.h.

casacore::Vector<casacore::Double> casa::FTMachine::interpVisFreq_p
protected

Definition at line 509 of file FTMachine.h.

casacore::Bool casa::FTMachine::isDryRun
casacore::Bool casa::FTMachine::isIOnly
protected

Is casacore::Stokes I only? iso XX,XY,YX,YY or LL,LR,RL,RR.

Definition at line 452 of file FTMachine.h.

casacore::Int casa::FTMachine::lastFieldId_p
protected

Definition at line 432 of file FTMachine.h.

casacore::Int casa::FTMachine::lastMSId_p
protected

Definition at line 433 of file FTMachine.h.

casacore::LogIO casa::FTMachine::logIO_p
protected

Definition at line 405 of file FTMachine.h.

casacore::Vector<casacore::Double> casa::FTMachine::lsrFreq_p
protected

casacore::Vector of float lsrfreq needed for regridding

Definition at line 508 of file FTMachine.h.

casacore::MeasFrame casa::FTMachine::mFrame_p
protected

Definition at line 414 of file FTMachine.h.

casacore::MDirection casa::FTMachine::mImage_p
protected

Definition at line 420 of file FTMachine.h.

casacore::MPosition casa::FTMachine::mLocation_p
protected

Default Position used for phase rotations.

Definition at line 455 of file FTMachine.h.

Referenced by casa::PBMosaicFT::setObservatoryLocation(), casa::AWProjectWBFT::setObservatoryLocation(), and casa::AWProjectFT::setObservatoryLocation().

casacore::MDirection casa::FTMachine::movingDir_p
protected

moving source stuff

Definition at line 423 of file FTMachine.h.

casacore::MDirection casa::FTMachine::mTangent_p
protected

Definition at line 418 of file FTMachine.h.

casacore::Block<casacore::Vector <casacore::Int> > casa::FTMachine::multiChanMap_p
protected

setup multiple spectral window for cubes

Definition at line 468 of file FTMachine.h.

casacore::uInt casa::FTMachine::nAntenna_p
protected

Definition at line 430 of file FTMachine.h.

casacore::Int casa::FTMachine::nchan
protected

Definition at line 445 of file FTMachine.h.

casacore::Int casa::FTMachine::npol
protected

Definition at line 445 of file FTMachine.h.

casacore::Int casa::FTMachine::numthreads_p
protected

Definition at line 526 of file FTMachine.h.

casacore::Int casa::FTMachine::nvischan
protected

Definition at line 445 of file FTMachine.h.

casacore::Vector<casacore::Int> casa::FTMachine::nVisChan_p
protected

Definition at line 470 of file FTMachine.h.

casacore::Int casa::FTMachine::nvispol
protected

Definition at line 445 of file FTMachine.h.

casacore::Int casa::FTMachine::nx
protected

Sizes.

Definition at line 445 of file FTMachine.h.

casacore::Int casa::FTMachine::ny
protected

Definition at line 445 of file FTMachine.h.

casacore::Float casa::FTMachine::pbLimit_p
protected

Definition at line 534 of file FTMachine.h.

Referenced by casa::AWProjectFT::getPBLimit(), and getPBLimit().

casacore::Double casa::FTMachine::phaseCenterTime_p
protected

Definition at line 541 of file FTMachine.h.

Referenced by getPhaseCenterTime(), and setPhaseCenterTime().

casacore::CountedPtr<casacore::UVWMachine> casa::FTMachine::phaseShifter_p
protected

Definition at line 412 of file FTMachine.h.

casacore::String casa::FTMachine::pointingDirCol_p
protected

Definition at line 511 of file FTMachine.h.

casacore::Int casa::FTMachine::polInUse_p
protected

Definition at line 515 of file FTMachine.h.

casacore::Vector<casacore::Int> casa::FTMachine::polMap
protected
casacore::CountedPtr<PolOuterProduct> casa::FTMachine::pop_p
protected

Definition at line 522 of file FTMachine.h.

casacore::Vector<casacore::Int> casa::FTMachine::selectedSpw_p
protected

Definition at line 469 of file FTMachine.h.

casacore::Vector<casacore::CountedPtr<SkyJones> > casa::FTMachine::sj_p
protected

casacore::Vector<SkyJones *> sj_p;

Definition at line 536 of file FTMachine.h.

Referenced by isSkyJonesChanged(), and isSkyJonesSet().

casacore::SpectralCoordinate casa::FTMachine::spectralCoord_p
protected

Private variables needed for spectral frame conversion.

Definition at line 503 of file FTMachine.h.

casacore::Cube<casacore::Int> casa::FTMachine::spwChanSelFlag_p
protected

Definition at line 512 of file FTMachine.h.

Referenced by getSpwChanSelection().

casacore::Matrix<casacore::Double> casa::FTMachine::spwFreqSel_p
protected

Definition at line 513 of file FTMachine.h.

Referenced by getSpwFreqSelection().

casacore::Matrix<casacore::Double> casa::FTMachine::sumCFWeight
protected

Definition at line 442 of file FTMachine.h.

Referenced by casa::AWProjectFT::getSumOfCFWeights().

casacore::Matrix<casacore::Double> casa::FTMachine::sumWeight
protected

Sum of weights per polarization and per chan.

Definition at line 442 of file FTMachine.h.

Referenced by casa::WOnlyProjectFT::getSumOfWeights(), and casa::AWProjectFT::getSumOfWeights().

casacore::Bool casa::FTMachine::tangentSpecified_p
protected

Direction of desired tangent plane.

Definition at line 417 of file FTMachine.h.

casacore::Bool casa::FTMachine::toVis_p
protected

Definition at line 525 of file FTMachine.h.

casacore::Bool casa::FTMachine::useDoubleGrid_p
protected

Use douple precision grid in gridding process.

Definition at line 435 of file FTMachine.h.

casacore::UVWMachine* casa::FTMachine::uvwMachine_p
protected

Definition at line 411 of file FTMachine.h.


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