The software to perform self-calibration is workable and reasonable flexible, although it is rather inelegant. In part, this software has not been upgraded from the time before the `joint approach' suite was developed in Miriad.

The self-calibration process is performed in two main steps (there is a minor third step). First the task demos (``de-mosaic'') is used to break the model produced by mosmem into models for individual pointings. That is, demos produces many models each one of which corresponds to the nominally true sky multiplied by the primary beam pattern at a pointing. The second step is performed by task selfcal (gpscal cannot cope with mosaiced observations). Task selfcal takes all the models simultaneously and then, for each visibility in the input visibility dataset, it computes a model visibility using the model with the same pointing centre. The observed and model visibilities are then processed by a conventional antenna-gain solver, to produce a table of antenna gains vs time.

In reality, antenna gains will be a function of both time and pointing centre. However selfcal assumes that the gains are purely a function of time - not pointing. In practice this should not be a great problem, as time and pointing change together, and integrations that are close in time will also be close on the sky. Note that, short of setting a self-calibration solution interval to be smaller than the integration time, you cannot be sure that a solution interval will contain data from a single pointing.

In the above process, only a subset of all pointings need be used in the self-calibration process. If, for example, you have a strong source in one pointing and all the other pointings have only weak emission, it may well be appropriate to assume that the antenna gains are completely independent of pointing. In this case, the gains can be determined from the one strong field.

We now address the steps in more detail:

  1. The demos step: This step consists of producing a number of models, one for each pointing. The inputs are described in turn. Typical inputs to demos are:
    map=lmc.model Model produced by mosmem.
    vis=lmc.uv The visibility dataset to be self-calibrated.
    select Leave unset if self-calibrating with all pointings, or
    select=source(lmc_123,lmc_124) select just the fields to be used in the self-calibration process.
    out=lmc.dmos. Output name template.
    options=detaper Account for any residual primary beam attenuation.
    pbtype Generally leave unset.
    imsize Generally leave unset.

  2. The selfcal step: In general, the inputs to selfcal are fairly conventional - see Chapter 15 for more information. There are, however, multiple input models (produced by demos) corresponding to each of the pointings to be used in the self-calibration. Note that wildcards will generally make this easy. The other difference which you must remember is to use options=mosaic to invoke the mosaicing machinery. Note also that selfcal will not use a visibility of a particular pointing if there is no model for this pointing. Thus, if you are self-calibrating using only a few of the stronger pointings, you do not have to explicitly select the data for these pointings.

    Typical inputs are:

    model=lmc.dmos.* Models produced by demos.
    vis=lmc.uv The vis dataset to be self-calibrated.
    select Set as with normal self-calibration.
    options=mosaic,phase Use mosaic mode and phase self-calibration, or
    options=mosaic,amp amplitude/phase self-calibration.

  3. Fixing the interpolation tolerance: As noted in Section 12.4, a Miriad gain table has an associated interpolation tolerance (the time interval over which you can interpolate or extrapolate a gain). Task selfcal will set this to the solution interval. If you are self-calibrating with only a few pointing centres, you will want the gains to apply to the entire cycle through the mosaic grid. In this case, you may well want to increase the interpolation tolerance from the default. See Section 12.4 for the details. In summary, you use puthd with inputs like:
    in=lmc.uv/interval Set the `interval' item of a vis dataset.
    value=0.1 Set the tolerance to 2.4 hours (0.1 days).

Miriad manager