J. W. Percival
Space Astronomy Laboratory, 1150 University Avenue, Madison, WI 53706 USA
The EDS provides over 200 telescope monitors of use to astronomers, engineers, and system designers including pointing performance data, servo and mechanical data, and software state data. The general popularity of this data resource called for a easy way for casual users and experts alike to select data files and particular telescope monitors, graph time-series data, and do simple data manipulations such as pan, zoom, differentiation, and Fourier Transforms. In addition, the inherently distributed nature of the EDS called for a solution that was portable across platforms and operating systems that were in common use by any of the WIYN consortium members.
We have developed a simple but powerful Graphical User Interface to satisfy these needs. It uses the Tk graphical toolkit language and common UNIX tools such as shell scripts, grep, and awk to achieve a lightweight but effective solution to the problem of accessing the EDS. The data selection portion of the interface is separate from the graphical manipulation part, which allows both standalone use of the graphing widget in other applications as well as using it with different data selection front ends designed for other telescope systems and scientific instruments.
The WIYN Engineering Data Subsystem (EDS) is a spacecraft-style telemetry system that sends telescope telemetry (encoders, currents, voltages, pointing data, etc.) in a machine-independent format to clients connected across a network. It has these features:
The various data file types (2 burst modes, plus archive mode) and large number of telemetry monitors, not all of which are in each file type, required a tool to lead engineers and scientists through the dazzling array of choices, and zero in on what they wanted to see. The design requirements were: that the software be lightweight, without a large budget; it must be portable, and run on a number of platforms (i.e. SunOS, DECstations, and Vaxen); and that it must be flexible, so that quick changes and rapid prototyping is possible.
We chose Tk by John Ousterhout at UCB for the overall GUI capability and blt_graph by George Howlett at AT&T for the graphing widget. For maximum flexibility, we broke the problem up into two parts: The first is the chooser, which helps the user select a file type, file name, data type, and data name; and the second is the grapher, with which the user plots, pans, zooms, and prints data. The grapher is a separate program, which allows it to be used apart from the chooser, i.e., as a stand-alone department utility.
Tk and Tcl are ideal for this sort of low-effort, high-impact tool. We already had differentiators and FFT programs laying about that accepted graph(1)-like ASCII input, and a graphical scripting language living close to the UNIX shell allowed a quick, painless integration of these existing tools into readily available free-ware. The chooser uses simple filename globbing to fill the listbox, and uses grep(1) and awk(1) to cut and paste the ASCII data file. The grapher uses standard Tcl string operations to test for two-column (suffix .xy) data or one-column (suffix .y) data, with an optional .Z denoting compression.
tkeds helps the user choose a telemetry file and a specific telemetry monitor to examine. The left panel presents the three file types: 20Hz burst file, 200Hz burst file, and all-night archive. The left-hand listbox shows all choices for the selected file type. The listbox changes when the file type changes. The right panel presents the major data classifications: telescope axes, mount control electronics, Optical Support Structure, Instrument Adapter Subsystem, and miscellaneous data. The right-hand listbox shows the specific telemetry monitors available for the chosen data type. The listbox changes when the data type changes. The ``plot'' button produces a simple ASCII data file, one coordinate pair per line, and then launches the graphing application.
Figure: The chooser. This application lets the user select a data file and telemetry monitor, and then launches a graphing application for data display and processing. Original PostScript figure (71 kB)
tkgraph is the graphing application. Its primary input data format is like the UNIX graph(1) program: simple ASCII files, one coordinate pair per line. It also can read ASCII files with one value per line, assuming a simple sequential abscissa. Finally, compressed versions of each of these file types are allowed. Plot styles include unconnected points, connected points, and a histogram-style plot, emphasizing the sampled nature of the data. Data processing includes pan and zoom, differentiation, and Fast Fourier Transform. Output options include PostScript disk files and line printer spooling.
Figure: The grapher. This application supports panning and zooming, as well as differentiation and Fourier transformation. The data set shown here represents the elevation servo error (85 counts = 1 arcsecond) during a disturbance test in which a 20-lb weight was suspended then cut from the telescope during tracking. Original PostScript figure (56 kB)
Figure: This figure shows a zoomed detail of the Fourier Transform of the data in Figure . Structure resonances are clearly displayed for the servo and mechanical engineers. Original PostScript figure (56 kB)