; RFI
;---------------------------------------------------------------
;! Look for RFI in uv data
;# TASK  CALIBRATION OOP EDITING
;-----------------------------------------------------------------------
;;  Copyright (C) 1995-1996, 1999-2000, 2003, 2006-2007, 2010
;;  Associated Universities, Inc. Washington DC, USA.
;;
;;  This program is free software; you can redistribute it and/or
;;  modify it under the terms of the GNU General Public License as
;;  published by the Free Software Foundation; either version 2 of
;;  the License, or (at your option) any later version.
;;
;;  This program is distributed in the hope that it will be useful,
;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;  GNU General Public License for more details.
;;
;;  You should have received a copy of the GNU General Public
;;  License along with this program; if not, write to the Free
;;  Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,
;;  MA 02139, USA.
;;
;;  Correspondence concerning AIPS should be addressed as follows:
;;         Internet email: aipsmail@nrao.edu.
;;         Postal address: AIPS Project Office
;;                         National Radio Astronomy Observatory
;;                         520 Edgemont Road
;;                         Charlottesville, VA 22903-2475 USA
;-----------------------------------------------------------------------
RFI      LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
RFI      Look for RFI in a uv data set.
INNAME                             Input UV data
INCLASS                            Input UV data (class)
INSEQ                              Input UV data (seq. #)
INDISK                             Input UV data disk drive #
SOURCES                            Source (pointings) list
QUAL            -10.0              Source qualifier -1=>all
CALCODE                            Calibrator code '    '=>all
TIMERANG                           Time range to process.
SELBAND                            Bandwidth to select (kHz)
SELFREQ                            Frequency to select (MHz)
FREQID                             Freq. ID to select.
BIF               0.0      100.0   Lowest IF number 0=>all
EIF               0.0      100.0   Highest IF number 0=>all
BCHAN             0.0     2048.0   Lowest channel number 0=>all
ECHAN             0.0     2048.0   Highest channel number 0=>all
SUBARRAY          0.0     1000.0   Subarray, 0=>all
DOCALIB          -1.0      101.0   > 0 calibrate data & weights
                                   > 99 do NOT calibrate weights
GAINUSE                            CL/SN table to apply
DOPOL            -1.0       10.0   If >0 correct polarization.
PDVER                              PD table to apply (DOPOL>0)
BLVER                              BL table to apply.
FLAGVER                            Flag table version
DOBAND           -1.0       10.0   If >0 apply bandpass cal.
                                   Method used depends on value
                                   of DOBAND (see HELP file).
BPVER                              Bandpass table version
SMOOTH                             Smoothing function. See
                                   HELP SMOOTH for details.
UVRANGE         0.                 Min & max baseline (klambda)
SOLINT                             Time interval (sec)
BPARM                              (1) Fraction allowable bad
                                   baselines.
                                   (2) rms cutoff (Jy)
                                   (3) Amp. factor for cutoff
DOCRT            -1.0     132.0    > 0 -> use the terminal,
                                   else use the line printer
                                   > 72 => terminal width
OUTPRINT
                                   Printer disk file to save
BADDISK           -1.0      1000.0 Disks to avoid for scratch.
----------------------------------------------------------------
RFI
Type:  Task
 Use:  Detect interference using the rms amplitude in each
       correlator.  Currently works for up to 8 correlators.
       Either single or multisource data files can be processed.

   This task computes the rms sine and cosine fluctuations in
each baseline/correlator and compares them with the value of
BPARM(2) plus the average source amplitude times BPARM(3), in
quadrature.  If the fraction of bad baselines in any correlator
exceeds BPARM(1) a message is generated.
   When a message is generated, the source name and time range
is given followed by a list of logical flags, one per correlator
in the order that they appear in the data.  T indicates that the
corresponding correlator exceeded the maximum number of flagged
baselines; F indicates otherwise.  If the output format is
sufficiently wide, the correlator number and the average rms
value of offending baselines for the worst baseline/correlation
is given.

Adverbs:
  INNAME.....Input UV data file
  INCLASS....Input UV data file (class).      Standard defaults.
  INSEQ......Input UV data file (seq. #).     0 => highest.
  INDISK.....Input UV data file disk drive #. 0 => any.
  SOURCES....List of sources (pointings) to be processed.
             '*' or blank = all; a "-" before a source name
             means all except ANY source named.
  QUAL.......Only sources with a source qualifier number in the
             SU table matching QUAL will be used if QUAL is not
             -1.
  CALCODE...."sources" may be selected on the basis of the
             calibrator code given in the SU table.
                  '    ' => any calibrator code selected
                  '*   ' => any non blank code (cal. only)
                  '-CAL' => blank codes only (no calibrators)
             NB: The CALCODE test is applied in addition to the
             other tests, i.e. SOURCES and TIMERANG, in the
             selection of sources to process.
             CALCODE affects only the selection of calibrators.
  TIMERANG...Time range of the data to be processed. In order:
             Start day, hour, min. sec,
             end day, hour, min. sec. Days relative to ref.
             date.
  SELBAND....Bandwidth of data to be selected. If more than
             one IF is present SELBAND is the width of the
             first IF required. Units = kHz. For data which
             contain multiple bandwidths/frequencies the task
             will insist that some form of selection be made
             by frequency or bandwidth.
  SELFREQ....Frequency of data to be selected. If more than
             one IF is present SELFREQ is the frequency of the
             first IF required. Units = MHz.
  FREQID.....Frequency identifier to select (you may determine
             which is applicable from the OPTYPE='SCAN' listing
             produced by LISTR). If either SELBAND or SELFREQ
             are set, their values overide that of FREQID.
             However, setting SELBAND and SELFREQ may result in
             an ambiguity.  In that case, the task will request
             that you use FREQID.
  DOCALIB....If true (>0), calibrate the data using information in the
             specified Cal (CL) table for multi-source or SN table for
             single-source data.  Also calibrate the weights unless
             DOCALIB > 99 (use this for old non-physical weights).
  BIF........First IF to select. 0=>all.
  EIF........Highest IF to select. 0=>all higher than BIF
  BCHAN......First channel to select. 0=>all.
  ECHAN......Highest channel to select.
             Use BIF, EIF, BCHAN, ECHAN to limit the total number of
             correlators to 8 or fewer.
  SUBARRAY...Subarray number to consider. 0=>all.
  GAINUSE....CL table version number to apply.  0=> highest.
  DOPOL......If > 0.5 then correct data for instrumental polarization
             as represented in the AN or PD table.  This correction is
             only useful if PCAL has been run or feed polarization
             parameters have been otherwise obtained.  See HELP DOPOL
             for available correction modes: 1 is normal, 2 and 3 are
             for VLBI.  1-3 use a PD table if available; 6, 7, 8 are
             the same but use the AN (continuum solution) even if a PD
             table is present.
  PDVER......PD table to apply if PCAL was run with SPECTRAL true and
             0 < DOPOL < 6.  <= 0 => highest.
  BLVER......Version number of the baseline based calibration
             (BL) table to appply. <0 => apply no BL table,
             0 => highest.
  FLAGVER....Specifies the version of the flagging table to be
             applied. 0 => highest numbered table.  <0 => no flagging
             to be applied.
  DOBAND.....If true (>0) then correct the data for the shape of the
             antenna bandpasses using the BP table specified by BPVER.
             The correction has five modes:
             (a) if DOBAND=1 all entries for an antenna in the table
             are averaged together before correcting the data.
             (b) if DOBAND=2 the entry nearest in time (including
             solution weights) is used to correct the data.
             (c) if DOBAND=3 the table entries are interpolated in
             time (using solution weights) and the data are then
             corrected.
             (d) if DOBAND=4 the entry nearest in time (ignoring
             solution weights) is used to correct the data.
             (e) if DOBAND=5 the table entries are interpolated in
             time (ignoring solution weights) and the data are then
             corrected.
  BPVER......Specifies the version of the BP table to be applied
  SMOOTH.....Specifies the type of spectral smoothing to be applied to
             a uv database . The default is not to apply any smoothing.
             The elements of SMOOTH are as follows:
             SMOOTH(1) = type of smoothing to apply: 0 => no smoothing
               To smooth before applying bandpass calibration
                 1 => Hanning, 2 => Gaussian, 3 => Boxcar, 4 => Sinc
               To smooth after applying bandpass calibration
                 5 => Hanning, 6 => Gaussian, 7 => Boxcar, 8 => Sinc
             SMOOTH(2) = the "diameter" of the function, i.e. width
               between first nulls of Hanning triangle and sinc
               function, FWHM of Gaussian, width of Boxcar. Defaults
               (if < 0.1) are 4, 2, 2 and 3 channels for SMOOTH(1) =
               1 - 4 and 5 - 8, resp.
             SMOOTH(3) = the diameter over which the convolving
               function has value - in channels.  Defaults: 1,3,1,4
               times SMOOTH(2) used when input SMOOTH(3) < net
               SMOOTH(2).
  UVRANGE....(Minimum,Maximum) baseline (kilo-lambda) to process.
  SOLINT.....The interval over which the rms is determined.
             0 => 60 seconds.
  BPARM......Task enrichment parameters:
  BPARM(1)...The fraction of baselines which can exceed the rms
             limit before the integration is listed as bad.
             0 => 0.25
  BPARM(2)...The maximum allowable sine/cosine rms per
             baseline/correlator.  No default.
  BPARM(3)...Source amplitude coefficient for determining bad
             baselines.  The maximum allowed rms is given by:
              sqrt (BPARM(2)**2 + (avg_amp*BPARM(3))**2)
             Note: the value of BPARM(3) is a compromise between
             false detection of interference on strong sources
             and missing interference on weak sources as the
             interference may mimic a strong source.
  DOCRT......False (<= 0) use the line printer if OUTPRINT = ' '
                   else write named OUTPRINT file only.
             True  (> 0) use the terminal interactively.  The task will
                   use the actual terminal width as a display limit
                   unless 72 < DOCRT < width.  In that case, the display
                   limit will be DOCRT characters.
  OUTPRINT...Disk file name in which to save the line printer output.
             ' ' => use scratch and print immediately for interactive
             jobs - batch jobs use OUTPRINT = 'PRTFIL:BATCHjjj.nnn'
             (jjj= job #, nnn = user #).  When OUTPRINT is not blank,
             multiple outputs are concatenated, and the file is not
             actually printed.
  BADDISK...This array contains the numbers of disks on which
            it is desired that scratch files not be located.
            BADDISK has no effect input data.
----------------------------------------------------------------
RFI:  Task to find periods of interference
Documentor:  W. D. Cotton NRAO
Related Programs: TVFLG, UVFLG

   The purpose of this task to to find periods of interference
based on high values of the RMS of either the sine or cosine
parts of the visibilities in a given interval.  Each baseline
and correlator is analysed separately and if the fraction of
baselines on a given correlator (e.g. IF 2, channel 1, RR)
exceeds a specified level this interval is listed in the output.

Correlators

   Correlators are specified by a correlator number.  This
number is the number in a sequence with polarization (RR, LL,
RL, LR) varying the fastest, then frequency channel, then IF.
For VLA continuum data correlator 6 is IF 2 LL.
