If life were simple there would only be one data format, but in reality there are numerous formats for storing n-dimensional astronomical data associated with various software packages. In Starlink we have not been immune to this, having the original INTERIM BDF, HDS IMAGE format, and FIGARO DSTs to name but three. However, Starlink is now taking the novel approach of supporting different packages sharing a common data format—the NDF1 (Extensible n-Dimensional-data format)—which most Starlink packages are already using.
The purpose of Convert is the interchange of data files to and from the NDF. Thus it enables astronomers to select the best applications from a variety of packages, including those originating abroad like IRAF. In addition it assists packages that wish to move to using the NDF.
Convert is available from all three UNIX platforms supported by Starlink. The supported conversions are currently as follows:
ASCII2NDF – | Converts a text file to an NDF. |
AST2NDF – | Converts an Asterix data cube into a standard NDF. |
DA2NDF – | Converts a direct-access unformatted file to an NDF. |
DST2NDF – | Converts a Figaro (Version 2) DST file to an NDF. |
FITS2NDF – | Converts FITS files into NDFs. |
GASP2NDF – | Converts an image in GASP format to an NDF. |
GIF2NDF – | Converts an image in GIF format to an NDF. |
IRAF2NDF – | Converts an IRAF image to an NDF. |
IRCAM2NDF – | Converts an IRCAM data file to a series of NDFs. |
MTFITS2NDF – | Converts a FITS tape to one or more NDFs. |
NDF2ASCII – | Converts an NDF to a text file. |
NDF2DA – | Converts an NDF to a direct-access unformatted file. |
NDF2DST – | Converts an NDF to a Figaro (Version 2) DST file. |
NDF2FITS – | Converts an NDF to a FITS file. |
NDF2GASP – | Converts a two-dimensional NDF into a GASP image. |
NDF2GIF – | Converts an NDF to a GIF file. |
NDF2IRAF – | Converts an NDF to an IRAF image. |
NDF2PGM – | Converts an NDF to a PGM format. |
NDF2TIFF – | Converts an NDF to a TIFF file. |
NDF2UNF – | Converts an NDF to a sequential unformatted file. |
SPECX2NDF – | Converts a SPECX map into a simple data cube, or SPECX data files to individual spectra. |
TIFF2NDF – | Converts an image in TIFF format to an NDF. |
UNF2NDF – | Converts a sequential unformatted file to an NDF. |
– |
In addition there are FITS readers within Kappa (see SUN/95) which will convert FITS files and tapes to NDFs. These are more tolerant of ‘almost FITS’ files, but lack support for IMAGE and BINTABLE extensions.
IDL procedures for handling NDFs and other methods of converting NDFs to IDL format are described in Appendix B of this document.
Starting up the Convert package will also set up defaults for the automatic NDF conversion facilities (described in Section 3) to enable applications which use the NDF library to read and write most of the file formats handled by the Convert package, and some others.
The various formats supported by Convert do not have one-to-one correspondence and therefore in general it is not possible to apply a forward and reverse conversion and finish with a duplicate of the initial data file. This hysteresis is particularly likely when starting with an NDF, since many simpler formats have no way of storing certain NDF data items, like variance and axis widths. However, if you are dealing with a simple file containing just a data array and linear axis centres, then it should be possible to avoid loss of information except with GIF and TIFF formats which will reduce the absolute data values to 256 greyscale levels.
Note – the input data file is not deleted or altered in any way.
1See SUN/33 for an introduction to the NDF.