See below for an overview of the classes in this module.
Part of API
Measurement Equation describes a model for measurements from a generic radio telescope.
Synthesis processing in AIPS++ is implemented using the measurement equation due to Hamaker, Bregman and Sault and later extended by Noordam, and Cornwell. The HBS measurement equation expresses the measured visibility in terms of Jones matrices and other components. A Jones matrix is a two by two complex matrix that describes how two orthogonal senses of polarization are affected by an element in a measurement system. In the HBS formulation of synthesis processing, the antenna is described by a compound Jones matrix formed from a product each element of which represents a different physical effect:
J = G D C E P T F K
The measured visibility from a radio telescope is then given by:
V_i,j=X_i,j (M_i,j integral directProduct(J_i, Conjugate(J_j)) S I + A_i,j)
where the elements in the equation are
and the integral is over time, frequency, sky position. The direct product of two 2 by 2 matrices gives a 4 by 4 matrix in which every possible product of the 2 by 2 matrix elements appears.
Manipulation of the equation in this form is possible but is much too expensive for most uses so we break it down into two parts and also use a special machine for the Fourier summation. This loses some generality but makes the use of the HBS measurement equation feasible.
The split is such that the class VisEquation expresses the visibility-plane part of the ME:
J = G D C P
where the visibility is V_i,j=X_i,j (M_i,j integral directProduct(J_i, Conjugate(J_j)) Vsky_i,j + A_i,j) and the integral is over time, frequency.
and the class SkyEquation expresses the sky-plane part of the ME:
J = E T F K
Vsky_i,j=integral directProduct(J_i, Conjugate(J_j)) S I and the integral is over time, frequency, sky position.
The last integral (over K) amounts to a Fourier transform and so the SkyEquation is given FT machines to use for this purpose. Note that we have chosen to move the position of the parallactic angle term. This has been done for expediency but will lead to some difficulties in difficult cases.
The terms G, D, C, etc, are represented by the classes in the module MeasurementComponents . This classes can typically do two basic things: apply a correction to a VisBuffer (which is a holder of a chunk of visibility data), and solve for its own internal parameters. Solution is accomplished using gradients of chi-squared obtained via standard services of the MeasurementEquation.
The SkyBrightness is modelled by a special type of MeasurementComponent called a SkyModel . This has an interface to the SkyEquation via a PagedImage .
Another type of MeasurementComponent is the Fourier transform machine FTMachine which is used for performing forward and inverse Fourier transforms. The class GridFT implements a straightforward grid and degrid FFT-based Fourier transform. We anticipate that other FTMachines will be needed for e.g. wide-field imaging.
Visibility Data is held in a MeasurementSet . To expedite processing, we use a VisibilityIterator (found in this module) to iterate through the MeasurementSet as needed. Setting up the iterator is relatively expensive so we store the iterator in a VisSet (also found in this module). Thus one should construct a VisSet and then use the iterator method to retrieve the iterator. Once one has a VisibilityIterator, it can be used to access the actual visibility data in chunk by using the VisBuffer (also in this module). This scheme may seem baroque but it is needed to cut down on superfluous otherhead of various types.
// Create a VisSet from a MeasurementSet on disk VisSet vs("3c84.MS"); // Now make an FTMachine with a 2048 by 2048 // complex pixel cache of 16 by 16 tiles, // using Spheriodal Function gridding GridFT ft(2048*2048, 16, "SF") // Create an ImageSkyModel from an image on disk PagedImage<Float> im("3c84.modelImage")); ImageSkyModel ism(im); // For the imaging, we need a SkyEquation and // an FTMachine SkyEquation se(vs, ft); // Predict the visibility set for the model se.predict(); // Make a VisEquation VisEquation ve(vs); // Solve for calibration of G matrix every 5 minutes GJones gj(vs, 5*60); ve.solve(gj); // Solve for calibration of D matrix every 12 hours DJones dj(vs, 12*60*60); ve.solve(dj); // Now use the SkyEquaton to make a Clean Image HogbomCleanImageSkyModel csm(ism); if (se.solve(csm)) { Image<StokesVector> cleanImage=csm.getImage(); cleanImage.setName("3c84.cleanImage"); }
MeasurementEquations are needed to encapsulate the measurement equations for linear systems, and both single dish and synthesis observations. The idea is that the structure of many calibration and imaging algorithms is much the same for many different types of telescope. MeasurementEquations are part of a framework of classes that are designed for synthesis and single dish imaging. The others are the MeasurementComponents .
Modules | |
| MeasurementEquations_internal_classes | |
| Internal MeasurementEquations classes and functions. | |
Classes | |
| class | casa::ArrayModel< T > |
| models with an internal & external representation as an array More... | |
| class | casa::CEMemModel |
| Implements the Cornwell & Evans MEM Algorithm on Lattices. More... | |
| class | casa::CEMemProgress |
| Class to monitor progress in MEM deconvolution. More... | |
| class | casa::ClarkCleanLatModel |
| A Class for performing the Clark Clean Algorithm on Arrays. More... | |
| class | casa::ClarkCleanModel |
| A Class for performing the Clark Clean Algorithm on Arrays. More... | |
| class | casa::ClarkCleanProgress |
| Abstract base class to monitor progress in lattice operations. More... | |
| class | casa::Deconvolver |
| A simple deconvolver operating on images (no SkyEquation). More... | |
| class | casa::Entropy |
| base class for entropy functions as used by MEM More... | |
| class | casa::EntropyI |
| Thermodynamic or Information entropy used by MEM. More... | |
| class | casa::EntropyEmptiness |
| Maximum Emptiness measure used by MEM. More... | |
| class | casa::HogbomCleanModel< T > |
| A Class for performing Hogbom Clean's of Arrays. More... | |
| class | casa::Imager |
| Class that contains functions needed for imager. More... | |
| class | casa::IncCEMemModel |
| performs MEM algorithm incrementally More... | |
| class | casa::IncEntropy |
| Base class for incremental entropies used by incremental MEM algorithm. More... | |
| class | casa::IncEntropyI |
| Thermodynamic or Information entropy for incremental MEM. More... | |
| class | casa::IncEntropyEmptiness |
| Emptiness measure for incremental MEM. More... | |
| class | casa::LatticeModel |
| models with an internal & external representation as an Lattice More... | |
| class | casa::LinearEquation< Domain, Range > |
| defines a relationship between Domain and Range objects More... | |
| class | casa::LinearModel< Domain > |
| Provides a model for use in model fitting applications. More... | |
| class | casa::MaskedArrayModel< T > |
| base class for models with an internal & external representation as a MaskedArray More... | |
| class | casa::MaskedHogbomCleanModel< T > |
| A Class for performing Hogbom Clean's of Arrays. More... | |
| class | casa::MosaicSkyEquation |
| Relate Sky brightness to the visibility, for the multi field case. More... | |
| class | casa::Qimager |
| Class that contains functions needed for qimager. More... | |
| class | casa::Simulator |
| Simulates MeasurementSets from SkyModel and SkyEquation. More... | |
| class | casa::StokesImageUtil |
| struct | casa::StokesUtil_global_functions_StokesVector_ancillary_Functions |
| for use with StokesVectors and related classes More... | |
| class | casa::VisEquation |
| Visibility Measurement Equation. More... | |
1.5.1