next previous
Up: The synthesis telescope at


Subsections

6 Software

The observing software comprises a combination of Unix-based tasks running on an IBM RS/6000, and a set of software tasks which run on Motorola-68000-based microprocessors (Fig. 6). The RS/6000 system provides high-level synchronization, scheduling and data storage, while the true real-time work of data collection and sampling is done by the microprocessors. After data are collected, they are transferred via an ethernet connection to another IBM RS/6000 system, where the data are processed through automatic error-detection and flagging routines and inserted into a database awaiting final calibration and imaging, which is carried out once all the data required for a complete synthesis have been collected. (Twelve observations of 12 hours each are required to obtain all the data needed for imaging; see Sect. 8).

6.1 Telescope control software

The user interface to the observing system (Fig. 6) is the program SCHEDULER, which allows the user to initiate observations of the program field and calibration observations, check on their progress, and abort them. A "template'' consisting of a list of observations specified by field centre, duration, and starting time or hour angle may be entered, with individual sub-systems selectively chosen for each. SCHEDULER checks that the observations are possible within the antenna horizon limits, and the list is then placed in the observing queue.

Observing-system tasks communicate via serial polling over an IEEE 488 interface with microprocessors embedded in the various sub-systems of the telescope. These tasks read the sidereal clock, log messages generated by the observing system, and provide two-way communication with the microprocessors. Global synchronization between the sub-systems is performed by the program SKY_ CONTROL using Unix IPC messaging via addresses assigned to each task.

SKY_CONTROL also processes the observing queue. It determines which sub-systems are needed, initializes control files, and signals sub-system tasks accordingly. It also creates a binary file containing all of the parameters and hardware settings needed for the observation. This file subsequently follows the data through post-observation processing software as a record of the state of the system when the data were acquired. Sub-system-specific ASCII parameter files are also generated, which are read by the controlling tasks and used to send start-up commands to the microprocessors.

Once an observation has begun, SKY_CONTROL goes into a wait mode, looking for either the end of the run, or an "ABORT'' signal from SCHEDULER. At the end of an observation SKY_CONTROL checks the observing queue, and initializes the next observation, continuing until the queue is empty.

Observing-system timing is controlled by the sidereal clock. Its attached microprocessor sends the time, once per second, to a shared memory area which can be accessed by other tasks. The time is also directly distributed to the individual microprocessors.

6.2 Error logging

All Unix tasks report errors to a central program, LOGGER, via an IPC message queue. LOGGER runs continuously and writes all messages to a terminal and into an ASCII output file. Upon completion of an observation, the file is closed, tagged to the observation, and a new file is started. This tagged file follows the observation data into the post-observation processing area, and is used as input to the flagging programs for initial editing of bad data.

6.3 Post-observation processing

When an observation is complete, SKY_CONTROL moves the data across an ethernet link to an off-line post-observation processing area on disk, and spawns sub-shells to run command procedures. These are typically Unix shell scripts which call a sequence of FORTRAN-based programs that each perform a specific operation on the data. Important information and statistics may be generated by these programs, and are written to a processing log file, which the user checks in order to verify the health of the system and the validity of the data.

Since Synthesis Telescope observing projects are typically spread over several days, a number of project-specific databases are maintained, into which each newly processed observation or calibration is inserted. Each entry is indexed with the date of observation and the interferometer configuration. At any stage of data gathering these databases may be examined. However, aside from some manual flagging of bad data in each observation, the data are not generally further processed until all 12 observations for the project are complete.

Once all the data are available, an operator uses a graphics-based visibility editor to flag (but not remove) any remaining bad data. Appropriate calibration parameters for amplitude, phase, cross-polarization, and spectrometer passband-flattening, derived from calibration observations, are extracted from global databases and stored in a project-specific table. The data and accompanying tables are then processed to remove bad data and apply calibration. The resulting databases are suitable for gridding and Fourier transforming into images.

Images from the Synthesis Telescope are generally analyzed using an extensive suite of locally written software, designed to provide optimal results from Synthesis Telescope data, taking into account known instrumental effects. A detailed description of this suite of software is given in Higgs et al. (1996) and Willis (1999).


next previous
Up: The synthesis telescope at

Copyright The European Southern Observatory (ESO)