orac003-udrr Version: 01 Original: 17 November 1997 Modified: 17 November 1997
This document sets out a specification and list of requirements for the UKIRT Data Reduction System, part of the UKIRT ORAC (Observatory Reduction and Acquisition Control) project.
This document is intended to outline the specification of the UKIRT Data Reduction system and provide a list of requirements. The requirements list will consist of both user requirements and software requirements. It is intended to be read by anyone with an interest in the UKIRT Data Reduction system.
The UKIRT Data Reduction system is intended to run at the telescope, reducing data as they are acquired, by all current and planned common-user instruments[1], in near real-time. The main aim is to provide feedback to the observer(s) that is sufficient to allow sensible decisions to be made about the quality of the acquired data. However, where possible this should also be the only time the data needs to pass through the relevant reduction stages.
It is not intended that this system should provide completely reduced, publishable, data, however it should be flexible enough to allow extension of the reduction pipeline, and to accomodate the (possibly new) reduction needs of all planned future instrumentation.
The rest of this document will briefly describe the UKIRT Data Reduction system and its relationships to other systems. A comparision with previous similar systems will also be made. The system context will be described and a brief design presented.
Finally a list of specific user and software requirements will be given.
The UKIRT Data Reduction system is one part of the UKIRT Observatory Reduction and Acquisition Control (ORAC) project. Reference [O-1] gives an overview of this project and summarises the relationships.
This project will build on the experience gained with the CGS4DR [X-10] project, which it will replace at the telescope. It will also replace the IRCAMDR system. CGS4DR was extremely successful, but it was the first of its kind and as a consequence many years of use have revealed a number of flaws. The experience gained with the system will serve as input to the new system. In addition the move of astronomical computer systems from VMS to Unix, and the appearance in recent years of a number of new tools, such as graphical user interface builders and scripting tools (e.g. tcl/Tk, perl, python), provide an opportunity to reimplement the aims of CGS4DR in a cleaner, more supportable, and more extensible manner.
In summary the main functions of the UKIRT Data Reduction system are:
The system shall be designed to run on Sun workstations running Solaris v2.5 (or later). Where possible the system shall be made portable (a) to other Unix systems and (b) to non-Unix operating systems, but this should not be allowed to interfere with the production of the system.
The system should be designed with a range of users in mind - expert support scientists, instrument hardware engineers, both novice and expert observers.
Where possible it should use standard supported software tools and astronomical data reduction packages. Where a scripting language is required it should be one in common use and with external support. Any modifications to it should be kept small and, if possible, fed back into the standard support sctructure.
Where possible existing algorithms from commonly used data reduction systems should be used. If new or modified algorithms are required then these should, if possible, be fed back into the standard package.
Figure 1 shows a context diagram for the UKIRT Data Reduction System.
FIGURE 1. Context Diagram for the UKIRT Data Reduction system
In this diagram the external entities are:
The UKIRT Observatory Control System. This is also part of the ORAC project. In the context of the data reduction system it will provide commands to the system to configure it and will also inform the system of new data to be reduced. It may supply data reduction recipes to the system, but these may be embedded in the data for reduction.
This is a store of generic scripts that will be used by the system to create scripts that are specific to the data arriving. It is not clear yet that this store is required (the scripts might be generated "on the fly" by the system) and perhaps it might be regarded as part of the system. If it is required and is not regarded as part of the system then a separate system must be provided to create it.
This represents the observer who is most probably at the telescope, but might also be remote. The observer may play a passive role - simply monitoring the data reduction status and the display of reduced data, or they may also supply commands to the system, e.g. to change a configuration, interrupt the reduction or re-reduce data.
This is where the data reduction system will find the data that are to be reduced and also where it will write the reduced data.
The data flows on this diagram are:
These are commands sent to the system which will control it (e.g. start, stop, abort, pause, continue), or configure it, or to change the list of data that the system is to reduce.
This flow represents the information that tells the system how to reduce certain data or types of data. It is likely that a recipe will map to a script to be used to perform the actual reduction. The format of this flow is not yet decided - a recipe may simply be a name, or it may be a simple sequence of names. It is possible that the recipe might be embedded in the data for reduction, in which case this flow would not appear explicitly at this level.
This flow presents an actual script, written in a scripting langauge, which may be used to reduce certain types of data. It is "generic" in the sense that it does not have specific information about the data in it (e.g. names or numbers of files). It is possible that this flow will not exist at this level.
This is the feedback to the observer of how the data reduction is proceeding. It also represents the response to certain data reduction commands sent to the system.
This represents the data that are to be reduced by the system. This may be "raw" acquired data or it may be products of previous reduction processes.
This represents the data written by the system as a result of a reduction process.
Some of these are set out in Section 2.4. In addition it is assumed that the developers will develop in a standard programming language (Fortran, C, Java, allowed) and if an "environment" is required then Drama is recommended. Reasons for using others should be provided and such use agreed.
An initial attempt at describing how the system will operate is shown in Figure 2. In addition this section attempts to flesh out that diagram.
In this model the idea is that the system maintains an internal queue of datasets to be reduced. Entries to this queue are made in some way as each dataset is stored to disk (see the flow data reduction commands). Then as each dataset is recovered from this queue (first-in, first-out) the recipe associated with it is "parsed" by Parse DR Recipe. This may be as simple as converting a name into the name of a script to be used, but might be more complex. The information derived from this (recipe info) is sent to Generate Specific Script. This process also knows about the configuration of the system (the flow drs setup) and has access to information about datasets that have been previously reduced (index information). The process uses these inputs to generate a specific script which pertains to the data that are to be reduced. This script might be generated "on the fly" or may be derived from generic scripts. The specific script is sent to Execute Script which has responsibilty for running it. Execute Script might be as simple as an existing scripting language interpreter.
This is very much an initial design and does not yet meet all of the requirements set out in Section 3.0. However, it does give an idea of the current model.
FIGURE 2. Level 0: UKIRT Data Reduction
This is a list of the overall functional requirements that the data reduction system must meet.
This is a list of the initial recipes or scripts that will be required in order to meet the data reduction requirements of existing instrumentation. The system must be capable of reducing data taken using the following observing sequences:
For images the following general calibrations and corrections must be available:
For spectroscopy the following general calibrations and corrections must be available:
For engineering purposes the following general analysis tools need to be easy to use:
These are requirements placed on the system by the need to interface to external systems.
This is a list of the documentation requirements for the system. Similar requirements are placed on other aspects of the ORAC project.