This section provides an overview of some of the concepts used
in the system.
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.
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.
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.
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.
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 $