NAME:
  reduc
 PURPOSE:
  Photometry reduction widget for using reductor.
 DESCRIPTION:
 Locates reduction directory and builds and/or edits the
 reduc.inf file. It allows user to run reductor when desired
 and appropriate. Reduc allows one 1 rule line only to be run
 at a time.
 CATEGORY:
  Photometry
 CALLING SEQUENCE:
  reduc
 INPUTS:
 OPTIONAL INPUT PARAMETERS:
 KEYWORD INPUT PARAMETERS:
 BROWSE-     Flag, if set, will not allow editing of reduc.inf or running
                reductor (for any reason), but will display all information,
                with edit windows disabled.
 DATATABLE-  Alternate table for data table access in the photometry
                data base ('phot'). If not specified the 'data' table is used.
                This keyword is also passed to reductor and through to dbphot.
                It is a string- if it is of the form 'd.t' where d and t
                are non-null substrings, d is taken to be a database name
                and t is the table. If t is a null string, it is individually
                defaulted as phot.
 DIR -       Directory for reduc to run. This should be a directory with
                rundate (yymmdd) directories beneath. If not specified, the
                default is '/net/frakir/raid/buie/Reduced'.
 INSTDB   -  Alternate database for instrument queries and updates. A string 
                giving an alternate database to query for the runstat and
                image table.
                This is a single data base to be usd for all instruments.
                If it is set to a string with an embedded dot 'd.t'
                the table name searched is changed to t, and the data
                base is taken as d. If it is of the form
                {a,b,c} where a, b, c ... are either of the form 'd'
                or 'd.t' then it represents a list of databases/tables
                to be searched in order.
                If not specified, the runstat table is accessed in the
                instrument databases roboccd, pccdobs and pccd2obs.
                ie, equivalent to 
                '{pccd2obs.runstat,pccdobs.runstat,roboccd.runstat]'
                The image table is always 'x.image' where x is the 
                database where the rundate was found with the INSTDB
                search.
 INSTDEFTABLE-Alternate table for instdef table access in the photometry
               data base ('phot'). If  unspecified the 'instdef' table is used.
               The 'd.t' format (see DATATABLE keyword) is also supported.
 NOTESXSIZE- Size of notes widget in columns, default 80.
 NOTESYSIZE- Size of notes widget in rows, default 5.
 TRANSFTABLE-Alternate table for transformation table access in the photometry
               data base ('phot'). If not specified the 'transf' table is used.
               The 'd.t' format (see DATATABLE keyword) is also supported.
 
 OUTPUTS:
 KEYWORD OUTPUT PARAMETERS:
 COMMON BLOCKS:
 SIDE EFFECTS:
 Reduc rewrites the reduc.inf file in the reduction directory to which
 it is directed, and also runs reductor, under control of the user.
 It may update the runstat table in one or more of the instrument data bases.
 RESTRICTIONS:
 Code needs some internal reorganization.
 Reduc is not well protected against badly formed reduc.inf lines.
 The search for rundate in the data bases controlled by INSTDB is
 amended in the case of pccdobs only- the select will include
 INST = 'L'  AND'd with the usual RUNDATE = 'xxxxxx'
 If a data base name in INSTDB is nondefault, the instrument pertaining
 is assumed to be PCCD.

 Reduc/reductor don't allow the same rundate for different instruments.
 PROCEDURE:
 MODIFICATION HISTORY:
  Written by Peter L. Collins, 2006/09/07, Lowell Observatory
  2006/09/18, PLC, some fixes, especially to add/delete lines from menu bar.
  2006/10/03,PLC, many fixes and additions.
  2006/10/05,PLC, small changes to run reductor buttons and display of
                  transf data base in the detail (per rule) window.
  2006/10/18,PLC, many changes including runstat (db) edit and selection.
  2006/10/19,PLC, adding reports.
  2006/10/23, PLC, transf and object observation reports, 'database only' mode.
  2006/11/03,PLC,  modified Prev/Next and Enter Rundate to search for best
                   available rundate based on search criteria and context.
  2006/11/04,PLC,  added 'Not' qualifier to Autostep criteria.
  2006/11/06,PLC,  fixes for non existent reduc directory when trying to write
                   reduc.log for runstat edits, and non-existent ddir check
                   and modifier for "no cal directory" message. New img report.
  2006/11/07,PLC,  allow notes update to function normally in browse mode. Add
                   print for edit runstat query (ie, all db updates get print).
  2006/11/09,PLC,  add all observations report and incorporate mysqlquery fix
                   in imglistreport.
  2006/12/07,PLC,  slightly rationalized color filter handling, fixed calls
                   to qinput and qannounc to enforce modality, changes for 
                   new phot.data format.
  2006/12/09,PLC,  add DATATABLE keyword.
  2006/12/12,PLC,  fix bug in run reduc so force pulldown menus preserve
                   state, change menu for hardcopy to dropdown near buttons,
                   rationalize browse/edit modes.
  2006/12/14,PLC,  some bug fixes and added reduc_nightbad to remove data
                   records and mark transf records bad when a night marked 
                   bad (sky non-phot or status bad). Add default color term
                   forcing widget buttons and menu bar edit options. Add
                   sky and stat outputs to transf report.
  2006/12/16,PLC,  big rearrangement of code- alphabetize, remove secondary and
                   subevents.
  2006/12/19, PLC, Added support for /SAVEALLPLOTS option to reductor
                   and for transition to 'reduced' runstatus.
  2006/12/30,PLC,  further rationalized handling of rundate and status 
                   processing, current directory management, and extended the 
                   definition of the database table keywords. Recomissioned
                   the run reductor buttons in upper gui and removed /NORUN.
                   Added maintenance bar with options for verbosity. Allowed
                   "Recompute Log1 File" to always work as long as rundir is
                   not read-only. It is the same as the regular run reductor
                   button except that all rules are disabled and /NOSAVE is
                   not allowed. 
  2007/01/04,PLC,  Changed 'Enter Rundate' menu operation to use autostep 
                   criteria when picking rundates to go to when the rundate
                   entered is not available.
                   Upgraded rundate selection idl screen error output.
                   Modified order of directory evaluation when changing
                   rundate to avoid accessing rundir when runstat is such
                   that the directory will be hidden.
                   Added a qannounc for rundate transitioning to reduced 
                   status prior to running the rules in SAVEALLPLOTS mode.
 2007/01/05,PLC,   Added call to plpedit to edit log1 bd flags via the edit
                   menu bar, and
                   commented out raw->cal processing stuff in reduc_setstatsky,
                   at least for now.
 2007/01/10,PLC,   fixed a logic hole that prevented the runstat Stat and Sky
                   from being displayed if a rule was selected while editing
                   former. The fix was in reduc_newrundisp.
 2007/01/20,PLC,   Several fixes to get queries and updates to  db 'pccdobs' 
                   to use the 1 letter 'inst' code correctly. The major
                   one was to reduc_dbstr2hook to strtrim database name.
 2007/02/15, PLC,  Modify queries to phot.data to reflect addition of Color
                   column.
 2007/02/20, MWB, Added DP rule clump
 2007/02/21, MWB, Further cleanup and exception handling.
 2008/06/19, MWB, repaired a logic problem with 'sl' rule display information.
                    Remember, there may be more in phot.data than what comes
                    from this program!
 2008/09/15, MWB, image list broken for roboccd, fixed mysql query
 2018/03/13, MWB, non-trivial mods to accomodate new controls on tr rule