Changes Introduced in V1.1

The following describes the most significant changes which occurred in the AST library between versions V1.0 and V1.1 (not the most recent version):

  1. A new “How To...” section (§3) has been added to this document. It contains simple recipies for performing commonly-required operations using AST.

  2. A new astUnformatastUnformat function has been provided to read formatted coordinate values for the axes of a FrameFrame (§7.8). In essence, this function is the inverse of astFormatastFormat. It may be used to decode user-supplied formatted values representing coordinates, turning them into numerical values for processing. Celestial coordinates may also be read using this function (§8.7) and free-format input is supported.

  3. The Format attribute string used by a SkyFrameSkyFrame when formatting celestial coordinate values now allows the degrees/hours field to be omitted, so that celestial coordinates may be given in (e.g.) arc-minutes and/or arc-seconds (§8.6). As a result, the degrees/hours field is no longer included by default. A new “t” format specifier has been introduced (see the Format attribute) to allow minutes and/or seconds of time to be specified if required.

  4. A new function astMapBoxastMapBox has been introduced. This allows you to find the extent of a “bounding box” which just encloses another box after it has been transformed by a MappingMapping. A typical use might be to calculate the size which an image would have if it were transformed by the Mapping.

  5. A new class of ObjectObject, the IntraMapIntraMap, has been introduced (§20). This is a specialised form of Mapping which encapsulates a privately-defined coordinate transformation function (e.g. written in C) so that it may be used like any other AST Mapping. This allows you to create Mappings that perform any conceivable coordinate transformation.

  6. The internal integrity of a FrameSetFrameSet is now automatically preserved whenever changes are made to any attributes which affect the current Frame (either by setting or clearing their values). This is accomplished by appropriately re-mapping the current Frame to account for any change to the coordinate system which it represents (§14.6).

  7. The internal structure of a FrameSet is now automatically tidied to eliminate redundant nodes whenever any of its Frames is removed or re-mapped. Automatic simplification of any compound Mappings which result may also occur. The effect of this change is to prevent the accumulation of unnecessary structure in FrameSets which are repeatedly modified.

  8. Some improvements have been made to the algorithms for simplifying compound Mappings, as used by astSimplifyastSimplify.

  9. The textual representation used for some Objects (i.e. when they are written to a ChannelChannel) has changed slightly, but remains compatible with earlier versions of AST.

  10. Interfaces to the internal functions and macros used by AST for handling memory and error conditions are now provided via the “ast.h” header file. This is for the benefit of those writing (e.g.) new graphics interfaces for AST.

  11. A problem has been fixed which could result when using astReadastRead to read FITS headers in which the CDELT value is zero. Previously, this could produce a Mapping whose inverse transformation was not defined and this could unnecessarily restrict the use to which it could be put. The problem has been overcome by supplying a suitable small CDELT value for FITS axes which have only a single pixel.

  12. A bug has been fixed which could occasionally cause a MatrixMapMatrixMap to be used with the wrong InvertInvert attribute value when it forms part of a compound Mapping which is being simplified using astSimplify.

  13. A problem has been fixed which could prevent tick marks being drawn on a coordinate axis close to a singularity in the coordinate system.