Loading [MathJax]/jax/output/HTML-CSS/jax.js
-
- AST
A Library for Handling
World Coordinate Systems
in Astronomy - Next→
- TOC ↑
1 Introduction
Welcome to the AST library. If you are writing software for astronomy and need to use celestial
coordinates (e.g. RA and Dec), spectral coordinates (e.g. wavelength, frequency, etc.), or
other coordinate system information, then this library should be of interest. It provides
solutions for most of the problems you will meet and allows you to write robust and flexible
software. It is able to read and write WCS information in a variety of formats, including
FITS-WCS.
1.1 What Problems Does AST Tackle?
Here are some of the main problems you may face when handling world coordinate system (WCS)
information and the solutions that AST provides:
-
1. The Variety of Coordinate Systems
Astronomers use a wide range of differing coordinate systems to describe positions
within a variety of physical domains. For instance, there are a large number of
celestial coordinate systems in use within astronomy to describe positions on the sky.
Understanding these, and knowing how to convert coordinates between them, can
require considerable expertise. It can also be difficult to decide which of them your
software should support. The same applies to coordinate systems describing other
domains, such as position within an electro-magnetic spectrum.
Solution. AST has built-in knowledge of many coordinate systems and allows you
to convert freely between them without specialist knowledge. This avoids the need
to embed details of specific coordinate systems in your software. You also benefit
automatically when new coordinate systems are added to AST.
-
2. Storing and Retrieving WCS Information
Storing coordinate system information in astronomical datasets and retrieving it later
can present a considerable challenge. Typically, it requires knowledge of rather complex
conventions (e.g. FITS) which are low-level, often mis-interpreted and may be subject to
change. Exchanging information with other software systems is further complicated by
the number of different conventions in use.
Solution. AST combines a unifying high-level description of WCS information with the
ability to save and restore this using a variety of formats. Details of the formats, which
include FITS, are handled internally by AST. This frees you from the need to understand
them or embed the details in your software. Again, you benefit automatically when new
formats are added to AST.
-
3. Generating Graphical Output
Producing graphical displays involving curvilinear coordinate systems, such as celestial
coordinate grids, can be complicated. Particular difficulties arise when handling large
areas of sky, the polar regions and discontinuous (e.g. segmented) sky projections. Even
just numbering and labelling curvilinear axes is rarely straightforward.
Solution. AST provides plotting facilities especially designed for use with curvilinear
coordinate systems. These include the plotting of axes and complete labelled coordinate
grids. A large number of options are provided for tailoring the output to your specific
needs. Three dimensional coordinate grids can also be produced.
-
4. Aligning Data from Different Sources
One of the main uses of coordinate systems is to facilitate the inter-comparison of data
from different sources. A typical use might be to plot (say) radio contours over an optical
image. In practice, however, different celestial coordinate systems may have been used,
making accurate alignment far from simple.
Solution AST provides a one-step method of aligning datasets, searching for all possible
intermediate coordinate systems. This makes it simple to directly inter-relate the pixel
coordinates of different datasets.
-
5. Handling Different Types of Coordinate System
Not all coordinate systems used in astronomy are celestial ones, so if you are writing
general-purpose software such as (say) a display tool, you may also need to handle axes
representing wavelength, distance, time or whatever else comes along. Obviously, you
would prefer not to handle each one as a special case.
Solution AST uses the same flexible high-level model to describe all types of coordinate
system. This allows you to write software that handles different kinds of coordinate axis
without introducing special cases.
1.2 Other Design Objectives
As well as its scientific objectives, the AST library’s design includes a number of technical criteria
intended to make it applicable to as wide a range of projects as possible. The main considerations are
described here:
-
(1)
- Minimum Software Dependencies. The AST library depends on no other other software.
-
(2)
- Environment Independence. AST is designed so that it can operate in a variety of
“programming environments” and is not tied to any particular one. To allow this, it uses
simple, flexible interfaces to obtain the following services:
- Data Storage. Data I/O operations are based on text and/or FITS headers. This
makes it easy to interface to a wide variety of astronomical data formats in a
machine-independent way.
- Graphics. Graphical output is produced via a simple generic graphics interface,
which may easily be re-implemented over different graphics systems. AST provides
a default implementation based on the widely-used PGPLOT graphics system
(SUN/15).
- Error Handling. Error messages are written to standard error by default, but go
through a simple generic interface similar to that used for graphics (above). This
permits error message delivery via other routes when necessary (e.g. in a graphical
interface).
-
(3)
- Multiple Language Support. AST has been designed to be called from more than one language.
Both Fortran and C interfaces are available (see SUN/211 for the C version) and use from
C++
is also straightforward if the C interface is included using:
extern "C" {
#include "star/ast.h"
}
A JNI interface (known as “JNIAST” - see http://www.starlink.ac.uk/jniast/) has also been
developed by Starlink which allows AST to be used from Java.
-
(4)
- Object Oriented Design. AST uses “object oriented” techniques internally in order to provide a
flexible and easily-extended programming model. A fairly traditional calling interface is
provided, however, so that the library’s facilities are easily accessible to programmers using
Fortran and C.
-
(5)
- Portability. AST is implemented entirely in ANSI standard C and, when called via its C interface,
makes no explicit use of any machine-dependent facilities.
The Fortran interface is, unavoidably, machine dependent. However, the potential for problems
has been minimised by encapsulating the interface layer in a compact set of C macros which
facilitate its transfer to other platforms. No Fortran compiler is needed to build the
library.
Currently, AST is supported by Starlink on PC Linux, Sun Solaris and Tru64 Unix (formerly
DEC UNIX) platforms.
1.3 What Does “AST” Stand For?
The library name “AST” stands for “ASTrometry Library”. The name arose when it was thought that
knowledge of “astrometry” (i.e. celestial coordinate systems) would form the bulk of the library. In
fact, it turns out that astrometry forms only a minor component, but the name AST has
stuck.
Copyright (C) 2021 East Asian Observatory
-
- AST
A Library for Handling
World Coordinate
Systems
in Astronomy - Next→
- TOC ↑