|
System Overview
|
The ESO-MIDAS system is built along lines which should allow easy
integration of complex analysis algorithms as well as allowing greater
flexibility in interactive use and in the creation of user specific
procedures from the basic building blocks. The first design proposal
for ESO-MIDAS, made late 1980, used some ideas from the UK STARLINK
project for the software interface definitions. The present version
which became available in 1984 follows a similar philosophy in its
application program interfaces, but has been expanded to the new
Standard Interfaces which have a broader base than previously.
The initial design of MIDAS was made on a DEC/VMS system in the early
80's. However, in the late 80's with the acceptance of UNIX as a standard
operating system and the introduction of workstations, the system was
largely redesigned and now runs on a wide variety of computers, with
either DEC/VMS or one of the various flavours of UNIX as the operating
system.
In this page we briefly discuss the objectives ,
design , the MIDAS Control
Language , and data formats . Finally, we include
some references related to the ESO-MIDAS project.
In the design of MIDAS a number of basic requirements were taken into
account in order to ensure the system can involve in the future. These
main objectives were:
- Modular Design, which makes it easy to adapt to different environments;
- Portability, to ensure MIDAS can run on different, and migrate
to different computers;
- Use of Standards, like the programming languages Fortran and C,
and the X Window system. Use of standard programming languages
enables the use of CASE tools, and makes the shift to object
oriented coding easier;
- Easy to Program, by providing simple interface routines to access
the data, and by implementing a flexible control language;
- Open Design, which allows easy addition of contributed software from
other institutes.
The basic system was designed to work on a single computer with
appropriate peripherals. It consists of the following three parts,
the monitor, the applications, and the interfaces.
Monitor
The MIDAS monitor includes user interface, and routines for administration
of tasks and local variables. MIDAS is command driven. All the user
interaction and the scheduling of processes to execute the commands is done
via the monitor. In concrete, the monitor has the following functions:
- display on-line help with different levels of detail;
- keep a log of all operations during a session;
- serve as a command interpreter;
- preprocess input strings to translate user defined symbols and
to facilitate command abbreviation, command numbering and buffering,
etc.;
- execute applications in a subprocess.
MIDAS is a multiprocess system. The monitor executes in the context of
the process active when starting up the session and the applications run
in either of two subprocesses, the foreground or the background
subprocess. A third option is to submit applications as a job to a queue.
Applications
Applications perform the actual operations on the data. They may be written
in standard Fortran77, C, or the MIDAS control language. All communication
must go through the monitor and is done via keywords and frame descriptors.
The functions of the applications in MIDAS are split in several levels
of importance, the top level being the primary or core applications without
which image processing is hardly possible. The core applications take care of:
- Image Display - is comprised of all the usual functions expected
from a mature image processing system, such as displaying and
retrieving data in full or split screen mode, zoom and scroll,
getting cursor values, modifying lookup tables, blinking, etc.
The kernel of this package is the Image Display Interfaces library (IDI);
- Graphics Display - provides the functionality needed for data
presentation in graphical form, as well as interactive data reduction.
The graphics package is device independent, and based of the Astronet
Graphic Library (AGL);
- General Image Processing - which include typical arithmetic
operations like filtering, resampling, interpolation, rotation,
extraction/insertion, FFT, etc;
- Table File System - provides a complete set of functions to
process tabular data. These include reading, writing, editing,
searching, sorting, regression, etc;
- Fitting Package - that offers necessary tools to fit non-linear
functions, and to model data distributions both in table and image
format;
- Data I/O - to transfer the data from and to tape or disk.
Interfaces
The interfaces bind the applications to the monitor, and define
the possible interaction with application tasks and monitor. An
additional level is used to interface the MIDAS system itself to the
host operating system. This lowest interface level must not be used be
application programs.
MIDAS is based on three sets of general interfaces which allow easy
integration of application programs into MIDAS, namely: a) the ``Standard
Interfaces'' for general I/O and image access; b) the ``Table Interfaces''
for access to table structures; c) the Graphics Interfaces for easy
inclusion of graphical representation of the MIDAS data structures.
To provide a portable system a layer of OS-routines have been used to
shield MIDAS from the local operating system. These routines may only be
used at lowest levels and are not available for normal applications.
The MIDAS command language, MCL, provides the tools to construct complex
command procedures from existing commands. Since all application
programs get their parameters via a set of standard interfaces, it is
very simple to string commands together, each using results from the
previous command. In fact, except for the system commands, all MIDAS
commands are MCL procedures themselves.
In general, MCL provides the following basic features of a programming
language like definition of parameters, looping, conditional statements
and branching, global/local variables, procedure calls (also recurrent)
with parameters, and built-in functions.
MCL is an interpreted language which means that the definition of local
variables may be done anywhere in a procedure and no compilation and
linking steps are required before executing a MCL procedure. To identify
syntax and other obvious errors in long and complicated procedures the
MIDAS Command Language Debugger is provided. It enables debugging of
procedures as well as application code (F77 and C).
Data items in the MIDAS system can be divided into several groups:
- Frames - data sets which have a uniform sampling, e.g.
images or spectra. Up to 16 dimensions can be supported; however,
most applications are limited to 2;
- Tables - collections of heterogeneous data organised in columns
and rows;
- Descriptors - variables related to the general database, e.g.
frames and tables. They are used to describe the data in detail;
- Keywords - variables relating to processes or sessions. They are
similar to descriptors and mainly used to transfer information between
tasks, and the control of them;
- Catalogues - contain lists of either images, tables, or fit
files for the purpose of grouping data together.
- Banse, K., Crane, Ph., Ounnas, Ch., Ponz, D.: 1983, ``MIDAS'' in
Proc. of DECUS, Zurich, p. 87
- Banse, K., Grosbol, P.J., Baade, D.: 1991, ``MIDAS as a Development
Environment'', in Astronomical Data Analysis Software and
Systems I , PASP Conf. Series, Vol. 25, p. 120.
- Banse, K., Grosbol, P., Ponz, D., Ounnas, C., Warmels, R., `The
MIDAS Image Processing System in Instrumentation for Ground Based
Astronomy: Present and Future, L.B. Robinson, ed., New York:
Springer Verlag, p. 431.
- Grosbol P., Banse, K., Guirao, C, Ponz, J.D., Warmels, R.H.: 1988,
``MIDAS Benchmarks of Workstations'' in ESO Messenger,
ESO, Garching, 54 , 59
- Grosbol, P.J., Ponz, J.D.: 1985, Mem. S.A.It., 56, 429
- Grosbol, P.J., Ponz, J.D.: 1990, ``The MIDAS System'' in
Acquisition, Processing and Archiving of Astronomical Images,,
G. Longo and G. Sedmak (eds.), OAC and FORMEZ, 1990, p.109
- Warmels, R.H.: 1991, ``The ESO-MIDAS System'', in Astronomical
Data Analysis Software and Systems I , PASP Conf. Series,
Vol. 25, p. 115.
Comments on this screen can be sent
to eso-midas <midas@eso.org>
Last update: Feb 23, 1996