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).
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.
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.
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).
Copyright The European Southern Observatory (ESO)