1 Introduction

Contents of this section

The Data Reduction Package (DRP) is a number of small programs to be used for single dish spectral line data reduction. It has an advantage (in the author's mind) over traditional packages like POPS or CLASS, in that it needs considerably less system resources. Each DRP command is a program by itself, which will be run from a shell or even a graphical user interface (GUI) where the operating system permits it. Individual commands can be combined into more powerful ones by using shell scripts, so it is the limitation of the underlying shell that will set the limits for DRP.

Under UNIX the user has a wide choice of shells (sh, csh, ksh, tcsh) and they are all very powerful. Each of them provides control structures like if, while, foreach and arithmetic statements, as well as local and global variables. DRP inherits all of these by its very nature, together with all the other niceties, such as history mechanisms, I/O redirection etc.

During the development of DRP it became clear very soon, that a major advantage of DRP's modular structure is the ease of adding new features to it. Often the implementation of a new command is only a matter of minutes, compared to the long time it needs, only to recompile and relink the bigger packages, let alone tracking their code down in order to find the place where to implement the modification.

The UNIX version of DRP is completely written in ANSI C, which helps portability to other platforms with ANSI compliant C compilers. So far, DRP has been ported (from the original non-ANSI implementation at SEST) to UNIX, MS-DOS and AMIGA-OS. The choice of C as the programming language does in no way exclude the possibilities to write new commands for DRP in other languages such as FORTRAN.

There is one consequence of the usage of C, though, which is that channels of spectra in DRP are numbered from 0 to n-1, rather than from 1 to n, where n is the number of channels in the spectrum. This has to be kept in mind when using commands like data, or when specifying ranges by channel number.

Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter