This document describes version 0.9 of the TRANSFORM coordinate transformation facility and shows how it may be used in application programs operating within the Starlink ADAM environment. It is assumed that the reader is familiar with this environment and with the Starlink Hierarchical Data System HDS (SUN/92).
The main text of this document provides a guide for programmers who have not used the TRANSFORM facility before. It contains an introduction to the overall capabilities of the software and the basic concepts involved, followed by a tutorial-style description of all the main features with examples of their use.
The Appendices at the end of the document contain further reference material which will mainly be of value to more experienced users. In particular, Appendix D gives a description of all the user-callable routines provided.
The TRANSFORM facility is a library of subroutines which may be used by application programs to process information describing the relationships between different coordinate systems.
It provides a standard, flexible method for manipulating coordinate transformations and for transferring information about them between applications. It can handle coordinate systems with any number of dimensions and can efficiently process large (i.e. image-sized) arrays of coordinate data using a variety of numerical precisions. No specific support for astronomical coordinate transformations or map projections is included at present, but routines for handling these will appear in future. The current system provides tools for creating a wide variety of coordinate transformations, so it should be possible to construct some of the simpler astronomical transformations explicitly, if required, on an interim basis.
Some possible applications of TRANSFORM routines include:
Note that the TRANSFORM facility uses the Hierarchical Data System (HDS) to store its information in standard data structures for interchange between applications. These data structures may therefore be used as building blocks when constructing larger HDS datasets and also when designing “extensions” to the standard Starlink NDF data structure (see SGP/38).