4 Lower-level Facilities

4-1 ARY SUN/11.2
Access to Array Data Structures

The HDS-based ARRAY data structure is one of the building blocks from which the Extensible N-Dimensional Data Format, or NDF (see SUN/33), is constructed. The ARY library provides access to these structures and is used extensively by the NDF access routines. ARRAY structures can also be useful in their own right as a more sophisticated alternative to primitive HDS arrays for storing data. They can be particularly valuable when used in NDF “extensions” to extend the NDF definition by adding arrays of additional information.

4-2 HDS SUN/92.8
Hierarchical Data System SUN/224.2

HDS is the low-level data system upon which other important data structures, such as the NDF (see SUN/33), are built. This document describes routines for accessing these structures at the lowest level. Calls to HDS routines may be intermixed with those to other higher-level data access routines, and are also invaluable for creating and accessing data structures of your own design (such as NDF extensions). All data structures created by HDS are portable between the machines on which HDS is implemented. SUN/92 describes the “stand-alone” version of HDS, while SUN/227 describes additional routines which connect HDS to ADAM.

4-3 IDI Astron. Astrophys. paper
Image Display Interface SUN/65.7

IDI is a standard for the display and manipulation of data on image displays in astronomy. Unlike the other graphics packages, IDI is not based on GKS, so calls to IDI cannot be intermixed with other graphics calls. However, IDI has the advantage of providing facilities for interactive manipulation of image displays (e.g. panning, zooming and blinking) which GKS lacks. The definitive document on IDI is “An image display interface for astronomical image processing” by Terrett et al. (1988), Astron. Astrophys. Suppl. Ser., 76, 263-304. This paper describes the IDI routines in detail but without reference to a specific implementation. SUN/65 describes the Starlink implementation of IDI, which includes some additional routines to connect it with ADAM. The Applications Graphics Interface AGI also contains special routines for ease of use with IDI (see SUN/48).

4-4 GKS RAL GKS Manual
Graphical Kernel System SUN/83.12

This is the low-level graphics system which underlies all the other ADAM graphics libraries (except IDI) and which provides “device independence”, allowing these libraries to access a large range of graphics devices. GKS is an international standard, but its concepts are rather abstract and inconveniently low-level for most simple graphical work. SGS (see SUN/85) provides a simpler interface to GKS, but direct GKS calls are often useful and can, with care, be intermixed with calls to other graphics routines. The primary document on GKS is the “RAL GKS Manual”, available in the Miscellaneous User Documents (MUD) series from Starlink site managers. In addition, SUN/83 gives details of the Starlink GKS release and hardware implementations, while SUN/113 describes additional routines which connect GKS (and SGS) with ADAM.

4-5 GRP SUN/150.3
Routines for Managing Groups of Objects

GRP provides facilities for managing groups of character strings which are the “names” of objects such as data files, galaxies, or even sets of coordinates. A typical use might be within a package of co-operating applications which are to process multiple datasets specified by a list of file names. GRP allows such applications to access these names very flexibly – by accepting explicitly typed values, by reading them from a file (indirection) or by editing an existing list (modification). It also supports the passing of groups of objects between separate applications. GRP is a configurable low-level facility and it is expected that higher-level interfaces specialised to particular types of object will be provided in future.

4-6 GWM SUN/130.2
X Graphics Window Manager

GWM provides facilities for creating and controlling “persistent” graphics windows in an X windows environment. The windows it creates are intended for use as “virtual displays” for GKS- and IDI-based graphics; unlike other X windows, they do not disappear when an application terminates, so the plot remains visible and may be accessed by subsequent applications. GWM allows control over graphics windows both from the command line and via a Fortran programming interface, so that applications may create and destroy graphics windows for use both by themselves and by other applications.

4-7 GNS SUN/57.7
Graphics Workstation Name Service

An important feature of ADAM graphics is its “device independence”, which means that graphical applications can generally be used with a wide range of graphics devices. GNS provides the services needed for managing the names which refer to these devices. It allows a local database of easy-to-remember names to be set up, and then provides applications with the information they require about each named graphics device. GNS is used by all the high-level graphics libraries, so direct calls to GNS routines will seldom be necessary.