PROGRAM BOB BOB is a FORTRAN program for accessing and manipulating the telemeter- ed low frequency data. When using BOB the keyboard should be in uppercase mode. The program is centered around 8 data columns - A,B,C,D,E,F,G, and H. each column has a header associated with it. The headers contain the station name, begining julian day, number of days of data, beginning year, data points per day, number of valid data points, the highest data point, and the lowest data point. Whenever a column is updated or changed the header is changed appropriately. There is also a working header that is used as the basis for the information needed to fill the columns with data from storage. It contains the same information as the column headers except (since it has no data points associated with it) the information relating to valid, high, and low data points. ** The following is a list of the current commands available with BOB. All commands are uppercase and cannot have any spaces in front of the them. When using commands that use qualifiers, spaces and equal signs are considered equivalent. As long as the length of the command does not exceed 60 spaces, as many spaces or equal signs can be put between commands and their qualifiers. ****************************************************************************** * alphabetical listing of commands * ****************************************************************************** ADD E X2 ** E can be either a column (A - H) or a real number. X2 must be a column. If E is a real number then each valid data point in column X2 has E added to it. If E is an column then each time E and X2 have corresponding valid data points, their sum is stored in X2, otherwise a missing data point (-998.0) is inserted. E remains unchanged. AUTOAVG X ** Determines the optimum data rate for plotting the data in column X and then averages the data appropriately. For plots of less than 10 days, 144 points/day is good, less than 30 days is 24 pts/day, less than 60 is 4 points, and anything greater than 60 days is averaged to 1 point/day. AVG I X ** X is a column (A - H). I is an integer. AVG will go through column X and take the average of every I values. Missing data points are included in the window of I points. Note I must be an integeral divisor of the original data rate. The rate of the column and the rate of the working header are adjusted for the new rate (old rate/I). B_DATE DA MON YR ** Sets the beginning julian day and year of the fill header to the date corresponding to day DA of month MON, year YR. BANDPASS X ** X is a column (A thru H). BANDPASS will prompt you for the highest and lowest data values you want in column X. It will then go through the column throwing out any values not within the specified limits. BAR X ** X is to be a bar graph when plotted. BJL = I ** I must be an integer, 1 to 366. The beginning julian day in the working header is set to the value of I. BYE ** Exit the program. BYR = I ** I must be an integer. The beginning year in the working header is set to the value I. CIRCLE X ** X will have circles drawn at valid data points when plotted. COMMANDS ** Types the file command.txt, a short listing of all the BOB commands. COPY X1 TO X2 ** COPY transfers the contents (including the header) of column X1 to column X2. This command is useful if you are manipulating X1's data with the possibility that you might make a mistake and have to start over with the original data. By having X1's original data copied to column X2 it is much quicker to get X1's original data back via the COPY command from X2 than with another FILL. CORRECT X1 X2 ** Does a least square fit (just as in the command LSTSQR) and then uses those values and the data in column X1 to correct the data in column X2. X1 is left unchanged. CUM X ** X is a column (A thru H). CUM goes through column X and replaces each valid number with the sum of it and all the previous numbers (essentially a running total). DAYS = I ** I must be an integer. The number of days of data in the working header is set to I. DASHES X ** When using LINE, TRIANGLE, CIRCLE, DIAMOND, or SQUARE, dashed lines wiil be drawn between valid points separted by missing data. See NODASHES. DIAMOND X ** Diamonds will be drawn at vaild data points when plotting X. DIV E X2 ** E can be either a column (A - H) or a real number. X2 must be a column. If E is a real number then each valid data point in column X2 is divided by E. If E is a column then each time E and X2 have corresponding valid data points, the result of X2/E is stored in X2, otherwise a missing data point is inserted (-998.0). E is unchanged. DOS SSSSSSSSS ** DOS causes you to leave BOB and execute the DOS command SSSSSSSSSS (up to 30 characters) such as TIME and then return to where you were in BOB. E_DATE DA MON YY ** Determines the number of days between the beginning date currently in the fill header and the date day DA of month MON of year YY. This number is put into the days slot of the fill header. ENDSAVE ** Terminates SAVECOMS session. See SAVECOMS. EUR_FILE X X X ** Outputs the data in columns X X X to a file with a time tag for each data point (like the serial ASCII files used by BOB to store data). Note that it will only work if the time periods and rates for all the columns are the same. See QPLOT. EVENTS X ** Prompts you for a threshold in determining an event in column X. BOB goes through column X and inserts a -998 (missing data) in all slots except where the value exceeds the previous value by the threshold. EXE SSSSS.SSS ** The macro SSSSS.SSS will be executed. EXECUTE SSSS.SSS ** Same as EXE. FILE X SSS ** If X is ommitted, the working header's file type will be set to SSS (either DAT or CLN). If X is included the header associated with the column X will have its file type changed to SSS. FILL X ** Fill column X with data according to the parameters of the working header. GETRATES X ** GETRATES replaces the data in column X with the difference between each data point and the preceding data point, hence determining the rates of change. With points that have missing data between them, it takes the missing points into account by determining the rate for the entire period betwen the valid points. GREG JUL YR ** JUL must be an integer from 1 to 366. YR is also an integer. GREG returns the month and day corresponding to julian day JUL in the year YR. HELP SSSSSSSS ** If SSSSSSSS is left blank, a listing and explanation of all the BOB commands will be displayed. If SSSSSSSS is included, the list of commands will be searched and an explanation of command SSSSSSSS will be displayed. HIGHEST I X ** Determines the highest value in each group of I values in column X. JUL DA MON YR ** DA must be an integer from 1 to 31, MON a character string denoting the month, and YR must be an integer. JUL returns the julian day corresponding to month MON, day DA, year YR. LABEL X SSSSSSSS ** LABEL sets the label of the scale axis for any plots of column X to the string (max. of 15 char.) SSSSSSSSSSSS. The label will be reset to a blank with any fill to that column. LASER I X+X X ** Same as a plot command except outputs the plot to a file in HP laserjet format. The file can be printed at a later date. LAST I ** LAST gets the current time and date from the computer clock (which may or may not be correct) and sets the header to access the last I days from the current day. LINES X ** Indicates that when plotting column X, missing data points will not be drawn and lines will be drawn only between consecutive valid data points. This is the default value and any fill to a column will set that column to plot with LINES. Use DASHES for drawing dashed lines between valid data points separated by missing data. LSTSQR X1 X2 ** LSTSQR takes the data in columns X1 and X2 (A - H) and performs a least squares fit (as in a HP-41) returning the values for A and B for the formula X1=(A*X2)+B. A value for the fit is also returned, with the value 1.0 being perfect correlation and 0.0 being a random fit. MACROS ** Shows the files currently available that can be executed with the EXE command. MAKEFILE X ** The data in column X is output to a file in a tabular format. MEAS SSSS ** SSSS is a 4 character measurement id. The measurement id of the fill header is reassigned the name SSSS. MEAS X SSSS ** SSSS is a 4 character measurement id. The measurement id of the header for column X is reassigned the name SSSS. MEASURES ** Lists the file containing the information on all the measurements for a specific stid (in the file BOB_stid.TXT). MERGE X1 X2 ** X1 and X2 are both columns. where data is missing in X2 but a valid point exists in X1, the valid point in X1 is inserted into X2. X1 is unchanged. MOVAVG I X ** A moving average is computed for each I valid data points. Missing data points are not included. MUL E X2 ** E can be either a real number or a column (A - H). X2 must be a column. If E is a real number then each valid data point in column X2 is multiplied by E. If E is an column then each time both E and X2 have valid data points the result of (E * X2) is placed in column X2, otherwise a missing data indicator (-998.0) is inserted. E remains unchanged. NODASHES X ** No dashed lines will be drawn between succeding valid data points separated by missing data when plotting X using CIRCLE, SQUARE, DIAMOND, LINES, or TRIANGLE. NOSPIKE X ** X is a column (A - H). NOSPIKE will prompt you for a spike limit. NOSPIKE will then go through the column and discard any data points that differ by more than the limit (+ or -) from the preceding valid data point. Note that if the initial data point is a screwy one, all the following points could be wiped out even if they are valid. OFFSET X ** X is a column (A - H). OFFSET will prompt you for the maximum allowable offset. OFFSET will then go through the column and if any valid data point differs from its predecessor by more than the maximum allowed, it and all the following data points will be offset by the difference of the two numbers. PHASE I X ** Shifts the data in column X I spots. Using a plot for the frame of reference, a negative I shifts the data to the left, a positive I to the right. -998s are inserted where the shift would leave missing data. PLOT I X X X ** PLOT divides the screen into I sections (max. of 10) and then plots the columns X,X, and X starting from the top. If you don't want a certain sector to have a graph use an illegal column descriptor (anything other than A-H) If you want to plot only one graph, full screen, type in PLOT 1 X. To clear the screen and get back into text mode type 2 or three times. If you wish one or more graphs superimposed on each other insert a + between the graphs to be plot ed together. example: PLOT 2 A+B C A and B will be ploted on the top graph, C on the bottom. PLOTHDR ** Prints the current plot parameters. PRINT I X X X ** Same as PLOT except it automatically will make a hard copy of the plot. Also, one does not have to hit the twice to exit graphics mode. POINT X ** When column X is plotted, no connecting lines are to be drawn between data points. Only the points will be drawn. A FILL X will set this back to its default value for X - LINES. PUTOUT X ** Writes the data in column X (A - H) to the file as per the column header's file type and station id. QPLOT X X X ** Outputs the data in columns X X X to a file with a time tag for each data point (like the serial ASCII files used by BOB to store data EXCEPT it is in QPLOT format, i.e. integer month, integer day, integer year instead of integer day, 3 character month, integer year). See EUR_FILE. RATE I ** Sets the expected rate in the fill header to I. RESET ** Puts BOB back into its original state. SAVECOMS ** Prompts you for a filename and then writes each succeding command to that file until an ENDSAVE is typed. This file can then be executed using the EXECUTE command. SCALE X ** SCALE allows you to set the vertical scale of the plot of column X it will prompt you for the values. If SCALE is not set, the plots will be adjusted to the highest and lowest data values in the column. after a FILL to the column X, the hi and lo are reset to the autoscale values (-998.0 for the both). SCALEALL ** Same as SCALE except it sets the plot scales for all the columns at the same value. SETHI X ** X is a column (A - H). SETHI will prompt you for what you want to be the highest number in the column. SETHI will go through the column adjusting th numbers accordingly. SHODATA X ** Displays the data from column X on the screen. SHOHDR ** Displays the working header on the screen. SHOHDR X ** Displays the header of column X on the screen. SPECTRAL X ** Column X will be plotted with its visual density varying in relation to the data value. Equally spaced lines (minimum of 1 and a maximum of 100) will de drawn in the time slot for each data value. The number of lines will be equal to the integer value of the data. If the data is 5, then 5 equally spaced horizontal lines will be drawn in the time slot. If the data is 45.5 then 45 lines will be drawn. This used for plotting spectral data. SPRINT I X X ** Same as the normal PRINT command except that the width of the plot (x axis) will be equal to the normal width of a helicorder record set for one channel, 15 minute rotation. Used for correlating data (especially RSAM) to the helicorder record. SQUARE X ** Squares will be drawn at each valid data point when X is plotted. STATIONS ** List the file containing all the information about the various stations for the chosen volcano. STID SSSS ** SSSS is a 4 character station id. The station id of the working header is assigned name SSSS. STID X SSSS ** SSSS is a 4 character station id. the station id of the header for column X is reassigned the name SSSS. SUB E X2 ** E can be either a real number or a column (A - H). X2 be a column. If E is a real number then each valid data point of column X2 has E subtracted from it. If E is an column then each time both E and X2 have corresponding valid data points the result of X2-E is placed in X2, otherwise the missing data point indicator (-998.0) is inserted. E remains unchanged. TITLE X SSSSSSSS ** Does exactly as LABEL but for the title of the plot. A FILL command sets the title to the stid and meas of the fill header. TONOW ** TONOW looks at the working header's bjl and byr and then sets the days parameter such that all data from that beginning time up to and including the present day will be accessed. TOPTITLE SSSSSS ** SSSSSS (up to 35 characters) will be printed in large letters at the top of the plot. To remove the TOPTITLE simply issue the command TOPTITLE without any argument. TRIANGLE X ** Triangles will be drawn at each valid data point when X is plotted. TZONE SSS ** SSS is the time zone that will appear on the plots. Note that this changes the label, and shifts the time scale to reflect the new time zone. GMT, LOC (local), AST are valid tzones. VALPTS I X ** X is a column (A - H). I is an integer. VALPTS goes through column X calculating the number of valid points every interval of I points. VECTOR X1 X2 ** X1 and X2 are columns (A - H). VECTOR calculates azimuth (in degrees) and magnitude of the vector using X1 as the x leg and X2 as the y leg. The initial point is considered to have a magnitude of 0 and azimuth of 0. VOLCANO ** BOB will print a listing of the current volcano ids and prompt you to input your choice. XYPLOT X1 X2 ** Instead of a time-series plot, plots column X1 (X axis) vs. X2 (Y axis) XYPRINT X1 X2 ** Same as XYPLOT except output goes to the printer. ZEROLOW X1 ** ZEROLOW takes the lowest value in the column X1 (A - H) and subtracts it from each valid number in the column. This command is useful with data that has large numbers but only small relative changes (such as the high and low in the column being 100456 and 100450). *** ** Writes a blank line to the screen. Useful for delimiting separate sections in macros or batch files without generating an illegal command message. ------------------------------------------------------------------------------