Getting Started Documentation Glish Learn More Programming Contact Us
Version 1.9 Build 1488
News FAQ
Search Home


next up previous contents
Next: 4. Parkes Multibeam Reduction Up: Volume 3 - Telescope Specific Processing Previous: 2. GBT Standard Data Reduction Guide

Subsections



3. ATCA reduction

Mark Wieringa

3.1 Introduction

This chapter describes how to reduce data from the ATNF's Compact Array (ATCA) in AIPS++. It should be read in conjunction with several other chapters in Getting Results, including the chapters which cover i) synthesis calibration, ii) synthesis imaging (including general imaging and mosaicing), iii) display of data, and iv) image analysis.

The data reduction categories covered in this chapter include those for continuum data, continuum polarimetry, spectral line data, and spectral line polarimetry. Individual steps in each data reduction sequence are illustrated using Glish script excerpts. These data reduction steps can equivalently be executed from the Toolmanager GUI interface.

The reduction sequences described in this chapter require some familiarity with the tools listed here:

atcafiller
is used to load ATCA RPFITS file data into an AIPS++ MeasurementSet (MS).

ms
is used to access the MS (e.g. list and summarize visibility data).

msplot
is used for plotting and editing of visibility data, and is useful for investigation and editing during calibration cycles.

Calibrater
is used to apply or solve for a range of antenna-based calibration effects (like gain, bandpass and leakage), and to plot calibration solutions.

Imager
is used to image (Fourier Transform, deconvolve etc.) the data held in the MeasurementSet (MS).

Viewer
is used to examine and display data and perform related operations.

Image
is used to access and analyse images.

The User Reference Manual contains the primary documentation for all these tools and their functions. The aim of this document is to provide pointers to the relevant chapters and examples, and to describe their use in ATCA reduction.

Users are also referred to the Miriad-aips++ dictionary which is a separate chapter in Getting Results, which provides a mapping of some common Miriad tasks to their counterparts in AIPS++.

3.2 MeasurementSets

Visibility data in AIPS++ are stored in an AIPS++ table known as a MeasurementSet (MS). An MS consists of a main table containing the visibility data and associated sub-tables containing auxiliary or secondary information. The full MS data format is described in AIPS++ Note 229. Tables 1 & 2 identify the commonly accessed components of the MAIN table and list data selection parameters used during typical data reduction sessions.

All AIPS++ data files, including MeasurementSets, are written into the current working directory by default, with each AIPS++ Table represented as a separate sub-directory. MS names therefore need only comply with UNIX file or directory naming conventions, and can be referred to from within AIPS++ directly, or via full pathnames.

Each row of the DATA column in the MS contains a matrix of observed complex visibilities at a single time stamp, for a single baseline in a single spectral window. The shape of the data matrix is given by the number of channels and the number of correlations (voltage-products) formed by the backend instrument of the telescope (e.g. a correlator for an array, or a spectrometer for a single dish).


Table: Commonly accessed MAIN Table components (Data, Flags, & Weights only)$\scriptstyle \dagger$
Name Format $\scriptstyle \dagger$$\scriptstyle \dagger$ Comments
DATA Complex(Nc, Nf) Complex visibility matrix
       Observed DATA for synthesis arrays
WEIGHT Float(Nc) Weight for whole data matrix
FLAG Bool(Nc, Nf*) Cumulative data flags
CORRECTED_DATA Complex(Nc, Nf) Corrected data created by calibrater or imager tools
MODEL_DATA $\scriptstyle \dagger$$\scriptstyle \dagger$$\scriptstyle \dagger$ Complex(Nc, Nf) Model data created by calibrater or imager tools
IMAGING_WEIGHT Float(Nc) Imaging weight, e.g. uniform, natural, robust
       Created by calibrater or imager tools


$ \dagger$ Additional data attributes are described in AIPS++ Note 229
$ \dagger$$ \dagger$ Nc= number of correlators, Nf= number of frequency channels.
$ \dagger$$ \dagger$$ \dagger$ The MODEL_DATA column is created with each value having AMP = 1 & phase = 0o.



Table: Common Data Selection Parameters$ \dagger$
Parameter Contents
ANTENNA1 First antenna in baseline
ANTENNA2 Second antenna in baseline
FIELD_ID Field (source no.) identification
SPECTRAL_WINDOW_ID Spectral window number (IF no.)
ARRAY_ID Subarray number
OBSERVATION_ID Observation identification
POLARIZATION_ID Polarization identification
SCAN_NUMBER Scan number
TIME Integration midpoint time
UVW UVW coordinates

$ \dagger$ Selection of data from an MS currently appears in different guises in the various synthesis tools due to independent development of these tools. An effort to reconcile these differences is underway.

3.3 Basic initialization

To load the basic tools likely to be used in ATCA reduction, when working from the command line, the following initialization is recommended at the start of each AIPS++ or Glish command-line session:

include 'synthesis.g'
include 'atcafiller.g'
include 'ms.g'
include 'flagger.g'
include 'image.g'

This is not required when working from the Toolmanager GUI, in which case the tools are loaded automatically when they are selected.

3.4 Filling ATCA data into an AIPS++ MeasurementSet

ATCA data in on-line RPFITS format are read into an AIPS++ MS using the atcafiller tool.

The atcafiller tool can be used to read data from disk or CDROM. It allows selection on scan number, frequency band, frequency range and field name using the select function.

To run the atcafiller:

include 'atcafiller.g'
#
af := atcafiller('c999.ms', filenames="1999-01-01_0101.C999 1999-01-01_0202.C999", 
                  options='reweight')          # Construct
af.select(firstscan=3);                        # data selection
af.fill()                                      # fill the actual data
af.done()                                      # destroy filler tool
#
m := ms('c999.ms')                             # access the MS

In this example, we construct the filler tool from from two input RPFITS files, specifying that we wish to apply lag reweighting to suppress ringing and sources. Then the select function is used to select which data we wish to read from the RPFITS files. Then we call the fill function to actually read and convert the data to the MS.

Data which have been exported from AIPS or Miriad as UVFITS files can be read into an AIPS++ MS using the general UVFITS filler ms.fitstoms. For example:

include 'ms.g'
m := fitstoms(msfile='atca.ms', fitsfile='/aips++/data/demo/ATCA.UV')
m.done()

3.5 Data examination and inspection

Once the data have been filled to a MeasurementSet, they can be examined or displayed using various tools. The Catalog tool provides an overview of AIPS++ data files at the highest level, as individual AIPS++ tables of different types (e.g. images, MS, etc) in a given directory. The Catalog tool can be started from Glish as:

include 'catalog.g'
dc.gui()

Here, dc is the default catalog tool. It can also be accessed via the Toolmanager interface from the Tools in Use button. A mouse click on an individual MS listed in the catalog GUI followed by a click on the Summary button, will write a summary of the data in the MS to the logger (including frequency and polarization settings and fieldnames). This information is useful during calibration.

When you click on the View button (to view the presently selected catalog item) you will launch the tablebrowser which provides facilities to browse and examine all data fields in the MS main and sub-tables.

Note that indices in the MS, such as FIELD_ID, are stored as integers beginning with zero when viewed at the low level provided by the tablebrowser. All AIPS++ synthesis tools correct for this artifact of c+ + and present selection of indices beginning at one.

The primary graphical visibility data visualization tool in AIPS++ at present is msplot. msplot allows line and raster plots of the observed, corrected, and model data against a range of MS indices and parameters, as well as associated plots such as uv-coverage. Facilities are provided to support versatile data selection, range setting and plot iteration. Interactive editing is also supported, as described in the next section. It can be started from Glish via:

include 'msplot.g'
p := msplot(msfile='data.ms',
            edit=T);                # Allow editing as well as inspection

This will launch a gui for plot type and data selection. It can also be launched from the toolmanager via the Synthesis package, and ms module.

Consult the msplot documentation for more information on using this tool.


3.6 Data editing

Command-based, interactive and automated editing capabilities are supported in the flagger tool.

To start the flagger tool, type the following:

  

fg:= flagger(msfile='mydata.ms')        # start the flagger tool

3.6.0.1 Direct (command-based) editing

The flagger tool offers several directed editing (flagging) operations. In general, this involves selecting the data to be flagged (based in indices, timeranges, etc.), then running a flagging operation. The flagging commands all have the option to run them on a trial basis. To flag data from antenna=5, spw=1, field=2, within a timerange:

fg.setantennas(ants=5)                       # Select data including antenna 5
fg.setids(spectralwindowid=1,fieldid=2)      # Select spectral id and field id
fg.settimerange(starttime="24-FEB-2000/10:00:05",  # Select timerange
                  endtime="24-FEB-2000/10:09:37");   
fg.state();                                  # Review data selection   
fg.flag(trial=T);                            # Trial run to see how many rows
                                             #   will be flagged
fg.flag();                                   # Flag it

To reset the data selection, type:

fg.reset();

To flag data from baseline 3-4, spw=2, field=1, within $ \pm$10s of a timestamp:

fg.setbaselines(ants=[3,4])                  # Select data for baseline 3-4
fg.setids(spectralwindowid=2,fieldid=1)      # Select spectral id and field id
fg.settime(centertime="24-FEB-2000/10:00:05",  # Select time and range
           delta="10s");
fg.state();                                  # Review data selection   
fg.flag();                                   # Flag it

The logic in the data selection options is as follows. The two time-related data selection options (set by flagger.settimerange and flagger.settime) are logically OR'd together, and the two antenna-related data selection options (set by flagger.setantennas and flagger.setbaselines are also logically OR'd. The net time selections, net antenna selections, and all other selections are then AND'd together. Note that the data selection persists after the flagging operation flagger.flag is executed. To clear the selection, execute the flagger.reset function, or execute individual selection commands without arguments to clear only that particular selection. For example, to flag all data to antenna 11 for the same spectral window, field, and timestamp as for baseline 3-4 above:

fg.setbaselines();                # Clears baseline selection
fg.setantennas(ants=11);          # Select antenna 11
fg.state();                       # Review data selection
fg.flag();                        # Flag it

To unflag data based on a selection, use the flagger.unflag function. For example, to restore data for baseline 11-15 (that was flagged above):

fg.setantennas();                 # Clears antenna selection
fg.setbaselines(ants=[11,15]);    # Select baseline 11-15
fg.state();                       # Review data selection (note 
                                  #  other selections still in
                                  #  effect)
fg.unflag();                      # undo previous flags

Note that use of flagger.unflag may restore data that had been flagged by other means (e.g., by the on-line system, or by other criteria in previous use of flagger or msplot). In the near future, a flexible means of manipulating flagging versions will be made available in AIPS++.

Consult the flagger tool documentation for more information on the details of data selection.

3.6.0.2 Heuristic editing

Several simple heuristic editing methods are available in the flagger tool. These methods act on the data selected as described above, but add an additional heuristic constraint.

For example, it is usually desirable to flag the auto-correlation data from the VLA (otherwise, the imager tool may attempt to use it in image formation as if it were single dish data). To do this:

fg.reset();                   # Reset the data selection
fg.flagac();                  # Flag the auto-correlations

It is often the case that the VLA data near the beginning of scans (e.g. after field or frequency band changes is bad. To flag such data, use the flagger.quack function. For example, to remove 20 seconds of data at the beginning of scans (defined by gaps larger than 30 seconds) on field 3:

fg.reset();                   # Reset the data selection
fg.setids(fieldid=3);         # Limit quack to fieldid=3 only

fg.quack(scaninterval='30s',  # Trial run of quack
         delta='20s',
         trial=T);

fg.quack(scaninterval='30s',  # Quack it
         delta='20s');

Automated editing methods are available in the flagger and autoflag tools. These include clipping, median flagging and related methods.

For example, to clip data outside of a specified amplitude range with the flagger tool:

fg.setids(fieldid=2, spwid=[1,2]);    # Select field, spw
fg.setpol(pol=[1,4]);                 # Select polarizations 1,4
                                      #  (e.g., RR and LL)
fg.filter(column='DATA',              # Flag data if, DATA column
          operation='range',          #   Amplitudes are outside
          comparison='Amplitude',     #   1.12-1.34
          range=['1.12Jy','1.34Jy'],
          fullpol=T,                  # Extend flags to pols and
          fullchan=T);                #  and chans that weren't 
                                      #  tested

The autoflag tool has more sophisticated algorithms. Examples of its use will be included here in the near future.

3.6.0.3 Finishing flagger

To finish the flagger tool:

fg.done();     # Done with flagging

3.6.1 Interactive editing

Interactive editing is possible on almost all graphical views of the data which are possible in msplot. To enable the editing option, it is necessary to set parameter edit=T when the msplot tool is created. The current set of flags will be saved (for possible restoration later). Select and plot data as in non-editing mode, then draw boxes with the left mouse button to select regions to flag and press the Flag button to flag it. As many flag boxes as desired may be drawn before executing the flags. Use the Locate button to obtain a listing (in the logger) of the data points within the box(es). Note that the listing may be very long if the region selected covers a large number of visibility points.

At this writing the channel and polarization flagging scope selections in msplot will only work if you have elected to plot all channels and/or polarization. This constraint will be relaxed in the near future.

Raster displays of visibility data are possible also, and maybe useful for spectral line data editing.


3.7 Basic Calibration Fundamentals

Calibration and imaging responsibilities are divided between the calibrater and imager tools. The calibrater tool handles visibility-plane calibration while the imager tool deals with image formation, deconvolution and image-plane calibration.

In a typical synthesis observation, a number of calibrators of known structure (usually point sources, and at least one of known flux density) are observed in addition to the scientific target(s) in order to obtain a measure of the systematic properties of the instrument and, if relevant, the corrupting media above it. The effects of these systematic properties are then removed from the data for the scientific target. This technique is often referred to as cross-calibration and its success depends implicitly on the relationship between: 1) the true brightness distribution of the observed radio sources (what we are after); 2) the formal response of the instrument and its variety of imperfections of varying importance (what we are calibrating); 3) and the data that is actually recorded (what we have measured).

The AIPS++ Measurement Equation, originally defined by Hamaker, Bregman, & Sault (1996a, 1996b), is an explicit description of this relationship. The Measurement Equation (in the visibility plane) for a spectral line polarization calibration is given by

$\displaystyle \vec{V}_{ij}^{}$  =  Bij Gij Dij Pij Tij $\displaystyle \vec{V}_{ij}^{\mathrm{~IDEAL}}$ (3.1)

where:

$ \vec{V}_{ij}^{}$  =   cross-correlations between two polarizations for each of two feeds (i, j) which characterize an individual baseline (e.g. the measured visibilities).
$ \vec{V}_{ij}^{\mathrm{~IDEAL}}$  =   visibilities measured by an ideal interferometer (e.g. no instrumental errors or calibration effects). $ \vec{V}_{ij}^{\mathrm{~IDEAL}}$  =   is directly related to the Fourier Transform of the true polarized sky brightness, $ \vec{I}\,$ = (I, Q, U, V).
Tij  =   Complex gain effects which are polarization-independent, e.g. tropospheric effects, high-frequency opacity corrections, antenna gain as a function of elevation, baseline corrections.
Pij  =   Parallactic angle.
Dij  =   Instrumental polarization response. "D-terms" describe the polarization leakage between feeds (e.g. how much the R-polarized feed picked up L-polarized emission, and vice versa).
Gij  =   Electronic gain response due to components in the signal path between the feed and the correlator. This complex gain term Gij includes the scale factor for absolute flux density calibration, and may include phase and amplitude corrections due to changes in the atmosphere (in leiu of Tij).
Bij  =   Bandpass response.

Note that the Measurement Equation is a matrix equation. $ \vec{V}_{ij}^{}$ and $ \vec{V}_{ij}^{\mathrm{~IDEAL}}$ are 4-vectors with elements for each correlator product, and the Tij, etc., are 4x4 matrices that `corrupt' the correlator products according to the properties of the specific term. The order of the corrupting terms from right-to-left, for the most part, is the order in which the errors affect the incoming wavefront. AIPS++ hardwires the Measurement Equation order and all of the specific algebra associated with the individual terms. As such, it is usually possible to ignore the fact that the Measurement Equation is a matrix equation, and treat the different terms as labeled `components' (black boxes) along the signal path.

In practical calibration, it is often best to begin the calibration process by determining solutions for those terms which affect the data most. Thus, the user would normally determine gain solutions (G) first (applying pre-computed parallactic angle corrections P if doing polarization calibration), then bandpass solutions (B) and/or polarization solutions (D). Errors which are polarization-independent (T) can be determined at any point in the calibration process. T has nearly identical form to G but it located at a different point in the Measurement Equation. A practical advantage to this factorization is the ability to store polarization-independent effects which are characterized by a certain timescale or a particular parametrization (e.g., tropospheric opacity) as a separate calibration factor, thus isolating them from electronic gain effects which may vary on a different timescale and/or with different systematics. Although most data reduction sequences will probably proceed in this order, the user has complete freedom and flexibility to determine the order in which calibration effects are solved for. Self-calibration, the process by which an improved model of the target source is used to obtain improved solutions for the calibration, is also not limited to just the electronic gain (G) corrections, as has been traditionally the case. Improved solutions for, say, the instrumental polarization (D) may be obtained by self-calibration as well. In general, decision-making along the calibration path is a process of determining which effects are dominating the errors in the data and deciding how best to converge upon the optimal set of calibration solutions (for all relevant components) and source models which best describe the observed data.

Once the calibration solutions have been determined, the AIPS++ software applies the solutions according to the order defined by the Measurement Equation. The individual calibration components represented in the Measurement Equation are described in detail in the Synthesis Calibration chapter of Getting Results. The generalization of the Measurement Equation to image plane effects is also described there.

The observed data, $ \vec{V}_{ij}^{}$, are stored in the DATA column in the MAIN table of the MS; these are the raw data as loaded by the filler tool or imported from a UVFITS file. Associated with the DATA column are related columns to hold the most recent version of the calibrated data (CORRECTED_DATA), and the latest visibility plane representation of the source or field model, $ \vec{V}_{ij}^{IDEAL}$, (MODEL_DATA). The latter two columns are filled in by the calibrater and imagertools, respectively. The actual calibration information is stored in separate calibration tables. The observed DATA column does not change during reduction, but the related columns do. When plotting the data using a tool such as msplot, the data sub-types (observed, corrected, and model) can be selected individually.

3.7.1 Setting the calibration source model

When solving for a visibility-plane calibration component, the Calibrater tool requires that the calibrator model be set first. This is stored in the MODEL_DATA column, and used by the Calibrater tool to form $ \chi^{2}_{}$ when solving for calibration components. In general, this process requires transforming a source model from the image-plane to the visibility-plane, including any image-plane calibration effects. For this reason, the AIPS++ functions for converting source models to the visibility plane are attached to the Imager tool.

For the ATCA, the default source model is usually either 1934638 or point sources of unit flux density. If you have used 0823500 as your primary calibrator, or given 1934638 another name, you'll need to set the flux density for it by hand (see below).

To compute source models of this type:

imagr:= imager('atca.ms');         # Create an imager tool
imagr.setjy(fieldid=1);            # Compute source model for primary calibrator OR
imagr.setjy(fieldid=1,spwid=1,fluxdensity=5.6);    # Set flux density explicitly for source
imagr.setjy(fieldid=1,spwid=2,fluxdensity=5.8); 
imagr.done()

In these examples, the source is specified through its fieldid argument. Running the Imager.setjy function without arguments will compute the default point source flux density for all recognized standard sources for all spectral windows in the data. The Imager.setjy function also allows selection by field id. and spectral window id. as required, as well as the specification of an arbitrary Stokes (I, Q, U, V) for individual sources where necessary. The standard sources recognized are [(3C286, 1328+307, 1331+305), (3C48, 0134+329, 0137+331), (3C147, 0538+498, 0542+498), (3C138, 0518+165, 0521+166), (1934-638), and (3C295, 1409+524, 1411+522)]. At the present time, the flux density is computed for the frequency mid-point of each spectral window using the Perley-Taylor (1995) spectral index coefficients by default. All unrecognized sources, will be set to unit Stokes I flux density. (Note that the MODEL_DATA for all sources is already set to unity when this column if first created, so you don't normally need to do this again here.)

Arbitrary source models can be set using the Imager.ft method, which will transform images and source model components, as required.

3.7.2 Solving for complex gain, bandpass and leakage

The individual calibration effects in the ME, which are expressed as Jones matrices, are described in the Synthesis Calibration chapter of Getting Results, and the reader is referred there for a more detailed discussion. Each Jones matrix has a specific type; the complex electronic gain is the G Jones component, the bandpass gain is the B Jones component and the polarization leakage is the D Jones component.

For ATCA data with 4 polarizations you will want to solve for G, D and B. If you have spectral-line data with only 1 or 2 polarizations, then you need solve for G and B only. You can solve for more than one spectral window at a time. Solving for D Jones with XX/YY only data will not do anything useful, but generally won't harm either.

First solve for G, D and B Jones using the primary calibrator:

cal := calibrater('atca.ms')                    # Create a calibrater tool
cal.setdata(msselect='FIELD_ID==1')             # Select the primary calibrator (in this case id=1)
cal.setapply(type='P', t=10.0);                 # Correct for parallactic angle with 10 sec sampling.
cal.setsolve(type='G', t=30.0, table='cal.G')   # Solve for G Jones in 30 sec intervals
cal.setsolve(type='B', t=1.e6, table='cal.B')   # Solve for B Jones with an interval larger than your observation
cal.setsolve(type='D', t=1.e6, table='cal.D')   # Solve for D Jones with an interval larger than your observation
cal.solve();                                    # Do the actual solution
cal.plotcal(tablename='cal.G');                 # Plot the calibration solution obtained
cal.done()                                      # Destroy the calibrater tool

Now solve for the G Jones term using the secondary calibrator(s), e.g.:

cal := calibrater('atca.ms')                           # Create a new calibrater tool
cal.setdata(msselect='FIELD_ID==2')                    # Select the secondary calibrator (in this case id=2)
cal.setapply(type='P', t=10.0)                         # Correct for parallactic angle with 10 sec sampling.
cal.setapply(type='B', table='cal.B')                  # Apply B Jones solved for on primary
cal.setapply(type='D', table='cal.D')                  # Apply D Jones solved for on primary
cal.setsolve(type='G', t=60.0, table='cal.G',append=T) # Solve for G Jones in 60 sec intervals; append output
cal.solve()                                            # Do the actual solution
cal.plotcal(tablename='cal.G',plottype='PHASE',fields=2);  # Plot the calibration solution obtained

Generally you should use the above scheme, but if you want or need to (e.g. if you used 0823-500 as your primary calibrator), you can solve for D (and/or B) using the secondary instead of the primary, and just use the latter for the absolute fluxscale. If you want to solve for D using the secondary the process would look like this:

cal := calibrater('atca.ms')                    # Create a calibrater tool
cal.setdata(msselect='FIELD_ID==1')             # Select the primary calibrator (in this case id=1)
cal.setapply(type='P', t=10.0);                 # Correct for parallactic angle with 10 sec sampling.
cal.setsolve(type='G', t=30.0, table='cal.G')   # Solve for G Jones in 30 sec intervals
cal.setsolve(type='B', t=1.e6, table='cal.B')   # Solve for B Jones with an interval larger than your observation
cal.solve();                                    # Do the actual solution
cal.done()                                      # Destroy the calibrater tool

Now solve for the G Jones and D Jones terms using the secondary calibrator, e.g.:

cal := calibrater('atca.ms')                           # Create a new calibrater tool
cal.setdata(msselect='FIELD_ID==2')                    # Select the secondary calibrator (in this case id=2)
cal.setapply(type='P', t=10.0)                         # Correct for parallactic angle with 10 sec sampling.
cal.setapply(type='B', table='cal.B')                  # Apply B Jones solved for on primary
cal.setsolve(type='G', t=60.0, table='cal.G',append=T) # Solve for G Jones in 60 sec intervals; append output
cal.setsolve(type='D', t=1.e6, table='cal.D')          # Solve for D Jones using secondary
cal.solve()                                            # Do the actual solution
cal.plotcal(tablename='cal.G',plottype='PHASE',fields=2);  # Plot the calibration solution obtained

Note that the G Jones term, although designated as electronic gain, will include an atmospheric contribution, as solved for here. If separable, atmospheric corrections (e.g., WVR corrections) can be separately set or solved for as T Jones. The inclusion of a parallactic angle correction P Jones is required for all ATCA reduction, see the following section.

3.7.3 Correcting the gains for polarization of the calibrators

The gain solutions were generated with an unpolarized unit point source model for all calibrators unrecognized by Imager.setjy. In practice calibrators often have noticable linear polarization of up to 10% or so. This is not a problem for telescopes with circular feeds, but for telescopes with linear feeds, like the ATCA, this causes a small time variation in the gains proportional to the percentage polarization of the calibrator. The calibrator polarization can be determined from the variation of the X and Y gain solutions with changing feed position angle. After determining the polarization we can correct the gains for this effect. Note that this only works correctly if the calibrator has been observed over a sufficient range in position angle. Generally 5 or more scans with a span of at least 90 degrees in position angle is sufficient. The quality of the polarization solution can be checked by looking at the fit error, it should generally be smaller than 0.5% in Q and U. The correction is performed using the Calibrater.linpolcor function.

cal.linpolcor(tablein='cal.G', fields="0405-385 2254-367");

This corrects the calibration table entries for sources 0405-385 and 2254-367 and updates the table. If you add a tableout argument, it will write the updated table to a new file. (Note: using double quotes like in the example above produces a vector of values, split at each space, another way to specify the fields argument would be: fields=['0405-385','2254-367']).

3.7.4 Establishing the flux density scale

For point sources of unknown flux density, but for which valid solutions have been derived against a unit point source model, the absolute flux density can be established by scaling the mean gain moduli against those of the known amplitude calibrators recognized by Imager.setjy. This scaling is achieved by adjusting the G Jones calibration table, after determining the amplitude calibration factors, as:

cal.fluxscale(tablein='cal.G', reference='1934-638',     # scale the gains
              transfer="0405-385 2254-367");
cal.done();

In this case, the amplitude scale is set with 1934638 as the reference. The calibration table cal.G will be updated with the scaled G Jones calibration factors, and will be used going forward in the reduction.

3.8 Imaging

Imaging is performed using the Imager tool, which supports a broad range of imaging modes and deconvolution algorithms, as described in the Synthesis Imaging chapter in Getting Results.

3.8.1 Correct the data

Before imaging, the data need to be corrected by applying the Jones matrices determined in the calibration:

cal:= calibrater('atca.ms')
cal.setapply(type='P', t=10.0)            # Apply parallactic angle 
cal.setapply(type='G', table='cal.G')     # Apply the G Jones solutions
cal.setapply(type='D', table='cal.D')     # Apply the D Jones solutions
cal.setapply(type='B', table='cal.B')     # Apply the B Jones solutions
cal.correct()                             # Correct the data
cal.done()

This action fills the CORRECTED_DATA column, which can be used directly in further imaging.

3.8.2 Basic imaging

The Imager tool, which can be used to make images for each field or source, requires initial selection of the visibility data and initialization of the imaging coordinates. Imaging, deconvolution and image restoration operations are then possible, as described in the Imaging chapter of Getting Results or in more detail in the Imager documentation. A single-field, continuum ATCA image can be made as follows:

imagr := imager('atca.ms')                          # Create an imager tool
imagr.setdata(fieldid=3, mode='channel', nchan=25,  # Select field id. 3, 25 channels
              start=5, step=1, spwid=2)             # and spectral window id. 2
#
imagr.setimage(nx=256, ny=256, cellx='0.4arcsec',   # Set imaging parameters
               celly='0.4arcsec', stokes='IQUV',    # use mfs mode to combine all selected channels
               mode='mfs', nchan=1)
#
imagr.clean(algorithm='clark', niter=500, gain=0.1, # Image, and deconvolve using the Clark CLEAN.
            threshold='0.0Jy', 
            model='1331-g1.model',                  # Save model
            image='1331-g1.restored',               # Save restored
            residual='1331-g1.residual')            # Save residual
imagr.done();
#
im:= image('1331-g1.restored')                      # View restored image
im.view()                                  
#
im2 := image('1331-g1.residual');                   # View residual image
im2.view()

Note that the deconvolved image model is written to the image file 1331-g1.model. If non-zero on entry to the clean function, it will be subtracted before imaging. This is how you restart the deconvolution. In the above example we are not restarting so the model image is made for you.

The imaging parameters may be selected automatically using Imager.advise (not recommended for ATCA data at this time). For further information on any imaging parameters or options, please consult the full Imager documentation.

3.9 References

Hamaker, J.P., Bregman, J.D., and Sault, R.J., 1996a, A&AS, 117, 137. Sault, R.J., Hamaker, J.P., and Bregman, J.D., 1996b, A&AS, 117, 149.

3.10 Acknowledgements

This chapter is based on the VLA chapter, with modifications where appropriate.


next up previous contents
Next: 4. Parkes Multibeam Reduction Up: Volume 3 - Telescope Specific Processing Previous: 2. GBT Standard Data Reduction Guide   Contents