ALMA SIS14 apcal: Difference between revisions

From CASA Guides
Jump to navigationJump to search
Aleroy (talk | contribs)
Aleroy (talk | contribs)
No edit summary
Line 59: Line 59:
Following the earlier lesson, we pick out DV22 as a reasonable reference antenna that sits near the center of the array.
Following the earlier lesson, we pick out DV22 as a reasonable reference antenna that sits near the center of the array.


== Phase Calibration (per Scan) ==
== Phase Calibration ==


First, we calibrate phase as a function of time.
Our first calibration step is to derive a phase correction for each antenna as a function of time. The task '''gaincal''' does this, attempting to match the DATA column (i.e., the measurements) to the MODEL column (the expected visibility). In the absence of any MODEL column (and this is the case here), gaincal tries to match the observed data to a point source of amplitude 1 Jy at the center of the field (we'll discuss the correct amplitude scaling in an upcoming lesson).


Now we calibrate the phase correction for each antenna as a function of time.
For now, calibrate the phase only corrections using:


<source lang="python">
<source lang="python">
Line 76: Line 76:
         gaintype="G")
         gaintype="G")
</source>
</source>
These commands do the following. First, we delete any previous table. Then we tell gaincal to consider the measurement set "sis14_ampandphase.ms" (via '''vis'''). We tell it that we want the output written to the calibration table "phase.cal" (via '''caltable'''). We tell it to consider only the quasar, which we know is field number 0 from the listobs ('''field'''=0). We ask gaincal to solve only for the phase solutions by saying '''calmode'''="p". We specify DV22 as our reference antenna ('''refant'''). Finally, we ask gaincal to solve for a correction for each "correlation" (i.e., each polarization) by specifying '''gaintype'''="G". Finally, we specify that we want to combine data across the longest possible time interval by setting the solution interval to infinity ('''solint'''="inf"), ''but'' because gaincal will not combine across scans (or spws or fields) by default, '''solint'''="inf" can be read "solve for the phase correction for each antenna for each scan."
Run this command the results will be written to a new directory, "phase.cal" that contains the calibration table holding the phase corrections.


Now we plot the results of the calibration.
Now we plot the results of the calibration.

Revision as of 22:28, 28 February 2014

This lesson steps through the basic calibration of the phase and amplitude response of each telescope as a function of time.

Setup

To run this tutorial, you need the measurements set "sis14_ampandphase.ms." This measurement set contains only a quasar (the phase calibrator from the parent data set). If you are using the pre-provided directory structure then you want to work in the directory:

lessons/basic_cal/

(relative to the root for the package) and you can copy the data to your working directory using the commands

# In CASA
os.system("rm -rf sis14_ampandphase.ms")
os.system("cp -r ../../working_data/sis14_ampandphase.ms sis14_ampandphase.ms")

With this measurement set in place, you can follow the tutorial below inside the "basic_cal/" directory.

Overview

This lesson covers basic calibration. We will use observations of a quasar, which can be assumed to be a point source at the middle of the field. Mainly using the task gaincal, we will derive the time-dependent corrections to the phase and amplitude response of each antenna that case the observations to best match this model. These corrections are stored in calibration table by CASA and can then be applied to the data, correcting observations of both the source and the quasar. There is an underlying assumption here about the quasar's geometry (point source) and that antenna-dependent terms are calibration issues rather than something astronomical. The latter is a very good assumption that underlies most of the calibration we do. The geometry of the quasar can be checked and modeled in a more sophisticated way if necessary. A future lesson gives an example for planets.

The flow of the lesson is:

  • We orient ourselves using listobs
  • We derive phase corrections for each antenna using gaincal
  • We inspect these phase corrections using plotcal
  • We derive amplitude corrections for each antenna using gaincal and taking into account the phase corrections
  • We inspect the amplitude corrections using plotcal

After the main lesson we discuss some additional options and advanced strategies that can be used with gaincal.

Get Oriented

First, as usual we orient ourselves by looking at the output of listobs (and perhaps plotants or a plotms call). See the lesson on getting started for more details.

# In CASA
listobs("sis14_ampandphase.ms")

A snippet of the output is here:

2014-02-28 19:56:10 INFO listobs	  19-Nov-2012/07:52:42.0 - 07:53:47.6    10      0 J1037-295                 2760  [0]  [6.05] [CALIBRATE_PHASE#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE]
2014-02-28 19:56:10 INFO listobs	              08:04:36.3 - 08:05:41.9    14      0 J1037-295                 3000  [0]  [6.05] [CALIBRATE_PHASE#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE]
2014-02-28 19:56:10 INFO listobs	              08:16:20.6 - 08:17:26.2    18      0 J1037-295                 3000  [0]  [6.05] [CALIBRATE_PHASE#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE]
2014-02-28 19:56:10 INFO listobs	              08:28:17.1 - 08:29:22.6    22      0 J1037-295                 3000  [0]  [6.05] [CALIBRATE_PHASE#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE]
2014-02-28 19:56:10 INFO listobs	              08:40:11.9 - 08:41:17.4    26      0 J1037-295                 3000  [0]  [6.05] [CALIBRATE_PHASE#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE]
2014-02-28 19:56:10 INFO listobs	              08:51:57.1 - 08:53:02.6    30      0 J1037-295                 3000  [0]  [6.05] [CALIBRATE_PHASE#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE]
2014-02-28 19:56:10 INFO listobs	              09:01:35.7 - 09:02:41.2    34      0 J1037-295                 2530  [0]  [6.05] [CALIBRATE_PHASE#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE]
2014-02-28 19:56:10 INFO listobs	              09:09:59.1 - 09:11:04.7    38      0 J1037-295                 2530  [0]  [6.05] [CALIBRATE_PHASE#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE]

From the output of listobs we can see that this data set contains a single spectral window and a single source, the quasar J1037-295. The was the phase calibrator for the original data set (note the scan intent of "CALIBRATE_PHASE") and was originally visited in between integrations on the science source. Each visit to the the quasar was about a minute long.

Following the earlier lesson, we pick out DV22 as a reasonable reference antenna that sits near the center of the array.

Phase Calibration

Our first calibration step is to derive a phase correction for each antenna as a function of time. The task gaincal does this, attempting to match the DATA column (i.e., the measurements) to the MODEL column (the expected visibility). In the absence of any MODEL column (and this is the case here), gaincal tries to match the observed data to a point source of amplitude 1 Jy at the center of the field (we'll discuss the correct amplitude scaling in an upcoming lesson).

For now, calibrate the phase only corrections using:

# In CASA
os.system("rm -rf phase.cal")
gaincal(vis="sis14_ampandphase.ms",
        caltable="phase.cal",
        field="0",
        solint="inf",
        calmode="p",
        refant="DV22",
        gaintype="G")

These commands do the following. First, we delete any previous table. Then we tell gaincal to consider the measurement set "sis14_ampandphase.ms" (via vis). We tell it that we want the output written to the calibration table "phase.cal" (via caltable). We tell it to consider only the quasar, which we know is field number 0 from the listobs (field=0). We ask gaincal to solve only for the phase solutions by saying calmode="p". We specify DV22 as our reference antenna (refant). Finally, we ask gaincal to solve for a correction for each "correlation" (i.e., each polarization) by specifying gaintype="G". Finally, we specify that we want to combine data across the longest possible time interval by setting the solution interval to infinity (solint="inf"), but because gaincal will not combine across scans (or spws or fields) by default, solint="inf" can be read "solve for the phase correction for each antenna for each scan."

Run this command the results will be written to a new directory, "phase.cal" that contains the calibration table holding the phase corrections.

Now we plot the results of the calibration.

# In CASA
plotcal(caltable="phase.cal", 
        xaxis="time",
        yaxis="phase",
        subplot=331,
        iteration="antenna",
        plotrange=[0,0,-180,180])

Amplitude Calibration (per Scan)

Now calibrate the amplitude response of each antenna as a function of time.

# In CASA
os.system("rm -rf amp.cal")
gaincal(vis="sis14_ampandphase.ms",
        caltable="amp.cal",
        field="0",
        solint="inf",
        calmode="a",
        refant="DV22",
        gaintype="G",
        gaintable="phase.cal")

Plot the results of this fit.

# In CASA
plotcal(caltable="amp.cal", 
        xaxis="time",
        yaxis="amp",
        subplot=331,
        iteration="antenna",
        plotrange=[0,0,0,0])

Phase and Amplitude Calibration (per Integration)

We can also solve for the antenna corrections on shorter timescales.

# In CASA
os.system("rm -rf apcal_int.cal")
gaincal(vis="sis14_ampandphase.ms",
        caltable="apcal_int.cal",
        field="0",
        solint="int",
        calmode="ap",
        refant="DV22",
        gaintype="G")

Plot the per-integration variation of the phase.

# In CASA
plotcal(caltable="apcal_int.cal", 
        xaxis="time",
        yaxis="phase",
        subplot=331,
        iteration="antenna",
        plotrange=[0,0,-180,180])

Now plot the per-integration variation of the amplitude.

# In CASA
plotcal(caltable="apcal_int.cal", 
        xaxis="time",
        yaxis="amp",
        subplot=331,
        iteration="antenna",
        plotrange=[0,0,0,0])

Advanced Considerations

Averaging Options

"Layering" Calibrations

Removing Short-Timescale Phase Variations Before Amplitude Calibration?