casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables
Functions
gaincal Namespace Reference

Functions

def gaincal

Function Documentation

def gaincal.gaincal (   vis = '',
  caltable = '',
  field = '',
  spw = '',
  intent = '',
  selectdata = True,
  timerange = '',
  uvrange = '',
  antenna = '',
  scan = '',
  observation = '',
  msselect = '',
  solint = 'inf',
  combine = '',
  preavg = -1.0,
  refant = '',
  minblperant = 4,
  minsnr = 3.0,
  solnorm = False,
  gaintype = 'G',
  smodel = [],
  calmode = 'ap',
  append = False,
  splinetime = 3600.0,
  npointaver = 3,
  phasewrap = 180.0,
  gaintable = [''],
  gainfield = [''],
  interp = [''],
  spwmap = [],
  gaincurve = False,
  opacity = [],
  parang = False 
)
Determine temporal gains from calibrator observations

      The complex gains for each antenna/spwid are determined from the
      data column (raw data) divided by the model column.  The gains can
      be obtained for a specified solution interval, spw combination and
      field combination.  The GSPLINE spline (smooth) option is still under
      development.

      Previous calibrations (egs, bandpass, opacity, parallactic angle) can
      be applied on the fly.  At present with dual-polarized data, both
      polarizations must be unflagged for any solution to be obtained.

      Keyword arguments:
      vis -- Name of input visibility file
      default: none; example: vis='ngc5921.ms'
      caltable -- Name of output gain calibration table
      default: none; example: caltable='ngc5921.gcal'

      --- Data Selection (see help par.selectdata for more detailed information)

      field -- Select field using field id(s) or field name(s).
         ['go listobs' to obtain the list id's or names]
      default: ''=all fields
      If field string is a non-negative integer, it is assumed a
        field index,  otherwise, it is assumed a field name
      field='0~2'; field ids 0,1,2
      field='0,4,5~7'; field ids 0,4,5,6,7
      field='3C286,3C295'; field named 3C286 and 3C295
      field = '3,4C*'; field id 3, all names starting with 4C
  DON'T FORGET TO INCLUDE THE FLUX DENSITY CALIBRATOR IF YOU HAVE ONE
      spw -- Select spectral window/channels 
       type 'help par.selection' for more examples.
     spw='0~2,4'; spectral windows 0,1,2,4 (all channels)
     spw='<2';  spectral windows less than 2 (i.e. 0,1)
     spw='0:5~61'; spw 0, channels 5 to 61, INCLUSIVE
     spw='*:5~61'; all spw with channels 5 to 61
     spw='0,10,3:3~45'; spw 0,10 all channels, spw 3, channels 3 to 45.
     spw='0~2:2~6'; spw 0,1,2 with channels 2 through 6 in each.
     spw='0:0~10;15~60'; spectral window 0 with channels 0-10,15-60
               NOTE ';' to separate channel selections
     spw='0:0~10^2,1:20~30^5'; spw 0, channels 0,2,4,6,8,10,
           spw 1, channels 20,25,30
      intent -- Select observing intent
        default: ''  (no selection by intent)
        intent='*BANDPASS*'  (selects data labelled with
                              BANDPASS intent)
      selectdata -- Other data selection parameters
      default: False 

      Must set selectdata=True to use the following selections:

      timerange  -- Select data based on time range:
      default = '' (all); examples,
      timerange = 'YYYY/MM/DD/hh:mm:ss~YYYY/MM/DD/hh:mm:ss'
      Note: if YYYY/MM/DD is missing date defaults to first day in data set
      timerange='09:14:0~09:54:0' picks 40 min on first day
      timerange= '25:00:00~27:30:00' picks 1 hr to 3 hr 30min on NEXT day
      timerange='09:44:00' pick data within one integration of time
      timerange='>10:24:00' data after this time
      uvrange -- Select data within uvrange (default units meters)
      default: '' (all); example:
      uvrange='0~1000klambda'; uvrange from 0-1000 kilo-lambda
      uvrange='>4klambda';uvranges greater than 4 kilo lambda
      antenna -- Select data based on antenna/baseline
      default: '' (all)
      If antenna string is a non-negative integer, it is assumed an
        antenna index, otherwise, it is assumed as an antenna name
      antenna='5&6'; baseline between antenna index 5 and index 6.
      antenna='VA05&VA06'; baseline between VLA antenna 5 and 6.
      antenna='5&6;7&8'; baselines with indices 5-6 and 7-8
      antenna='5'; all baselines with antenna index 5
      antenna='05'; all baselines with antenna number 05 (VLA old name)
      antenna='5,6,10'; all baselines with antennas 5,6,10 index numbers
      scan -- Scan number range.
      Check 'go listobs' to insure the scan numbers are in order.
      observation -- Observation ID(s).
             default: '' = all
             example: '0~2,4'
      msselect -- Optional complex data selection (ignore for now)

      --- Solution parameters
      gaintype -- Type of gain solution (G, T, or GSPLINE)
      default: 'G'; example: gaintype='GSPLINE'
      'G' means determine gains for each polarization and sp_wid
      'T' obtains one solution for both polarizations;  Hence. their
        phase offset must be first removed using a prior G.
      'GSPLINE' makes a spline fit to the calibrator data.  It is
           useful for noisy data and fits a smooth curve through the
           calibrated amplitude and phase.  However,
           at present GSPLINE is somewhat experimental.  Use with
           caution and check solutions.
      'K' solves for simple antenna-based single-band delays
           via FFTs of the spectra on baselines to the
           reference antenna.  (This is not global fringe-fitting.)
      'KCROSS' solves for a global cross-hand
           delay.  Use parang=T and apply prior gain and
           bandpass solutions.
      smodel -- Point source Stokes parameters for source model (experimental)
      default: [] (use MODEL_DATA column)
      example: [1,0,0,0] (I=1, unpolarized)
      calmode -- Type of solution
      default: 'ap' (amp and phase); example: calmode='p'
      Options: 'p','a','ap'
      solint --  Solution interval (units optional) 
      default: 'inf' (~infinite, up to boundaries controlled by combine); 
      Options: 'inf' (~infinite), 
               'int' (per integration)
               any float or integer value with or without units
      examples: solint='1min'; solint='60s'; solint=60 --> 1 minute
                solint='0s'; solint=0; solint='int' --> per integration
                solint-'-1s'; solint='inf' --> ~infinite, up to boundaries
                interacts with combine
      combine -- Data axes to combine for solving
      default: '' --> solutions will break at scan, field, and spw
              boundaries
      Options: '','scan','spw',field', or any comma-separated combination
      example: combine='scan,spw'  --> extend solutions over scan boundaries
               (up to the solint), and combine spws for solving
      refant -- Reference antenna name(s); a prioritized list may be specified
      default: '' => no refant applied
      example: refant='4' (antenna with index 4)
               refant='VA04' (VLA antenna #4)
               refant='EA02,EA23,EA13' (EVLA antenna EA02, use
                        EA23 and EA13 as alternates if/when EA02
                        drops out)
      Use taskname=listobs for antenna listing
      minblperant --  Minimum number of baselines required per antenna for each solve
      default = 4
      Antennas with fewer baaselines are excluded from solutions.
      example: minblperant=10  => Antennas participating on 10 or more 
               baselines are included in the solve
      minblperant = 1 will solve for all baseline pairs, even if only
           one is present in the data set.  Unless closure errors are
           expected, use taskname=gaincal rather than taskname=blcal to
           obtain more options in data analysis.
      minsnr -- Reject solutions below this SNR
      default: 3.0 
      solnorm -- Normalize average solution amps to 1.0 after solution (G, T only)
      default: False (no normalization)
      append -- Append solutions to the (existing) table
      default: False; overwrite existing table or make new table
      splinetime -- Spline timescale (sec); used for gaintype='GSPLINE'
      default: 3600 (1 hour); example: splinetime=1000
      Typical splinetime should cover about 3 to 5 calibrator scans.
      npointaver -- Tune phase-unwrapping algorithm for gaintype='GSPLINE'
      default: 3; Keep at this value
      phasewrap -- Wrap the phase for changes larger than this amoun (degrees)
      default: 180; Keep at this value

      --- Other calibrations to apply on the fly before determining gaincal solution

      gaintable -- Gain calibration table(s) to apply 
       default: '' (none);
       examples: gaintable='ngc5921.gcal'
                 gaintable=['ngc5921.ampcal','ngc5921.phcal']
      gainfield -- Select a subset of calibrators from gaintable(s) to apply
       default:'' ==> all sources in table;
       'nearest' ==> nearest (on sky) available field in table
       otherwise, same syntax as field
       example: gainfield='0~2,5' means use fields 0,1,2,5 from gaintable
                gainfield=['0~3','4~6'] means use field 0 through 3
                  from first gain file, field 4 through 6 for second.
      interp -- Interpolation type (in time[,freq]) to use for each gaintable.
        When frequency interpolation is relevant (B, Df, Xf),
        separate time-dependent and freq-dependent interp
        types with a comma (freq _after_ the comma).                
        Specifications for frequency are ignored when the
        calibration table has no channel-dependence.
        Time-dependent interp options ending in 'PD' enable a
        "phase delay" correction per spw for non-channel-dependent
        calibration types.
        default: '' --> 'linear,linear' for all gaintable(s)
        example: interp='nearest'   (in time, freq-dep will be
                                     linear, if relevant)
                 interp='linear,cubic'  (linear in time, cubic
                                         in freq)
                 interp=',spline'  (spline in freq; linear in
                                    time by default)
                 interp=['nearest,spline','linear']  (for multiple gaintables)
        Options: Time: 'nearest', 'linear'
                 Freq: 'nearest', 'linear', 'cubic', 'spline'
      spwmap -- Spectral windows combinations to form for gaintable(s)
        default: [] (apply solutions from each spw to that spw only)
        Example:  spwmap=[0,0,1,1] means apply the caltable solutions
                  from spw = 0 to the spw 0,1 and spw 1 to spw 2,3.
                  spwmap=[[0,0,1,1],[0,1,0,1]]
      gaincurve -- Apply internal VLA antenna gain curve correction (True/False)
       default: False;
       Use gaincurve=True ONLY for VLA data
      opacity -- Opacity correction to apply (nepers), per spw
       default: [] (no opacity correction for any spw)
       examples:
           A global value for all spws:
             opacity=0.051
           Different values for spws 0,1,2:
             opacity=[0.051, 0.055, 0.057]
           (if more than 3 spws, spw 3 and higher will
            be assigned the last specified value, or 0.057)
       Typical VLA values are: 5 GHz - 0.013, 8 GHz - 0.013
       15 GHz - 0.016, 23 GHz - 0.051, 43 GHz - 0.07
      parang -- If True, apply the parallactic angle correction (required
       for polarization calibration)
       default: False
      preavg -- Pre-averaging interval (sec)
      default=-1 (none).
       Rarely needed.  Will average data over periods shorter than
         the solution interval first.
      async --  Run asynchronously
      default = False; do not run asychronously

Definition at line 13 of file gaincal.py.

References task_gaincal.gaincal(), and vla_uvfits_line_sf.verify.