Getting Started | Documentation | Glish | Learn More | Programming | Contact Us |
![]() | Version 1.9 Build 1367 |
|
The ImagingModel is a means of connecting a specific observation
or observing mode
(e.g., VLA or MERLIN observation) to a method which is to
be used in making images from Yegs associated with that observation,
together with the inverse operation for predicting Yegs from a
model or estimated Image.
The purpose of this is to provide a flexible means of switching between the
various methods for a given observation, and to encapsulate all information
about the relevant measurement equations in one place. A telescope forms
an image which we will represent by a
vector
which can
be described by a linear equation
= A
where
denotes the observed, calibrated Yegs. This linearity holds
for most cases currently of interest, but is not crucial. An interferometer
without
primary beam correction has elements of A which are simply complex
phasors whereas for a single dish the
elements correspond to points in the primary beam. PredictYegs thus
corresponds to calculating
= A
whereas InvertYegs
corresponds to performing the transpose operation
= AT(
) where the weights
can be chosen using
CalcWeights.
Note that the scheme should cope with other inversion schemes which are specific to a given type of ImagingModel, but where the transpose relationship does not apply. So long as PredictYegs and InvertYegs exist, any other methods can be attached to the ImagingModel.
To treat two telescopes as the same (e.g., for making uniformly weighted images using data from multiple telescopes such as MERLIN and the VLA), each must use the same instantiation of the ImagingModel; this might look something like:
// Instantiate imaging model. IntImagingModel intim(FALSE,FALSE); // Use the same imaging model for the MERLIN // and VLA Telescopes. VLA.ImagingModel = intim; MERLIN.ImagingModel = intim; // Perform the inversion on a mixture of data. Dirty = intim.invert (SomeYegSet);Here, IntImagingModel is a class derived from ImagingModel, which applies for interferometers. It requires some parameters for initialisation (e.g., is the model to include primary beam effects?). This allows the Yegs from the two different Telescopes to be recognised as requiring the same treatment, whilst any others would require a different model.
ImagingModels are typically used by a higher level application such as mosaicing methods. One makes appropriate instances of ImagingModels and connects them to the Telescopes which require them:
// Instantiate imaging models for interferometer and single dish. IntImagingModel intim(TRUE,FALSE); BeamSwitchSDImagingModel bssdim(FALSE); // Use appropriate imaging models VLA.ImagingModel = intim; GBT.ImagingModel = bssdim; // Instantiate image tool... MosaicTool mt(100,10.9,11.6); // ...and use it. SkyImage Result = mt.Estimate(YegSet);In this example, BeamSwitchSDImagingModel is a derived class, for single dish beam-switched experiments. We assign these two imaging models to a VLA and a GBT Telescope, respectively.