Concepts

This section provides an overview of some of the concepts used in the system.

Images

The system is designed with an object orientated model for image handling. Images are stored in the system as objects which contain the pixel data and the information about the image, equivalent to the header. An important feature of this architecture is that images are not loaded and saved as files as in a conventional system instead the system makes the images available and guarantees that they will survive between runs of the program and reboots of the host machine. The actual storage of the data may be on a disk file but the user need not be aware of this and should not rely on it, think of the images as records in a database rather than documents in an editor.

This avoids the need for a proprietary internal file format for the system, it also removes the need for load and save operations, the only file commands supported are import and export to other file formats such as FITS or IRAF.

Although this model provides a number of important safety features for the new user, you cannot forget to save changes to an image or lose data because of a crash, there a few changes to the working habits of experienced users. Instead of loading an image changing it and then saving the result you must copy the original to a new image and then work only on the new image.

Packages

The TCL user interface is designed around a number of packages each dealing with a specific area of operation such as image handling, camera control, FITS import/export. The packages are largely self contained but some are dependent on other packages, FITS reading is obviously dependent on having image handling. The packages are loaded automatically when a command is typed which needs them, or a set of often used packages can be loaded at initialization. The IRAF system uses a similar technique.

The use of packages allows a large system to be developed more easily and reliably since new features can be added without affecting unrelated commands.

Modules

The distinction between modules and packages is only important at the programming level but is included here to avoid confusion.

The term package is used when dealing with a set of TCL functions and added commands, a package is loaded by the TCL mkpackage mechanism. A module describes a set of C++ functions which deal with a related set of facilities and a usually compiled into a single object file. Often a module forms the basis for a related package but some modules are used in a range of packages, such as string handling or error reporting. Also some packages require a number of modules, the camera package contains the routines to handle the camera from the camera module but must also contains functions from the image module to store data from the camera into an image.

Interpreter

A scientific data analysis package must be flexible enough to be used in trial and error to understand the data and in production mode on the telescope to reliably handle large data streams. The most flexible solution is provide a command interpreter and a programming language with a set of commands to perform all the necessary functions together with a range of options to allow them to be used in different ways, in addition a scripting language with the ability to define new commands and save programs allows the system to be used for the range of roles from camera engineering tests to on-line data analysis.

Help

The on-line help system is built around hypertext HTML documents. This allows simple text formatting to show keywords and options in different fonts like the UNIX man pages and supports hot links between different sections of the manuals like the help system on Microsoft Windows. This format also allows the help text to be read outside the program using any standard WWW browser.

Since all the project documentation is produced in HTML format the help system has access to any document and is not limited to explicitly on-line help material. This allows the on-line help to work at a number of levels for different users, a query about a command can produce the help text for that command and then for advanced users lead on to the manual page, specifications and source code.

The HTML format also supports in-line images allowing screen-shots of programs to be included in the help information.

The HTML pages are displayed by an HTML widget supplied by TCL, this is similar to the normal text display widget but can display HTML formatting and handle links, this is quicker than launching an external browser for each help request. The help indexes and keyword searches are performed by the same cgi scripts that the optics web site uses.


$Id: concepts.htm,v 1.1 1997/03/05 18:25:58 mgb Exp mgb $