; DFTPL
;---------------------------------------------------------------
;! plots DFT of a UV data set at arbitrary point versus time
;# Task Plot UV
;-----------------------------------------------------------------------
;;  Copyright (C) 1995, 2000, 2008-2009, 2014, 2016
;;  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
;-----------------------------------------------------------------------
DFTPL     LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DFTPL     Plots the DFT of an arbitrary point using UV data
USERID       -32000.0    32000.0   File owner number - ignored
INNAME                             Input UV file name (name)
INCLASS                            Input UV file name (class)
INSEQ             0.0     9999.0   Input UV file name (seq. #)
INDISK            0.0        9.0   Input UV file disk unit #
UVRANGE           0.0              Range of projected spacings
                                     (thousands of wavelengths)
TIMERANG                           Time range to select:
                                     Start Day, Hour, Min, Sec
                                     End Day, Hour, Min, Sec
SHIFT                              Shift in asec at ref position
BPARM                              Control parameters
                                   1 : Correlator number
                                   2 : averaging interval (sec)
                                   3 : > 0.0 => fixed scale
                                       < 0.0 => fixed range
                                   4 : Xmin (fixed scale)
                                   5 : Xmax (fixed scale)
                                   6 : Ymin (fixed scale)
                                   7 : Ymax (fixed scale)
                                   8 : X/Y axis ratio
                                   9 : 1 plots points only
                                       2 plots points and
                                         error bars
                                       3 plots histogram
                                   10 : scale factor for points
SOURCES                            Source name
QUAL            -10.0              Calibrator qualifier -1=>all
CALCODE                            Calibrator code '    '=>all
SELBAND                            Bandwidth to select (kHz)
SELFREQ                            Frequency to select (MHz)
FREQID            0.0              Frequency ID number: 0 -> 1
SUBARRAY          0.0     1000.0   Sub-array, 0=>all
BIF               0.0              First IF to include
EIF               0.0              Last IF to include
BCHAN             0.0              First channel to include
ECHAN             0.0              Last channel to include
DOCALIB          -1.0      101.0   > 0 calibrate data & weights
                                   > 99 do NOT calibrate weights
GAINUSE                            CL (or SN) table to apply
DOPOL            -1.0       10.0   If >0.5 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.5 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.
DOCIRCLE       -1.0         1.0    > 0 => extend ticks to form
                                   coordinate grid
PRTLEV         -1.0                > 0 => print time, flux, and
                                     error to message file
LTYPE        -410.0       410.0    Type of labeling: 1 border,
                                   2 no ticks, 3 - 6 standard,
                                   7 - 10 only tick labels
                                   <0 -> no date/time
DOTV           -1.0         1.0    > 0 Do plot on the TV, else
                                   make a plot file
GRCHAN          0.0         8.0    Graphics channel 0 => 1.
----------------------------------------------------------------
DFTPL
Type: Task
Use:  Plots the DFT of the complex visibilities found in a UV data
      base for an arbitrary point in the sky as a function of time.
      Note that the visibilies are shifted under control of SHIFT and
      then the real parts are simply summed over all baselines in each
      time interval.  Task TBAVG makes a UV data set of the summed
      visibilities instead of plotting them.

      NOTE: This task does NOT apply any flag or calibration tables.
      Run SPLIT or other appropriate task before running DFTPL.
Adverbs:
  USERID.....Input file user number.  Ignored
  INNAME.....Input UV file name (name)    Standard defaults.
  INCLASS....Input UV file name (class)   Standard defaults.
  INSEQ......Input UV file name (seq. #)  0 => highest.
  INDISK.....Disk drive # of input UV file.  0 => any.
  UVRANGE....Range (min, max) of projected baselines to include
             0,0 => all baselines
  TIMERANG...Time range of the data to be plotted. In order:
             Start day, hour, min, sec, End day, hour, min, sec.
             Days relative to reference date.  0 => full range.
  SHIFT......Shift in arcseconds - the data are shifted, summed, and
             then plotted.  These are shifts in arc seconds at the
             reference point -
             RA = RA0 + SHIFT(1)/cos(DEC0), DEC = DEC0 + SHIFT(2)
  BPARM......Control parameters:
     1: 1 => plot RR data only    5 => plot Stokes I
        2 => plot LL data only    6 => plot Stokes V
        3 => plot RL data only    7 => plot Stokes Q
        4 => plot LR data only    8 => plot Stokes U
        9-12 for XX, YY, XY, YX
     2 = averaging interval in seconds (0 => 60)
         NOTE: an interval beginning at a sample time T1 will include
         all samples < T1+BPARM(2).  If your data occur at 5 second
         intervals and you want no averaging, set BPARM(2) < 5.  If
         you want to average pairs of samples, set 5 < BPARM(2) < 10.
     3 = if greater than zero, use BPARM(4) - BPARM(8) as the ranges
         of the axes.  If less than zero, use the BPARMs to limit the
         range of the axes, but self-scale the axes within that range.
         If 0.0, fully self-scaling.
     4 = Minimum of X-axis.  Units = days.
     5 = Maximum of X-axis (if = BPARM(4) do self-scale in X).
     6 = Minimum of Y-axis.  Units = Jy.
     7 = Maximum of Y-axis (if = BPARM(6) do self-scale in Y).
     8 = Ratio of X axis length to Y axis length.
     9 = If 1, simply plot up the point
           -1, plot points and print out results (0 => -1)
         If 2, plot points and error bars
           -2, plot points, error bars, and print out results
         If 3, plot points in histogram form
           -3, plot histogram and print out results
  SOURCES....Source to be copied.   '  '=> all; if any starts with a
             '-' then all except ANY source named.
             NOTE: this task makes sense only if you select a single
             source.
  QUAL.......Qualifier of source to be processed. -1 => all.
  CALCODE....Calibrator code of source to be processed. ' '=> all.
  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
             override that of FREQID.  However, setting SELBAND and
             SELFREQ may result in an ambiguity.  In that case, the task
             will request that you use FREQID.
  SUBARRAY...Sub-array number to process. 0=>all (okay if not
             calibration)
  BIF........Also average IFs BIF-EIF; 0 -> 1
  EIF........Also average IFs BIF-EIF; 0 -> max
  BCHAN......Average channels BCHAN-ECHAN; 0 -> 1
  ECHAN......Average channels BCHAN-ECHAN; 0 -> max
  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).
  GAINUSE....version number of the CL table to apply to multi-source
             files or the SN table for single source files.
             0 => highest.
  DOPOL......If > 0 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 apply. <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.
             IMAGR uses DOBAND as the nearest integer; 0.1 is therefore
             "false".
  BPVER......Specifies the version of the BP table to be applied
                0 => highest numbered table.
               <0 => no bandpass correction 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).
  DOCIRCLE...False (<= 0) means that tick marks are short lines
             extending inward from the plot borders.  True (>0)
             requests that a full coordinate grid be drawn.
  PRTLEV.....> 0 -> print time, flux, and dispersion to message file.
  LTYPE.......Labelling type, see HELP LTYPE for details:
              1 = border, 2 = no ticks, 3 or 7 = standard, 4 or 8 =
              relative to ref. pixel, 5 or 9 = relative to subimage
              (BLC, TRC) center, 6 or 10 = pixels.  7-10 all labels
              other than tick numbers and axis type are omitted.
              Less than 0 is the same except that the plot file
              version number and create time are omitted.
              Add n * 100 to alter the metric scaling.
  DOTV.......> 0 => plot directly on the TV device, otherwise make a
             plot file for later display on one or more devices
             (including the TV if desired).
  GRCHAN.....Graphics channel (1 - 7) to use for line drawing. 0 => 1.
----------------------------------------------------------------
DFTPL:  Plots DFT using data from a u,v data base.
PROGRAMMER: T.Bastian, Univ. of Colorado
RELATED PROGRAMS: TKPL,PRTPL,TVPL

                            COMMENTS

     DFTPL was written primarily to assist stellar observers
interested in time variable phenomena (e.g., outbursts on RS CVn's,
dMe flare stars, etc.). Since these stars are in general unresolved,
it's often pointless to make a synthesis map for each time interval.
Instead one can do the following: 1) make a large field map using the
entire XY sorted data base and identify all background sources; 2) run
APCLN or MX with boxes around these sources (but not the stellar
source of interest) and CLEAN them down to the noise; 3) using the
resulting CLEAN components as a model of the background sources, use
UVSUB to subtract the model from the UV data base; 4) use UVSRT to
sort the data into TB order.
      If NO confusing sources of any importance can be found in the
field, then of course steps 1-4 can be skipped and one simply begins
with a TB sorted (calibated and edited) data base. he UV data base on
an EXPORT tape is sorted in TB order, but one might have to use the
verb PUTHEAD to indicate this fact in the header.  This is done by
first setting KEYWORD to 'SORT' and KEYSTRING to 'TB' and typing PUTH.
      The task DFTPL allows one to plot the direct fourier transform
of the measured visibilities as a function of time for an arbitrary
shift in RA and DEC.  It will plot either points, points with error
bars, or histogram format. The averaging interval is adjustable
(BPARM(2)).  The data time segment may be specified (through APARM).
The task runs somewhat faster than UVPLT.  Hence one can moniter all
Stoke's parameters of a star with time VERY quickly, without having to
resort to generating a tedious sucession of maps.
