The SkyEquation needs to be able to perform Fourier transforms on visibility data. PBWProjectFT allows efficient handling of direction dependent effects due to the primary beam and antenna pointing offsets 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).
Using this FTMachine, errors due antenna pointing offsets can be corrected during deconvolution. One form of antenna pointing error which is known a-priori is the VLA polarization squint (about 6% of the Primary beam width at any frequency). For Stokes imaging, using this FTMachine, the VLA polarization squint and beam polarization can also be corrected. Also since the effects of antenna pointing errors is strongest in the range of 1-2GHz band (where the sky is not quite empty while the beams are not too large either), this FTMachine can also be setup to correct for the w-term.
Switches are provided in the get() method to compute the derivatives with respect to the parameters of the primary beam (only pointing offsets for now). This is used in the pointing offset solver.
See the documentation of other FTMachines for details about the design of the FTMachines in general.
Encapsulate the correction of direction dependent effects via visibility plane convolutions with a potentially different convolution function for each baseline.
Construct from a Record containing the PBWProjectFT state
Copy constructor
Assignment operator
Finalize transform to Visibility plane: flushes the image cache and shows statistics if it is being used.
Initialize transform to Sky plane: initializes the image
Finalize transform to Sky plane: flushes the image cache and shows statistics if it is being used. DOES NOT DO THE FINAL TRANSFORM!
Get actual coherence from grid by degridding
Get the coherence from grid return it in the degrid is used especially when scratch columns are not present in ms.
Put coherence to grid by gridding.
Make the entire image
Get the final image: do the Fourier transform and grid-correct, then optionally normalize by the summed weights
Get the final weights image
Save and restore the PBWProjectFT to and from a record
Can this FTMachine be represented by Fourier convolutions?
Bool changed(const VisBuffer& vb) {return vpSJ->changed(vb,1);};
Get the appropriate data pointer
----------------------------------------------------------------------