; ELFIT
;---------------------------------------------------------------
;! Plots/fits selected contents of SN, TY, SY, PC or CL files
;# Task UV Calibration Plot
;-----------------------------------------------------------------------
;;  Copyright (C) 2017-2020
;;  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
;-----------------------------------------------------------------------
ELFIT     LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
ELFIT:  Fit selected contents of an SN, SY, TY, PC or CL file
INNAME                             UV data (name).
INCLASS                            UV data (class).
INSEQ             0.0    9999.0    UV data (seq. #).  0 => high
INDISK            0.0       9.0    Disk unit #.  0 => any
INEXT                              Input 'SN','TY','PC', 'CL'
                                   ' ' -> 'SY'
INVERS                             Input table file version no.
SOURCES                            Source list
QUAL            -10.0              Source qualifier -1=>all
TIMERANG                           Time range to plot
STOKES                             Stokes type to plot: R, L,
                                      RR, LL, RRLL,
                                      X, Y, XX, YY, XXYY
SELBAND                            Bandwidth to plot (kHz)
SELFREQ                            Frequency to plot (MHz)
FREQID                             Freq. ID to plot, -1=>all
SUBARRAY         -1.0              Limit to subarray; 0 -> 1
                                      -1 -> all
BIF               0.0      100.0   First IF to plot, 0=>1.
EIF               0.0      100.0   Last IF to plot 0 -> highest
ANTENNAS                           Antennas to plot 0=>all
PIXRANGE                           Range to plot: 0 => self
                                   scale each antenna separately
NPLOTS            0.0      28.0    Number of plots per page
ORDER             0.0       8.0    Order of polynomial to be
                                   fit individually to each plot
OPTYPE                             Data to be plotted:
                                   'PHAS','AMP ','DELA','RATE',
                                   'TSYS','SUM ','DOPL','SNR ',
                                   'MDEL','TANT','ATM ','GEO ',
                                   'CCAL','DDLY','REAL','IMAG',
                                   'IFR ','PDIF','PSUM','PGN ',
                                   'PON ','POFF','PSYS','PDGN',
                                   'PSGN','POWR','PODB','MULT'
                                   ' '=phase
DO3COLOR         -1.0        2.0   DO3COL=2 => color by source
BCOUNT                             If INEXT ='PC' and OPTYPE =
                                   'AMP' or 'PHAS, BCOUNT
                                   specifies the phase cal tone
                                   number to be plotted. 0->1.
XAXIS          -6.0         6.0    Variable data is to be fit
                                   against, 0=>elevation
                                   < 0 -> plot full range
SYMBOL          0.0        24.0    Plot symbol number: 1 - 24
FACTOR        -10.0        10.0    Scale plot symbols by FACTOR
                                   <0 => connect points too
DOBLANK        -1.0        24.0    > 0, show blanked values with
                                   symbol type DOBLANK
CUTOFF                             Table weights <= CUTOFF will
                                   not be plotted, flagged data
                                   are not plotted.
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
APARM                              (1) > 0 -> extrapolate XAXIS
                                       1 and 2 types
                                       WEIGHT = APARM(1)
                                   (2) fiducal point 1
                                   (3) fiducal point 2
----------------------------------------------------------------
ELFIT
Type:  Task
Use:   Plots selected calibration data versus time from a specified SN,
       TY, PC or CL table.  It then fits polynomials in the x-axis
       parameter to the values.

       To examine SN or CL tables with a new reference antenna, run
       SNREF with DOKEEP=1 and then use ELFIT.  Moving sources are
       supported if a PO table is attached.
Adverbs:
  INNAME.....UV file name (name).       Standard defaults.
  INCLASS....UV file name (class).      Standard defaults.
  INSEQ......UV file name (seq. #).     0 => highest.
  INDISK.....Disk unit #.               0 => any.
  INEXT......'SN','TY, 'PC', 'SY', or 'CL' table to be plotted
  INVERS.....Version number of table to plot, 0=>highest no.
  SOURCES....Source list.  '*' = 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.
  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.  The X-axis is plotted over the range of
             X values found in the data.  All plots in a given
             execution will be on the same X scale in any case.
  STOKES.....The desired Stokes type of the displayed data:
             'R' = RCP, 'L' = LCP, 'RL' or 'RRLL' both RCP and LCP
             'X' = XLP, 'Y' = YLP, 'XY' or 'XXYY' both XLP and YLP
  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.
  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.  -1 => all, 0 => first
  SUBARRAY...Limit display to specific subarray.  -1 -> all, 0 -> 1.
  BIF........First IF IF to plot
  EIF........Last IF to plot.
             If OPCODE = 'IFDF'/'IFRA' will plot difference/ratio of
             specified quantity between BIF and EIF.
  ANTENNAS...A list of the antennas to be plotted. All 0 => all.  If any
             number is negative then all antennas listed are NOT to be
             plotted and all others are.
  PIXRANGE...If PIXR(1) < PIXR(2), all plots will be from PIXR(1) to
             PIXR(2).  Otherwise each plot will be self-scaling.
  NPLOTS.....Number of antennas to plot per page (try 5).
  ORDER......Order of polynomial to be fit (0 - 6)
  OPTYPE.....Data to be plotted:
             1.  'PHAS' = phase,
             2.  'AMP ' = amplitude,
             3.  'DELA' = singleband delay (SN & CL)
             4.  'RATE' = rate (SN, CL & PC)
             5.  'TSYS' = sys. temp. (TY)  (for VLA is nominal
                          sensitivity)
             7.  'DOPL' = doppler offset (CL)
             8.  'SNR'  = signal/noise (SN & CL)
             9.  'MDEL' = multiband delay (SN & CL)
             10. 'TANT' = ant. temp. (TY)  (for VLA either back- or
                          front-end system temperature)
             11. 'ATM'  = atm. delay (CL)
             12. 'GEO'  = geometric delay (CL)
             13. 'CCAL' = cable cal (PC)
             14. 'DDLY' = dispersive delay (SN & CL)
             15. 'REAL' = real part
             16. 'IMAG' = imag part
             17. 'IFR ' = Ionospheric Faraday rotation (affects pol
                          cal) (SN & CL)
             18. 'PDIF' = EVLA Gb * (Pon - Poff)  (SY)
             19. 'PSUM' = EVLA Gb * (Pon + Poff)  (SY)
             20. 'PGN ' = EVLA post sync-detector gain = Gb   (SY)
             21. 'PON ' = EVLA Pon  (noise tube on) (SY)
             22. 'POFF' = EVLA Poff  (noise tube off) (SY)
                          Note that PON and POFF give numbers smaller
                          than PDIF and PSUM by the factor Gb which
                          is, by default, 512 and usually ranges in
                          the 400's when it has been set.
             23. 'PSYS' = EVLA PSUM/PDIF/2 * Tcal (=Tsys) (SY)
                          uses values from the CD table
             24  'PDGN' = EVLA Pdif / (4096 * Pgain * Pgain)
             25  'PSGN' = EVLA Psum / (4096 * Pgain * Pgain)
             26. 'POWR' = (1/Gain amp)^2
             27. 'PODB' = Log10 (1/Gain amp)^2
             '    ' => 'PHAS'
             XX. 'MULT' => plot multiple types as listed in APARM
                           using the type numbers given above.
  DO3COLOR...DO3COL = 2 tells ELFIT to separate the plotted points
               with color representing source.  The list of source
               numbers actually occurring in the table, time range,
               source list, et al. is translated into consecutive
               integers (in the same order) and then assigned red
               through dark blue.  Thus source numbers 1,2,3,10 become
               4 equally spaced colors (red, yellow, cyan, blue).
             <= 0 => use line type 4 for all points plotted.
  BCOUNT.....If INEXT ='PC', and OPTYPE = 'AMP' or 'PHAS' then BCOUNT
             specifies the phase cal tone number to be plotted. 0 -> 1.
  XAXIS......Variable data is to be plotted against. 0 => 2
             = 1 => Antenna zenith angle   -1 plot 0 - 90  xenith ang
             = 2 => Antenna elevation      -2 plot 0 - 90  elevation
             = 3 => Hour angle             -3 plot -180 180 HA
             = 5 => Parallactic angle      -5 plot -180 180 Parang
             = 6 => Antenna azimuth        -6 plot 0 360 azimuth
             Minus signs cause plots to cover full possible range
  SYMBOL.....1: Plus sign (default)   12: Five pointed star
             2: Cross (X)             13: Star of David
             3: Circle                14: Seven-pointed star
             4: Box                   15: Eight-pointed star
             5: Triangle              16: Nine-pointed star
             6: Diamond               17: Ten-pointed star
             7: Pentagon              18: 11-pointed star
             8: Hexagon               19: 12-pointed star
             9: Septagon              20: 13-pointed star
             10: Octagon              21: 14-pointed star
             11: Nine-gon             22: Plus with gap
                                      23: vertical line
                                      24: Cross with gap
  FACTOR.....Scale plot symbols by FACTOR     0 -> 1.
             If FACTOR < 0, draw lines between the points and use
             abs(FACTOR) to scale the points plotted.
  DOBLANK....> 0 => plot blanked solutions with a symbol of type
             DOBLANK (see symbol types above).  They will be plotted
             along the lower edge of each plot.  NOTE: if DOTV true
             and GRCHAN 0 and DO3COL <= 0, then the blanked samples
             will be in the color of graphics channel 3 (pink) and the
             good samples in the color of graphics channel 4 (blue).
             DOBLANK > 0 is forced to be different than SYMBOL by
             adding 1.
  CUTOFF.....If >= 0, the task will examine the weight column of the
             table and if the weight <= CUTOFF, the task will not plot
             that sample.  If = 0, will plot all good points; flagged
             data are not plotted.  CUTOFF is ignored for TY and PC
             tables and OPTYPEs MDEL, ATM, GEO, and CCAL.
  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.
             A value of 0 causes more than one graphics channel to be
             used.
  APARM......(1) If > 0, the data for XAXIS 1 and 2 is extrapolated to
                 zenith angle 0 or elevation 90 weighting the 3
                 samples with APARM(1)
             (2) Fiducial point 1 - if XAXIS 1 (zenith angle) is low
                 value default 20, if XAXIS 2 (elevation) is high
                 value default 70
             (3) Fiducial point 2 - if XAXIS 1 (zenith angle) is high
                 value default 80, if XAXIS 2 (elevation) is low value
                 default 10.
             For these 2 types only, the model is evaluated at the two
             fiducial points and printed along with the model
             parameters and the difference of the fit at point 2 minus
             that at point 1.
----------------------------------------------------------------
