NAME: a1963checktimes - example script to check a1963 times. SYNTAX: .run a1963checktimes. ARGS: none DESCRIPTION: An example file to process a set of a1963 src files and compute the amount of time available between source positions. You should copy this file to a local directory and edit it to do what you want.. After copying the file to a local directory: compute the times available given the az and ra (taken from the files) 1. update todo array to include dates and files you want. to add to the end, just copy the last line, increment the index and fill in the two fields yymmdd and fname 2. set makehardcopy=1 if you want hardcopy. You then need to define psfilename.. The routine will : 1. compute the info for each day using cmptimes 2. plot all of the days 1 per page using plottimes 3. print a list of the results to the screen. A simplified version of this file could be: srcfile='/usr/obs4/usr/a1963/n2903_nov30.dat' a1963cmptimes,041130,srcfile,datI ; do the computatinos a1963plottimes,datI ; make the plots a1963printtimes,datI ; print the table NOTE: Do @usrprojinit to include the path to this routine.
(See /pkg/rsi/local/libao/phil/usrproj/a1963checktimes.pro)
NAME: a1963cmptimes - a1963 compute times given az,ra from source files SYNTAX: a1963cmptimes,yymmdd,srcfile,datI,srctime=srctime ARGS: yymmdd: long date (AST) for source file. It will find the first transit of each position for this AST date. srcfile: string the observing file used. It needs the ra,dec and the AZ= in the comments field. srctime: long number of seconds to track each source. The default is 480 seconds. RETURNS: dateI[n]:{} structure holding the computed data. 1 entry per source position. The structure contains: YYMMDD LONG 41130 ; date user specified RAH DOUBLE 9.4693056 ; ra in hours from file (J2000) DECD DOUBLE 21.540556 ; dec in degrees from file (J2000) ; AZ DOUBLE 252.47028 ; azimuth in degrees from file. ROTD DOUBLE -56.000000 ; rotation angle from file (degrees) srcTime double 480. ; integration time in seconds. AZDIF DOUBLE 0.00010479062 ; azRequested - azComputed in degrees ZA DOUBLE 11.834881 ; zacomputed in degrees JD DOUBLE 2453339.9 ; jd for the az,za computed lst DOUBLE 0. ; lst for this start time ASTH DOUBLE 4.4785450 ; AST hour of day for computed time. DESCRIPTION: A1963 is using the fixedazimuth pattern. They are using a source file that contains and ra,dec and azimuth position for each drift. The datataking starts when the source arrives at the specified azimuth. This routine will verify that the azimuths/radecs are reasonable. It will use the ra/dec and azimuth to backcompute the julian date and za for the start of each drift. This information can then be used to verify that there is enough time between sources. For each drift in a file the computation is: 1. compute The Jd for the start of the specified ast day (yymmdd) 2. compute the lst for this jd 3. precess the ra position to this jd. 4. compute the transit time of the source for this ast day (raCurrent- jdMidnite) 5. create an array of 300 jd times centered at the transit time and spaced by 1 solar second. 6. use ao_radectoazza() to compute the az,za for each of these positions. Include the /nomodel keyword since a1963 is inputting az,za without model corrections (they are included later). 7. find the azimuth that is closest to the requested azimuth. 8. store : ra,dec,az,rotation Angle from the srcfile as well as the computed: za,jd,lst,astHour, and the difference between the reqested and computed azimuth. EXAMPLE: a1963cmptimes,041129,'/share/obs4/usr/a1963/n2903_nov29.cat',datI a1963plotpattm,datI ; plot the data NOTE: Do @usrprojinit to include the path to this routine. WARNINGS: 1. This routine uses precess from the goddard routines. You need this in your path (eg. addpath,'/pkg/rsi/idl/locallib/astron/pro/astro/') The routine expects the source file to look like: srcname ra dec coord vel az252d2151 092809.5 +215126 j 0 # AZ=252.47028 rot_an=-56 It needs the ra,dec,#,AZ=, and rot_an= in the file. It parses the line after the # looking for AZ= and rot_an=
(See /pkg/rsi/local/libao/phil/usrproj/a1963cmptimes.pro)
NAME: a1963plottimes - a1963 plot the pattern times. SYNTAX: a1963plottimes,datI,h1=h1,v1=v1,h2=h2,v2=v2,v3=v3,thick=thick,$ hardcopy=hardcopy,psname=psname ARGS: datI[n]: {} Times computed be comptimes routine KEYWORDS: h1[2]: float [min,max] horizontal values for top plot on page v1[2]: float [min,max] vertical values for top plot on page h2[2]: float [min,max] horizontal values for middle and bottom plot on page v2[2]: float [min,max] vertical values for middle plot on page v3[2]: float [min,max] vertical values for bottom plot on page thick: float line thickness for plots. Default value is 1. A larger number will make the line thicker. Some laser printers need this to be set to 2 so the line is visible. hardcopy: If set then write to psfile rather than screen. default psfilename is 'idl.ps' psname : string If hardcopy is set then the routine writes to a psfile. The default name is 'idl.ps'. You can change the name using psname=filename DESCRIPTION: Plot the position time info for a a1963 patterns. This information is computed in the comptimes() routine and stored in the datI array of strucutres. The routine makes 3 plots per page: TOP PLOT: This is the azimuth, zenith angle for the start of each drift in the map. MIDDLE PLOT: It contains 3 plots in white, red, and green: white: the time available between each position. This is computed from the azimuths and ra,decs. red: the time needed to move between these az,za's green: the total time need between patterns. it includes the requested integration times plus move times. BOTTOM PLOT: The extra time available for between each pattern. It is available time - (integration + movetime). The values at location I are computed using the start of I - start(I-1) (eg. data at 2 has the times from start of pat 1 to start of pat 2). The move times use the slew rate. The actual time to move will take longer so these estimates are minimum time needed. EXAMPLES: a1963comptimes,041130,'/share/obs4/usr/a1963/n2903_nov30.cat',datI a1963plottimes,datI To make hard copy you can put 1 plot per file or multiple plots per file: 1 plot per file a1963plottimes,dati,/hardcopy,psname='a196330nov04.ps' multiple plots per file pscol,'a1963nov03',/full a1963plottimes,dati28 a1963plottimes,dati29 a1963plottimes,dati30 hardcopy x NOTE: Do @usrprojinit to include the path to this routine.
(See /pkg/rsi/local/libao/phil/usrproj/a1963plottimes.pro)
NAME: a1963printtimes - print pattern times to stdout. SYNTAX: printtimes,datI ARGS: datI[n]: {} structure computed by comptimes() DESCRIPTION print out the a1963 timing information computed from the routine times. The output goes to stdout (the terminal). The output consists of: info for : 41202 integration time: 480.00000 Jd frac lmst ra dec az availTm ExtraTm 0.85170 084531.17 092809.50 211326.00 252.47 0.0 0.0 0.85692 085303.39 092809.50 210356.00 250.64 451.0 -70.7 041202 is the date in yymmdd format. 480 is the integration time in seconds. col description JD fraction: the fraction of jd day lmst: the sidereal time start of strip. format is hhmmss.ss ra: J2000 ra in hhmmss from the file dec: J2000 dec in ddmmss from the file az: azimuth in degrees from the file availTm: available time in seconds. Computes from the azimuths and ra,dec extraTm: extra time in seconds. This is the available time - the (integration time + moveTime). This used the slew rates for the move time. It is probably a maximum value. EXAMPLE: cmptimes,041130,'/share/obs4/usr/a1963/n2903_nov30.cat',datI printtimes,datI info for : 41130 integration time: 480.00000 Jd frac lmst ra dec az availTm ExtraTm 0.84925 083405.83 092810.00 215126.00 252.46 0.0 0.0 0.85573 084327.36 092810.00 215126.00 249.87 560.0 29.5 0.86236 085301.93 092810.00 215126.00 245.80 573.0 42.5 ... NOTE: Do @usrprojinit to include the path to this routine.
(See /pkg/rsi/local/libao/phil/usrproj/a1963printtimes.pro)