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):
- A new “How To...” section (§3) has been
added to this document. It contains simple recipies for performing
commonly-required operations using AST.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- Some improvements have been made to the algorithms for
simplifying compound Mappings, as used by astSimplifyastSimplify.
- 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.
- 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.
- 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.
- 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.
- A problem has been fixed which could prevent tick marks being
drawn on a coordinate axis close to a singularity in the coordinate
system.