Next: The Data Analysis System for the SUBARU Telescope
Previous: The SAX Scientific Software
Table of Contents --- Search --- PS reprint


Astronomical Data Analysis Software and Systems V
ASP Conference Series, Vol. 101, 1996
George H. Jacoby and Jeannette Barnes, eds.

SHIVA---An Astronomical Data Analysis Framework1

Gary Sergey, Eileen Berman, Chih-Hao Huang, Stephen Kent, Heidi Newberg, Tom Nicinski, Don Petravick, Chris Stoughton

Fermi National Accelerator Laboratory, PO Box 500, Batavia, IL 60510

Robert Lupton

Department of Astronomy, Princeton University, Princeton, NJ 08544

1Sponsored by DOE Contract DE-AC02-76CH03000.

Abstract:

A key on-line and off-line software component of the Sloan Digital Sky Survey (SDSS) is Shiva. Shiva provides a readily extendible framework upon which the SDSS data reduction pipeline software is built. In this paper we present an introduction to the Shiva data analysis framework. We briefly discuss the features and the inherent prototyping and rapid development capabilities that make Shiva an integral part in the on-going development of SDSS software.

1. SDSS Introduction

The Sloan Digital Sky Survey (SDSS) is an astrophysics project to map steradians of the northern galactic hemisphere. The survey will utilize a dedicated 2.5 meter telescope at the Apache Point Observatory in New Mexico to take tens of terabytes of imaging data and spectroscopic data. SDSS collaborators include the Fermi National Accelerator Laboratory, the Institute for Advanced Study, the Japan Promotion Group, The Johns Hopkins University, Princeton University, the United States Naval Observatory, the University of Chicago, and the University of Washington.

2. Shiva Introduction

Since software development for the SDSS would be conducted by a variety of scientific programmers throughout the collaboration, the goal of providing a low-level ``building-block'' software toolkit was initiated at the projects onset. The culmination of this effort was the Shiva (Survey Human Interface and Visualization Application) product. The intent of Shiva was to supply a set of tools useful to astronomical programmers, packaged in a readily extendible framework. Additionally, Shiva was meant to isolate developers from such mundane programming tasks as I/O, error reporting, and memory management, allowing them to concentrate on the science at hand. Shiva's ANSI-C based core is the foundation for each of the survey's data reduction pipelines (astrometric, photometric, spectroscopic, etc.).

3. Integrated Products

To avoid duplication of effort and reduce software development costs, Shiva was integrated with existing software products obtained from independent institutions. For instance, Shiva's user interface is provided through Tcl/Tk/TclX, while SAOimage allows displaying of FITS image data, PGPLOT supplies graphical plotting capabilities, and LIBFITS is used for FITS I/O. Although these products were extended to interface with the Shiva environment, attempts were made to minimize and isolate changes. This permits future releases of the original products to be installed without significant disruption.

4. Main Shiva Features

4.1. Prototyping and Expandability

Through Shiva's Tcl/Tk based user interface, and the interpretive and scripting capabilities it affords, users can easily make additions, test, and debug new ideas at run-time, without the need for changes to the underlying Shiva framework. If certain prototypes prove useful, they may remain as Tcl code or be converted to C code for more time-critical applications.

This ability to easily migrate from Tcl to C code is facilitated by the redundancy of the Shiva toolkit---both Tcl and C callable routines are available for most basic functions. This was achieved by simply providing Tcl wrappers around all (ANSI-C) user callable functions of Shiva.

4.2. Data Object Management

With Shiva, built-in utilities are available to assist in the creation, manipulation, and management of a variety of pre-defined data object types. For example, FITS images can be read into objects known as ``regions'' and then operated upon as complete objects (arithmetic region adds, comparisons, etc.) or modified individually (alteration of individual pixel values).

In addition to the ability to provide custom manipulation utilities for pre-defined objects, users can declare their own object types and include associated support software. The objects themselves are analogous to C-style data structures and therefore are not limited to just simple types, but may include more complex types, such as pointers. Like other primary functions in Shiva, object definition and management can take place from both the C and Tcl levels.

For more common object operations, Shiva contains a suite of generic support routines. For instance, ``chain'' utilities can be used to maintain linked-lists of objects. Other utilities allow objects to be saved to/restored from FITS files. Shiva also has the ability to ``dump'' all current objects to disk.

4.3. Image Displaying

Shiva's image display capabilities are furnished through SAOimage. From Shiva, users can perform basic control functions such as spawning SAOimage processes and supplying image data to be displayed or redrawn.

The communication interface between Shiva and SAOimage supports a number of capabilities, including the ability to assign user-specified C/Tcl routines to mouse buttons so that further analysis can be conducted based on where/when a mouse event occurs in SAOimage. Basic geometric shapes (normally drawn interactively through SAOimage), can also be specified remotely through Shiva, while the display mask feature permits colored bit planes to be overlayed on existing images.

4.4. Miscellaneous Features

Shiva has a built-in memory manager, which helps increase efficiency of memory utilization and provides utilities to assist in determining memory requirements for the various pipelines. Other components of Shiva support histogramming and mathematical operations on floating point values and arrays, while plotting of results can be accomplished through the PGPLOT interface.

In short, Shiva consists of numerous features and components, many of which are particular to the needs of the survey and are beyond the scope of this paper. Similarly, the benefits Shiva derives from the products it incorporates are too numerous to mention herein.

5. Conclusion

Shiva has been successful in its role as an extensible framework as it's been readily accepted by astronomers for the construction of the pipeline software. Naturally, the acceptance of Shiva has also helped regulate survey software quality, as all low level functionality is conducted through Shiva instead of through independent means.

Throughout the development process, and continuing today, the input and ideas of the end-users have easily been incorporated into the mainline. So far, Shiva has already been used to successfully reduce test data and is envisioned to continue as an integral part in the on-going development of SDSS software.

References:

Berman, E., Gurbani, V., Lupton, R., Mackinnon, B., Newberg, H., Nicinski, T., Petravick, D., Pordes, R., Sergey, G., & Stoughton, C. 1994, Computing in High Energy Physics, 264

Lehenbauer, K., & Diekhans, M. 1992, Extended Tcl Command Set, Neosoft, Inc.

Ousterhout, J. 1993, Tcl/Tk Manual Pages, University of California at Berkeley

Pearson, T. J. 1994, PGPLOT Graphics Subroutine Library, California Institute of Technology

Uomoto, A. 1993, LIBFITS Reference Manual, The Johns Hopkins University

VanHilst, H. 1991, User Manual for SAOimage, Smithsonian Astrophys. Obs.


Next: The Data Analysis System for the SUBARU Telescope
Previous: The SAX Scientific Software
Table of Contents --- Search --- PS reprint
Wed Jul 3 08:06:42 MST 1996