- ←Prev
- AST
A Library for Handling
World Coordinate Systems
in Astronomy -
- TOC ↑
H Release Notes
H.1 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 ?? function has been provided to read formatted coordinate values for the axes
of a ?? (§7.8). In essence, this function is the inverse of ??. 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 ?? 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 ?? 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 ??. 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 ??, the ??, 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 ?? 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 ??.
-
(9)
- The textual representation used for some Objects (i.e. when they are written to a ??) 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 ?? 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 ?? to be used with the wrong ??
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.
H.2 Changes Introduced in V1.2
The following describes the most significant changes which occurred in the AST library between
versions V1.1 and V1.2 (not the most recent version):
-
(1)
- A new function, ??, has been introduced to allow more efficient plotting of multiple
geodesic curves (§21.3).
-
(2)
- A new set of functions, ??, has been introduced to perform resampling of gridded
data such as images (i.e. re-gridding) under the control of a geometrical transformation
specified by a ??.
-
(3)
- The command-line options “pgp”
and “pgplot”,
which were previously synonymous when used with the “??” and “??” commands, are no
longer synonymous. The option “pgp”
now causes linking with the Starlink version of PGPLOT (which uses GKS to generate its
output), while “pgplot”
links with the standard (or “native”) version of PGPLOT.
-
(4)
- The function ?? has been changed to execute more quickly, although this has been
achieved at the cost of some loss of robustness when used with difficult Mappings.
-
(5)
- A new value of “FITS-IRAF” has been introduced for the ?? attribute of a ??. This
new encoding provides an interim solution to the problem of storing coordinate system
information in FITS headers, until the proposed new FITS-WCS standard becomes stable.
-
(6)
- When a ?? is created from a set of FITS header cards (by reading from a FitsChan using
a “foreign” encoding), the base ?? of the resulting FrameSet now has its ?? attribute set
to “GRID”. This reflects the fact that this Frame represents FITS data grid coordinates
(equivalent to FITS pixel coordinates—see §7.13). Previously, this Domain value was not
set.
-
(7)
- ?? now ignores trailing spaces in its keyword template.
-
(8)
- ?? now recognises “D” and “d” as valid exponent characters in floating point numbers.
-
(9)
- The FitsChan class is now more tolerant of common minor violations of the FITS
standard.
-
(10)
- The FitsChan class now incorporates an improved test for the linearity of Mappings,
allowing more reliable conversion of AST data into FITS (using “foreign” FITS
encodings).
-
(11)
- Some further improvements have been made to the algorithms for simplifying compound
Mappings, as used by ??.
-
(12)
- A new ?? attribute has been added to the ?? class. This allows improved simplification
of compound Mappings (CmpMaps) involving SphMaps and typically improves
performance when handling FITS world coordinate information.
-
(13)
- A ?? no longer propagates input coordinate values of AST__BAD automatically to all
output coordinates. If certain output coordinates do not depend on the affected input
coordinate(s) because the relevant matrix elements are zero, then they may now remain
valid.
-
(14)
- A minor bug has been corrected which could cause certain projections which involve half
the celestial sphere to produce valid coordinates for the other (unprojected) half of the
sphere as well.
-
(15)
- A bug has been fixed which could occasionally cause ?? to think that conversion between
a ?? and another Frame was possible when, in fact, it wasn’t.
H.3 Changes Introduced in V1.3
The following describes the most significant changes which occurred in the AST library between
versions V1.2 and V1.3 (not the most recent version):
-
(1)
- A new set of functions, ??, has been introduced to provide efficient resampling of gridded
data, such as spectra and images, under the control of a geometrical transformation
specified by a ??. A variety of sub-pixel interpolation schemes are supported.
-
(2)
- A new class, ??, has been introduced. This is a specialised form of Mapping which
implements 2-dimensional pincushion or barrel distortion.
-
(3)
- A bug has been fixed which could cause a ?? to produce too many digits when formatting
floating point values for inclusion in a FITS header if the numerical value was in the range
-0.00099999…to -0.0001.
-
(4)
- A bug has been fixed which could cause a FitsChan to lose the comment associated with
a string value in a FITS header.
-
(5)
- A FitsChan now reports an error if it reads a FITS header which identifies a non-standard
sky projection (previously, this was accepted without error and a Cartesian projection
used instead).
-
(6)
- A bug has been fixed which could prevent conversion between the coordinate systems
represented by two CmpFrames. This could only occur if the CmpFrames contained a
relatively large number of nested Frames.
-
(7)
- Further improvements have been made to the simplification of compound Mappings,
including fixes for several bugs which could cause indefinite looping or unwanted error
messages.
-
(8)
- Some memory leaks have been fixed.
-
(9)
- A small number of documentation errors have been corrected.
H.4 Changes Introduced in V1.4
The following describes the most significant changes which have occurred in the AST library between
versions V1.3 and V1.4 (not the most recent version):
-
(1)
- A new ?? class has been introduced. This is a form of ?? that allows you to
define coordinate transformations in a flexible and transportable way using arithmetic
operations and mathematical functions similar to those available in C.
-
(2)
- WARNING—INCOMPATIBLE CHANGE. Transformation functions used with the ??
class (see, for example, ??) now require a “this” pointer as their first parameter. Existing
implementations will not continue to work correctly with this version of AST unless
this parameter is added. There is no need for existing software to make use of this pointer,
but it must be present.
This change has been introduced so that transformation functions can gain access to
IntraMap attributes.
-
(3)
- A new ?? attribute has been added to the IntraMap class. This allows the transformation
functions used by IntraMaps to adapt to produce the required transformation on a
per-IntraMap basis (§20.9).
-
(4)
- The ?? attributes MajTickLen and MinTickLen, which control the length of major and
minor tick marks on coordinate axes, may now be subscripted using an axis number. This
allows tick marks of different lengths to be used on each axis. It also allows tick marks to
be suppressed on one axis only by setting the length to zero.
-
(5)
- The value of the Plot attribute NumLab, which controls the plotting of numerical labels
on coordinate axes, no longer has any effect on whether labelling of a coordinate grid is
interior or exterior (as controlled by the ?? attribute).
-
(6)
- The ?? class now provides some support for the IRAF-specific “ZPX” sky projection,
which is converted transparently into the equivalent FITS “ZPN” projection (see the
description of the ?? attribute for details).
-
(7)
- The FitsChan class now recognises the coordinate system “ICRS” (International Celestial
Reference ??) as equivalent to “FK5”. This is an interim measure and full support for the
(exceedingly small) difference between ICRS and FK5 will be added at a future release.
Note that “ICRS” is not yet recognised as a coordinate system by other classes such as ??,
so this change only facilitates the importation of foreign data.
-
(8)
- A bug in the FitsChan class has been fixed which could result in longitude values being
incorrect by 180 degrees when using cylindrical sky projections, such as the FITS “CAR”
projection.
-
(9)
- A bug in the FitsChan class has been fixed which could result in the FITS sky projection
parameters ProjP(0) to ProjP(9) being incorrectly named PROJP1 to PROJP10 when
written out as FITS cards.
-
(10)
- A bug in the FitsChan class has been fixed which could cause confusion between the
FITS-IRAF and FITS-WCS encoding schemes if both a CD matrix and a PC matrix are
erroneously present in a FITS header.
-
(11)
- Some minor memory leaks have been fixed.
-
(12)
- A small number of documentation errors have been corrected.
H.5 Changes Introduced in V1.5
The following describes the most significant changes which have occurred in the AST library between
versions V1.4 and V1.5 (not the most recent version):
-
(1)
- The ?? class has been modified to support the latest draft FITS WCS standard, described
in the two papers “Representation of world coordinates in FITS” (E.W. Greisen and
M. Calabretta, dated 30th November, 1999), and “Representation of celestial coordinates
in FITS” (M. Calabretta and E.W. Greisen, dated 24th September, 1999). These are
available at http://www.cv.nrao.edu/fits/documents/wcs/wcs.html.
The FITS-WCS encoding now uses these updated conventions. The main changes are:
- Rotation and scaling of pixel axes is now represented by a matrix of
CDj_i keywords
instead of a combination of PCjjjiii and CDELTj keywords.
- ?? parameters are now associated with particular axes and are represented by
??
keywords instead of the PROJPm keywords.
- The tangent plane projection (“TAN”) can now include optional polynomial
correction terms.
- An entire set of keywords must be supplied for each set of secondary axis
descriptions, and each such keyword must finish with a single character indicating
which set it belongs to. This means that keywords which previously occupied eight
characters have been shorten to seven to leave room for this extra character. Thus
LONGPOLE has become LONPOLE and RADECSYS has become RADESYS.
-
(2)
- Two new encodings have been added to the FitsChan class:
-
FITS-PC
- This encoding uses the conventions of the now superseded FITS WCS paper
by E.W. Greisen and M. Calabretta which used keywords
CDELTj and PCjjjiii to
describe axis scaling and rotation. These are the conventions which were used by
the FITS-WCS encoding prior to version 1.5 of AST. This encoding is provided to
allow existing data which use these conventions to be read. It should not in general
be used to create new data.
-
FITS-AIPS
- This encoding is based
on the conventions described in the document “Non-linear Coordinate Systems in
AIPS” by Eric W. Greisen (revised 9th September, 1994 and available by ftp from
fits.cv.nrao.edu /fits/documents/wcs/aips27.ps.Z). This encoding uses
CROTAi and
CDELTi keywords to describe axis rotation and scaling.
-
(3)
- The FitsChan class now provides some support for the IRAF-specific “TNX” sky projection,
which is converted transparently into the equivalent FITS “TAN” projection (see the description
of the ?? attribute for details).
-
(4)
- FrameSets originally read from a DSS encoded FITS header can now be written out using the
FITS-WCS encoding (a TAN projection with correction terms will be used) in addition to the DSS
encoding. The reverse is also possible: FrameSets originally read from a FITS-WCS encoded
FITS header and which use a TAN projection can now be written out using the DSS
encoding.
-
(5)
- The algorithm used by the FitsChan class to verify that a ?? conforms to the FITS-WCS model
has been improved so that FrameSets including more complex mixtures of parallel and serial
Mappings can be written out using the FITS-WCS encoding.
-
(6)
- The FitsChan class has been changed so that long strings included in the description of an ?? can
be saved and restored without truncation when using the NATIVE encoding. Previously, very
long ?? titles, mathematical expressions, etc. were truncated if they exceeded the capacity of a
single FITS header card. They are now split over several header cards so that they can be
restored without truncation. Note, this facility is only available when using NATIVE
encoding.
-
(7)
- The FitsChan class has a new attribute called ?? which can be used to select potentially
dangerous conditions under which warnings should be issued. These conditions include (for
instance) unsupported features within non-standard projections, missing keywords for which
default values will be used, etc.
-
(8)
- The ?? class has been changed to support the changes made to the FITS-WCS encoding in the
FitsChan class:
- Projection parameters are now associated with a particular axis and are specified
using a new set of attributes called PVj_m. Here, “j” is the index of an axis of
WcsMap, and “m” is the index of the projection parameter.
- The old attributes ProjP(0) to ProjP(9) are still available but are now deprecated in
favour of the new PVj_m attributes. They are interpreted as aliases for PV(axlat)_0
to PV(axlat)_9, where “axlat” is the index of the latitude axis.
- The GLS projection projection has been renamed as SFL, but the AST__GLS type has
been retained as an alias for AST__SFL.
H.6 Changes Introduced in V1.6
The following describes the most significant changes which have occurred in the AST library between
versions V1.5 and V1.6:
-
(1)
- The C interface to several methods (??, ?? and ??) have been changed to make them easier
to call from C++. Parameters which previously had type “double (*)[]” have been changed
to the simpler “double *”. Using the old types may result in non-fatal compiler warnings,
but should not change the behaviour of the methods.
-
(2)
- A bug has been fixed in the ?? class which could cause groups of tick marks to be skipped
when using very small gaps.
-
(3)
- A bug has been fixed in the Plot class which could cause axes to be labeled outside the
visible window, resulting in no axes being visible.
-
(4)
- The FITS-WCS encoding used by the ?? class now includes the WCSNAME keyword.
When creating a ?? from FITS headers, the values of the WCSNAME keywords are
now used as the ?? names for the corresponding Frames in the returned FrameSet.
When writing a FrameSet to a FITS header the Domain names of each ?? are stored in
WCSNAME keywords in the header.
-
(5)
- The FITS-WCS encoding used by the FitsChan class now attempts to retain the
identification letter associated with multiple axis descriptions. When reading a FrameSet
from a FITS header, the identification letter is stored in the ?? attribute for each Frame.
When writing a FrameSet to a FITS header, the identification letter is read from the
Ident attribute of each Frame. The letter to associate with each Frame can be changed by
assigning a new value to the Frame’s Ident attribute.
-
(6)
- The FITS-WCS, FITS-PC, FITS-IRAF and FITS-AIPS encodings used by the FitsChan class
now create a ?? with the ?? attribute set to “Unknown” if the CTYPE keywords in the
supplied header refers to an unknown celestial coordinate system. Previously, a Frame
was used instead of a SkyFrame.
-
(7)
- The FITS-WCS, FITS-PC, FITS-IRAF and FITS-AIPS encodings used by the FitsChan class
no longer report an error if the FITS header contains no CTYPE keywords. It is assumed
that a missing CTYPE keyword implies that the world coordinate system is linear and
identically equal to “intermediate world coordinates”.
-
(8)
- The new value “noctype” is now recognized by the ?? attribute of the FitsChan class.
This value causes warnings to be issued if CTYPE keywords are missing from foreign
encodings.
-
(9)
- A new attribute called ?? has been added to the FitsChan class. This is a read-only, space
separated list of all the known condition names which can be specified in the Warnings
attribute.
-
(10)
- The FitsChan class now attempts to assigns a ?? to each Frame in a FrameSet read using a
foreign encoding. The Title is based on the Domain name of the Frame. If the Frame has
no Domain name, the default Title supplied by the Frame class is retained.
-
(11)
- The FitsChan class uses the comments associated with CTYPE keywords as axis labels
when reading a foreign encoding. This behaviour has been modified so that the default
labels provided by the Frame class are retained (instead of using the CTYPE comments)
if any of the CTYPE comments are identical.
-
(12)
- A new “interpolation” scheme identified by the symbolic constant AST__BLOCKAVE has
been added to the AST_RESAMPLEX
set of functions. The new scheme calculates each output pixel value by finding the mean
of the input pixels in a box centred on the output pixel.
-
(13)
- The SkyFrame class can now be used to represent an arbitrary spherical coordinate
system by setting its System attribute to “Unknown”.
-
(14)
- The indices of the latitude and longitude axes of a SkyFrame can now be found using new
read-only attributes ?? and ??. The effects of any axis permutation is taken into account.
-
(15)
- A new attribute called Ident has been added to the ?? class. This serves the same purpose
as the existing ?? attribute, but (unlike ID) its value is transferred to the new Object when
a copy is made.
-
(16)
- A bug has been fixed which could prevent complex CmpFrames behaving correctly (for
instance, resulting in the failure of attempts to find a ?? between a ?? and itself).
H.7 Changes Introduced in V1.7
The following describes the most significant changes which have occurred in the AST library between
versions V1.6 and V1.7:
-
(1)
- The ?? class has a new method called ?? which returns the angle subtended by two points
at a third point within a 2 or 3 dimensional Frame.
-
(2)
- The Frame class has a new method called ?? which calculates a position which is offset
away from a given starting point by a specified distance along a geodesic curve which
passes through the starting point at a given position angle. It can only be used with
2-dimensional Frames.
-
(3)
- The Frame class has a new method called ?? which returns the increment between two
supplied axis values. For axes belonging to SkyFrames, the returned value is normalized
into the range .
-
(4)
- The Frame class has a new method called ?? which returns an axis value a given increment
away from a specified axis value. For axes belonging to SkyFrames, the returned value is
normalized into the range
(for latitude axes) or zero to
(for longitude axes).
-
(5)
- The ?? class has a new method called ?? which allows generalised user-defined curves
to be drawn. The curve is defined by a user-supplied ?? which maps distance along the
curve into the corresponding position in the current Frame of the Plot. The new method
then maps these current Frame position into graphics coordinates, taking care of any
non-linearities or discontinuities in the mapping.
-
(6)
- The Plot class has a new method called ?? which allows the underlying primitive
graphics functions to be selected at run-time. Previously, the functions used by the
Plot class to produce graphics could only be selected at link-time, using the options
of the ?? command. The new Plot method allows an application to over-ride the
functions established at link-time, by specifying alternative primitive graphics routines.
In addition, the two new Plot methods ?? and ?? allow the current graphics routines to be
saved and restore on a first-in-last-out stack, allowing temporary changes to be made to
the set of registered graphics routines.
-
(7)
- The DrawAxes attribute of the Plot class can now be specified independantly for each
axis, by appending the axis index to the end of the attribute name.
-
(8)
- A bug has been fixed in the Plot class which could result in axis labels being drawn on
inappropriate edges of the plotting box when using “interior” labelling.
-
(9)
- A bug has been fixed in the ?? class which could cause IntraMaps to be corrupted after
transforming any points.
-
(10)
- Bugs have been fixed in the ?? class which could cause inappropriate ordering of headers
within a FitsChan when writing or reading objects using NATIVE encodings.
-
(11)
- A bug has been fixed in the FitsChan class which could cause the celestial longitude of a
pixel to be estimated incorrectly by 180 degrees if the reference point is at either the north
or the south pole.
H.8 Changes Introduced in V1.8-2
The following describes the most significant changes which have occurred in the AST library between
versions V1.7 and V1.8-2:
-
(1)
- The ?? class has a new attribute called ?? which allows longitude values to be displayed in
the range
to ,
instead of the usual range zero to .
-
(2)
- Some new functions (??, ??, ??, ??, ??, ??) have been added to the ?? class to allow
navigation of the coordinate space to be performed without needing to know the
underlying geometry of the co-ordinate system (for instance, whether it is Cartesian or
spherical).
Note, version 1.8-1 contained many of these facilities, but some have been changed in
version 1.8-2. Particularly, positions angles are now referred to the second Frame axis for
all classes of Frames (including SkyFrames), and the astBear function has been replaced
by astAxAngle.
H.9 Changes Introduced in V1.8-3
The following describes the most significant changes which occurred in the AST library between
versions V1.8-2 and V1.8-3:
-
(1)
- A new method called ?? has been added to the ?? class which enables pointers to be
obtained to the component parts of ?? and ?? objects.
-
(2)
- Functions within proj.c and wcstrig.c have been renamed to avoid name clashes with
functions in more recent versions of Mark Calabretta’s wcslib library.
H.10 Changes Introduced in V1.8-4
The following describes the most significant changes which occurred in the AST library between
versions V1.8-3 and V1.8-4:
-
(1)
- The ?? class has a new attribute called ?? which can be used to select the default reference
frame and equinox to be used if a FitsChan with foreign encoding contains no indication
of the reference frame or equinox.
-
(2)
- A bug has been fixed in the FitsChan class which could prevent ?? from creating a set of
FITS headers from an otherwise valid ??, when when using FITS-AIPS encoding.
-
(3)
- A bug has been fixed in the FitsChan class which could cause ?? to mis-interpret the FITS
CROTA keyword when using FITS-AIPS encoding.
H.11 Changes Introduced in V1.8-5
The following describes the most significant changes which occurred in the AST library between
versions V1.8-4 and V1.8-5:
-
(1)
- The ?? class defines new graphical elements Axis1, Axis2, Grid1, Grid2, NumLabs1,
NumLabs2, TextLab1, TextLab2, Ticks1 and Ticks2. These allow graphical attributes
(colour, width, etc) to be set for each axis individually. Previously, graphical attributes
could only be set for both axes together, using graphical elements Axes, ??, NumLabs,
TextLabs and Ticks.
H.12 Changes Introduced in V1.8-7
The following describes the most significant changes which occurred in the AST library between
versions V1.8-5 and V1.8-7:
-
(1)
- A new attribute called ?? has been added to the ?? class which controls the way CAR
projections are handled when reading a ?? from a non-native FITS header. Some FITS
writers use a CAR projection to represent a simple linear transformation between pixel
coordinates and celestial sky coordinates. This is not consistent with the definition of the
CAR projection in the draft FITS-WCS standard, which requires the resultant ?? to include
a 3D rotation from native spherical coordinates to celestial spherical coordinates, thus
making the Mapping non-linear. Setting CarLin to 1 forces ?? to ignore the FITS-WCS
standard and treat any CAR projections as simple linear Mappings from pixel coordinates
to celestial coordinates.
-
(2)
- A bug has been fixed which could result in axis Format attributes set by the user being
ignored under certain circumstances.
-
(3)
- A bug in the way tick marks positions are selected in the ?? class has been fixed. This
bug could result in extra ticks marks being displayed at inappropriate positions. This
bug manifested itself, for instance, if the Mapping represented by the Plot was a simple
Cartesian to Polar Mapping. In this example, the bug caused tick marks to be drawn at
negative radius values.
-
(4)
- A bug has been fixed which could prevent attribute settings from being read correctly by
??, etc., on certain platforms (MacOS, for instance).
H.13 Changes Introduced in V1.8-8
The following describes the most significant changes which occurred in the AST library between
versions V1.8-7 and V1.8-8:
-
(1)
- A bug has been fixed in the ?? class which could cause problems when creating a ?? from
a FITS header containing WCS information stored in the form of Digitised Digitised Sky
Survey (DSS) keywords. These problems only occurred for DSS fields in the southern
hemisphere, and resulted in pixel positions being mapped to sky positions close to the
corresponding northern hemispshere field.
-
(2)
- A new method called ?? has been added to the ?? class. This method returns the bounding
box of the previous graphical output produced by a Plot method.
-
(3)
- A new attribute called ?? has been added to the Plot class which suppresses the graphical
output normally produced by Plot methods. All the calculations needed to produce the
normal output are still performed however, and so the bounding box returned by the new
astBoundingBox method is still usable.
-
(4)
- Bugs have been fixed related to the appearance of graphical output produced by the Plot
class. These bugs were to do with the way in which graphical elements relating to a
specific axis (e.g.
Colour(axis1), etc.) interacted with the corresponding generic element
(e.g. Colour(axes), etc.).
H.14 Changes Introduced in V1.8-13
The following describes the most significant changes which occurred in the AST library between
versions V1.8-8 and V1.8-13:
-
(1)
- The ?? class has been modified so that LONPOLE keywords are only produced by ??
when necessary. For zenithal projections such as TAN, the LONPOLE keyword can
always take its default value and so is not included in the FITS header produced by
astWrite. Previously, the unnecessary production of a LONPOLE keyword could prevent
FrameSets being written out using encodings which do not support the LONPOLE
keyword (such as FITS-IRAF).
-
(2)
- The FitsChan class has been modified to retain leading and trailing spaces within
COMMENT cards.
-
(3)
- The FitsChan class has been modified to only use CTYPE comments as axis labels if
all non-celestial axes have unique non-blank comments (otherwise the CTYPE keyword
values are used as labels).
-
(4)
- The FitsChan class has been modified so that it does not append a trailing “Z” character
to the end of DATE-OBS keyword values.
-
(5)
- The FitsChan class has been modified to use latest list of FITS-WCS projections, as
described in the FITS-WCS paper II, “Representations of celestial coordinates in FITS”
(Calabretta & Greisen, draft dated 23 April 2002). Support has been retained for the
polynomial correction terms which previous drafts have allowed to be associated with
TAN projections.
-
(6)
- The ?? class has additional projection types of AST__TPN (which implements a distorted
TAN projection) and AST__SZP. The AST__TAN projection type now represents a simple
TAN projection and has no associated projection parameters. In addition, the usage of
projection parameters has been brought into line with the the FITS-WCS paper II.
-
(7)
- The WcsMap class has been modified so that a “get” operation on a projection parameter
attribute will return the default value defined in the FITS-WCS paper II if no value
has been set for the attribute. Previously, a value of AST__BAD was returned in such a
situation.
-
(8)
- The ?? class has new attributes ?? and ?? which allow a “plottable range” to be specified
for each Frame axis. The grid produced by the ?? method will not extend beyond these
limits.
H.15 Changes Introduced in V2.0
Note, ?? descriptions created using AST V2.0 will not be readable by applications linked with earlier
versions of AST. This applies to Frame descriptions created using:
- the ?? class
- the ?? class if the NATIVE ?? is used
- the ?? function
Applications must be re-linked with AST V2.0 in order to be able to read Frame descriptions created
by AST v2.0.
The following describes the most significant changes which have occurred in the AST library between
versions V1.8-13 and V2.0 (the current version):
-
(1)
- The default value for the ?? attribute provided by the ?? class has been changed from
“CMP” to a string formed by concatenating the Domain attributes of the two component
Frames, separated by a minus sign. If both component Domains are blank, then the old
default of “CMP” is retained for the CmpFrame Domain.
-
(2)
- The implementation of the ?? function within the FitsChan class has been modified. It
will now attempt to produce a set of FITS header cards to describe a ?? even if the number
of axes in the ?? Frames is greater than the number in the ?? Frame (that is, if there are
more WCS axes than pixel axes). This has always been possible with NATIVE encoding,
but has not previously been possible for foreign encodings. The WCSAXES keyword is
used to store the number of WCS axes in the FITS header.
-
(3)
- Another change to the astWrite function within the FitsChan class is that the ordering of
“foreign” axes (i.e. CTYPE keywords) is now chosen to make the CD (or PC) matrix as
diagonal as possible - any element of axis transposition is removed by this re-ordering
as recommended in FITS-WCS paper I. Previously the ordering was determined by the
order of the axes in the Current Frame of the supplied FrameSet. This change does not
affect NATIVE encoding.
-
(4)
- Support for spectral coordinate systems has been introduced throught the addition
of two new classes, ?? and ??. The SpecFrame is a 1-dimensional Frame which can
be used to describe positions within an electromagnetic spectrum in various systems
(wavelength, frequency, various forms of velocity, etc.) and referred to various standards
of rest (topocentric, geocentric, heliocentric LSRK, etc.). The SpecMap is a ?? which can
transform spectral axis values between these various systems and standards of rest. Note,
FitsChans which have a foreign encoding (i.e. any encoding other than NATIVE) are not
yet able to read or write these new classes.
-
(5)
- Facilities have been added to the Frame class which allow differences in axis units to be
taken into account when finding a Mapping between two Frames. In previous versions
of AST, the Unit attribute was a purely descriptive item intended only for human readers
- changing the value of Unit made no difference to the behaviour of the Frame. As of
version 2.0, the Unit attribute can influence the nature of the Mappings between Frames.
For instance, if the astFindrame or ?? method is used to find the Mapping between
an ?? with Unit set to “m” and another Axis with Unit set to “km”, then the method
will return a ?? which introduces a scaling factor of 0.001 between the two axes. These
facilities assume that units are specified following the rules included in FITS-WCS paper
I (Representation of World Coordinates in FITS, Greisen & Calabretta).
In order to minimise the risk of breaking existing software, the default behaviour for
simple Frames is to ignore the Unit attribute (i.e. to retain the previous behaviour).
However, the new Frame method ?? may be used to “activate” (or deactivate) the new
facilities within a specific Frame. Note, the new SpecFrame class is different to the simple
Frame class in that the new facilities for handling units are always active within a
SpecFrame.
-
(6)
- The ?? and ?? attributes fo the ?? class have been moved to the parent Frame class.
This enables all sub-classes of Frame (such as the new SpecFrame class) to share these
attributes, and to provide suitable options for each class.
-
(7)
- The Frame class has a new attribute called ??, which allows control over the alignment
process performed by the methods ?? and astConvert.
-
(8)
- The CmpFrame class has been modified so that attributes of a component Frame can be
accessed without needing to extract the Frame first. To do this, append an axis index
to the end of the attribute name. For instance, if a CmpFrame contains a SpecFrame
and a SkyFrame (in that order), then the ?? attribute of the SpecFrame can be referred
to as the “StdOfRest(1)” attribute of the CmpFrame. Likewise, the ?? attribute of the
SkyFrame can be accessed as the “Equinox(2)” (or equivalently “Equinox(3)”) attribute
of the CmpFrame. The “System(1)” attribute of the CmpFrame will refer to the System
attribute of the SpecFrame, whereas the “System(2)” and “System(3)” attributes of the
CmpFrame will refer to the System attribute of the SkyFrame (the “System” attribute
without an axis specifier will refer to the System attribute of the CmpFrame as a whole,
since System is an attribute of all Frames, and a CmpFrame is a Frame and so has its own
System value which is independant of the System attributes of its component Frames).
-
(9)
- The algorithms used by the ?? class for determining when to omit overlapping axis labels,
and the abbreviation of redundant leading fields within sexagesimal axis labels, have
been improved to avoid some anomolous behaviour in previous versions.
-
(10)
- The curve drawing algorithm used by the Plot class has been modified to reduce the
chance of it “missing” small curve sections, such as may be produced if a grid line cuts
across the plot very close to a corner. Previously, these missed sections could sometimes
result in axis labels being omitted.
-
(11)
- A new function (??) has been added to return the version of the AST library in use.
-
(12)
- Bugs have been fixed in the Plot class which caused serious problems when plotting high
precision data. These problems could range from the omission of some tick marks to
complete failure to produce a plot.
Programs which are statically linked will need to be re-linked in order to take advantage of these new
facilities.
H.16 Changes Introduced in V3.0
The following describes the most significant changes which occurred in the AST library between
versions V2.0 and V3.0:
-
(1)
- Many changes have been made in the ?? class in order to bring the FITS-WCS
encoding into line with the current versions of the FITS-WCS papers (see
http://www.atnf.csiro.au/people/mcalabre/WCS/):
- The rotation and scaling of the pixel axes may now be specified using either CDi_j
keywords, or PCi_j and CDELTj keywords. A new attribute called ?? has been added
to the FitsChan class to indicate which set of keywords should be used when writing
a ?? to a FITS-WCS header.
- The FITS-WCS encoding now supports most of the conventions described in
FITS-WCS paper III for the description of spectral coordinates. The exceptions are
that the SSYSOBS keyword is not supported, and WCS stored in tabular form (as
indicated by the “-TAB” algorithm code) is not supported.
- User-specified fiducial points for WCS projections are now supported by FitsChans
which use FITS-WCS encoding. This use keywords PVi_0, PVi_1 and PVi_2 for the
longitude axis.
- When reading a FITS-WCS header, a FitsChan will now use keywords PVi_3
and PVi_4 for the longitude axis (if present) in preference to any LONPOLE and
LATPOLE keywords which may be present. When writing a FITS-WCS header, both
forms are written out.
- The number of WCS axes is stored in the WCSAXES keyword if its value would be
different to that of the NAXIS keyword.
- Helio-ecliptic coordinates are now supported by FitsChans which use FITS-WCS
encoding. This uses CTYPE codes “HLON” and “HLAT”. The resulting ?? will have
a ?? value of “HELIOECLIPTIC”, and all the usual facilities, such as conversion to
other celestial systems, are available.
- The FITS-WCS encoding now supports most of the conventions described in
FITS-WCS paper III for the description of spectral coordinates. The exceptions are
that the SSYSOBS keyword is not supported, and WCS stored in tabular form (as
indicated by the “-TAB” algorithm code) is not supported.
- When reading a FITS-WCS header, a FitsChan will now ignore any distortion
codes which are present in CTYPE keywords. Here, a “distortion code” is the
final group of four characters in a CTYPE value of the form “xxxx-yyy-zzz”,
as described in FITS-WCS paper IV. The exception to this is that the
“-SIP” distortion code (as used by the Spitzer Space Telescope project - see
http://ssc.spitzer.caltech.edu/postbcd/doc/shupeADASS.pdf) is interpreted
correctly and results in a ?? being used to represent the distortion in the resulting
FrameSet. Note, “-SIP” distortion codes can only be read, not written. A FrameSet
which uses a PolyMap will not in general be able to be written out to a FitsChan
using any foreign encoding (although NATIVE encoding can of course be used).
- The ?? attribute of the FitsChan class now accepts values “BadVal” (which gives
warnings about conversion errors when reading FITS keyword values), “Distortion”
(which gives warnings about unsupported distortion codes within CTYPE values),
and “BadMat” (which gives a warning if the rotation/scaling matrix cannot be
inverted).
- When writing a FrameSet to a FitsChan which uses a non-Native encoding, the
comment associated with any card already in the FitsChan will be retained if the
keyword value being written is the same as the keyword value already in the
FitsChan.
- A FrameSet which uses the non-FITS projection type AST__TPN (a TAN projection
with polynomial distortion terms) can now be written to a FitsChan if the ?? attribute
is set to FITS-WCS. The standard “-TAN” code is used within the CTYPE values, and
the distortion coefficients are encoded in keywords of the form “ QVi_ma”, which
are directly analogous to the standard “PVi_ma” projection parameter keywords.
Thus a FITS reader which does not recognise the QV keywords will still be able to
read the header, but the distortion will be ignored.
- The default value for ?? attribute now depends on the value of the Encoding
attribute.
- A new appendix has been added to SUN/210 and SUN/211 giving details of the
implementation provided by the FitsChan class of the conventions contained in the
first four FITS-WCS papers.
-
(2)
- The SkyFrame class now supports two new coordinate systems “ICRS” and “HELIOECLIPTIC”.
The default for the System attribute for SkyFrames has been changed from “FK5” to
“ICRS”.
-
(3)
- The ?? function has been added which allows an estimate to be made of the rate of change of a ??
output with respect to one of the Mapping inputs.
-
(4)
- All attribute names for Frames of any class may now include an optional axis specifier. This
includes those attributes which describe a property of the whole ??. For instance, the ?? attribute
may now be specified as “Domain(1)” in addition to the simpler “Domain”. In cases such as this,
where the attribute describes a property of the whole Frame, axis specifiers will usually be
ignored. The exception is that a ?? will use the presence of an axis specifier to indicate that the
attribute name relates to the primary Frame containing the specified axis, rather than to the
CmpFrame as a whole.
-
(5)
- A new subclass of Mapping, the PolyMap, has been added which performs a general
N-dimensional polynomial mapping.
-
(6)
- A new subclass of Mapping, the ??, has been added which models the spectral dispersion
produced by a grating, prism or grism.
-
(7)
- A new subclass of Mapping, the ??, has been added which adds constant values onto all
coordinates (this is equivalent to a ?? with unit scaling on all axes).
-
(8)
- Minor bugs have been fixed within the ?? class to do with the choice and placement of numerical
axis labels.
-
(9)
- The ?? class has a new attribute called ?? which gives the longitude value to be returned when a
Cartesian position corresponding to either the north or south pole is transformed into spherical
coordinates.
-
(10)
- The ?? class now assigns a longitude of zero to output celestial coordinates which have a latitude
of plus or minus 90 degrees.
-
(11)
- The ?? and ?? attributes of the WcsMap class have been changed so that they now return the
fixed native coordinates of the projection reference point, rather than the native coordinates of
the user-defined fiducial point.
-
(12)
- Notation has been changed in both the WcsMap and FitsChan classes to reflect the convention
used in the FITS-WCS papers that index “i” refers to a world coordinate axis, and index “j”
refers to a pixel axis.
-
(13)
- Changes have been made to several Mapping classes in order to allow the ?? function to make
simplifications in a ?? which previously were not possible.
-
(14)
- The ?? class has been extended by the addition of conversions between FK5 and ICRS
coordinates, and between FK5 and helio-ecliptic coordinates.
-
(15)
- The ?? class has been changed to use the equation for the refractive index of air as given in the
current version of FITS-WCS paper III. Also, the forward and inverse transformations between
frequency and air-wavelength have been made more compatible by using an iterative procedure
to calculate the inverse.
H.17 Changes Introduced in V3.1
The following describes the most significant changes which have occurred in the AST library between
versions V3.0 and V3.1 (the current version):
-
(1)
- Addition of a new class called ?? - a ?? which reads and writes AST objects in the form of
XML.
-
(2)
- A bug has been fixed in the ?? class which could cause incorrect graphical attributes to
be used for various parts of the plot if either axis has no tick marks (i.e. if both major and
minor tick marks have zero length).
Programs which are statically linked will need to be re-linked in order to take advantage of these new
facilities.
H.18 Changes Introduced in V3.2
The following describes the most significant changes which have occurred in the AST library between
versions V3.1 and V3.2:
-
(1)
- A new function ?? has been added to the ?? class. This allows multiple concatenated
header cards to be stored in a FitsChan in a single call, providing an alternative to the
existing astPutCards function.
-
(2)
- Some signficant changes have been made to the simplification of Mappings which should
resultin a greater degree of simplication taking place.Some bugs have also been fixed
which could result in an infinite loop being entered when attempting to simplify certain
Mappings.
-
(3)
- The FitsChan class now translates the spectral algorithm codes “-WAV”, “-FRQ” and
“-VEL” (specified in early drafts of paper III) to the corresponding “-X2P” form when
reading a spectral axis description from a set of FITS header cards.
-
(4)
- A bug has been fixed in the FitsChan class which could cause keywords associated with
alternate axis descriptions to be mis-interpreted.
-
(5)
- The ?? class now provides facilities for modifying the appearance of sub-strings within
text strings such as axis labels, titles, etc, by producing super-scripts, sub-scripts, changing
the font colour, size, etc. See attribute ??.
-
(6)
- The default value of the ?? attribute of the Plot class has been changed from 0.001 to
0.01. This should not usually cause any significant visible change to the plot, but should
make the plotting faster. You may need to set a lower value for Tol if you are producing a
particularly large plot.
-
(7)
- The algorithm for finding the default value for the Gap attribute has been changed. This
attribute specifies the gap between major axis values in an annotated grid drawn by the
Plot class. The change in algorithm may cause the default value to be different to previous
versions in cirtain circumstances.
-
(8)
- Some bugs have been fixed in the Plot class which could cause the system to hang for
a long time while drawing certain all-sky grids (notable some of the FITS Quad-cube
projections).
-
(9)
- The ?? class has extended the Format attribute by the addition of the “g” option.
this option is similar to the older “l” option in that it results in characters (“h”,
“m”, “s”, etc) being used as delimiters between the sexagesimal fields of the celestial
position. The difference is that the “g” option includes graphics escape sequences in the
returned formatted string which result in the field delimiter characters being drawn as
super-scripts when plotted as numerical axis values by a Plot.
-
(10)
- The Plot class has been extended to include facilities for producing logarithmic axes. See
attributes LogPlot, LogTicks, LogGap and LogLabel.
-
(11)
- New functions astGCap and astGScales have been added to the interface defined by
file grf.h. The ?? command has been modified so that the -mygrf switch loads dummy
versions of the new grf functions. This means that applications should continue to build
without any change. However, the facilities for interpreting escape sequences within
strings drawn by the Plot class will not be available unless the new grf functions
are implemented. If you choose to implement them, you should modify your linking
procedure to use the -grf switch in place of the older -mygrf switch. See the description
of the ast_link command for details of the new switches. Also note that the astGQch
function, whilst included in verb+grf.h+ in pervious versions of AST, was not actually
called. As of this version of AST, calls are made to the astGQch function, and so any
bugs in the implementation of astGQch may cause spurious behaviour when plotting text
strings.
-
(12)
- A new ’static’ method called ?? has been added which is used to control and enquire
whether astGetC and ?? will strip any graphical escape sequences which may be present
out of the returned value.
-
(13)
- New attribute ?? has been added to the ?? class. It allows XML written by the XmlChan
class to include an explicit namespace prefix on each element.
-
(14)
- New attribute ?? has been added to the XmlChan class. It specifies the format in which
AST objects should be written.
-
(15)
- A new class of ??, the ??, has been introduced. A TranMap takes its forward
transformation from an existing Mapping, and its inverse transformation from another
existing Mapping.
-
(16)
- A bug has been fixed in ?? which caused error reports to include erroneous axis numbers
when referring to missing parameter values.
H.19 Changes Introduced in V3.3
The following describes the most significant changes which have occurred in the AST library between
versions V3.2 and V3.3:
-
(1)
- Options have been added to the ?? class which allows the origin of celestial coordinates
to be moved to any specified point. See the new attributes SkyRef, ??, SkyRefP and ??.
-
(2)
- An option has been added to the ?? class which allows extra Frames representing
cartesian projection plane coordinates (“intermediate world coordinates” in the parlance
of FITS-WCS) to be created when reading WCS information from a foreign FITS header.
This option is controlled by a new attribute called ??.
-
(3)
- The FitsChan class which been modified to interpret FITS-WCS CAR projection headers
correctly if the longitude reference pixel (CRPIX) is very large.
-
(4)
- The FITS-AIPS++ encoding in the FitsChan class now recognised spectral axes if they
conform to the AIPS convention in which the spectral axis is descirbed by a CTYPE
keyword od the form "AAAA-BBB" where “AAAA” is one of FREQ, VELO or FELO, and
“BBB” is one of LSR, LSD, HEL or OBS. Such spectral axes can be both read and written.
-
(5)
- The FitsChan class now has a FITS-AIPS++ encoding which represents WCS information
using FITS header cards recognised by the AIPS++ project. Support for spectral axes is
identical to the FITS-AIPS encoding.
-
(6)
- The organisation of the AST distribution and the commands for building it have been
changed. Whereas AST used to be built and installed with ./mk build; ./mk install,
it now builds using the more standard idiom ./configure; make; make install. The
installation location is controlled by the --prefix argument to ./configure (as is usual
for other packages which use this scheme). Note that the INSTALL environment variable
now has a different meaning to that which it had before, and it should generally be unset.
Also, there is no need to set the SYSTEM variable.
-
(7)
- Shared libraries are now installed in the same directory as the static libraries. In addition,
links to sharable libraries are installed
with names which include version information, and “libtool libraries” are also installed
(see http://www.gnu.org/software/libtool/manual.html).
-
(8)
- The ast_dev script has been removed. Instead, the location of the AST include files should
be specified using the -I option when compiling.
H.20 Changes Introduced in V3.4
The following describes the most significant changes which have occurred in the AST library between
versions V3.3 and V3.4:
-
(1)
- The ?? class has a new method (??) which calculates the co-efficients of a linear
approximation to a Mapping.
-
(2)
- The Format attribute for simple Frames and SkyFrames has been extended. It has always
been possible, in both classes, to specify a precision by including a dot in the Format value
followed by an integer (e.g. “dms.1” for a ??, or “%.10g” for a simple ??). The precision
can now also be specified using an asterisk in place of the integer (e.g. “dms.*” or “%.*g”).
This causes the precision to be derived on the basis of the Digits attribute value.
-
(3)
- The ?? class has been changed so that the default value used for the Digits attribute
is chosen to be the smallest value which results in no pair of adjacent labels being
identical. For instance, if an annotated grid is being drawn describing a SkyFrame, and
the Format(1) value is set to “hms.*g” (the “g” causes field delimiters to be drawn as
superscripts), and the Digits(1) value is unset, then the seconds field will have a number
of decimal places which results in no pair of labels being identical.
-
(4)
- Addition of a new class classed ??. This is a sub-class of ?? which can be used to describe
spectral axes associated with dual sideband spectral data.
-
(5)
- The ?? class will now read headers which use the old “-GLS” projection code, converting
them to the corresponding modern “-SFL” code, provided that the celestial axes are not
rotated.
-
(6)
- The FitsChan class has a new ??, “FITS-CLASS”, which allows the reading and
writing of FITS headers using the conventions of the CLASS package - see
http://www.iram.fr/IRAMFR/GILDAS/doc/html/class-html/class.html).
H.21 Changes Introduced in V3.5
The following describes the most significant changes which have occurred in the AST library between
versions V3.4 and V3.5:
-
(1)
- AST now provides facilities for representing regions of various shapes within a
coordinate system. The ?? class provides general facilities which are independent of the
specific shape of region being used. Various sub-classes of Region are also now available
which provide means of creating Regions of specific shape. Facilities provided by the
Region class include testing points to see if they are inside the Region, testing two Regions
for overlap, transforming Regions from one coordinate system to another etc.
-
(2)
- A new class of 1-dimensional ?? called ?? has been added which can be used to describe
various systems for describing ovserved value at a single fixed spectral position.
-
(3)
- A new class of 2-dimensional Frame called ?? has been added which can be used to
describe a 2-d frame spanned by a spectral position axis and and an observed value axis.
-
(4)
- A new class of ?? called ?? has been added. A RateMap encapsulates a previously created
Mapping. The inputs of the RateMap correspond to the inputs of the encapsulated
Mapping. All RateMaps have just a single output which correspond to the rate of change
of a specified output of the encapsulated Mapping with respect to a specified input.
-
(5)
- The ?? class now supports a value of “J2000” for ??. This system is an equatorial system
based on the mean dynamical equator and equinox at J2000, and differs slightly from an
FK5(J2000) system.
-
(6)
- A new class called ?? has been added. A KeyMap can be used to store a collection of
vector or scalar values or Objects, indexed by a character string rather than an integer.
-
(7)
- The parameter list for the ?? method of the Mapping class has been modified. It no longer
returns a second derivative estimate. Existing code which uses this method will need to
be changed.
-
(8)
- Methods (astSetFits<X>) have been added to the ?? class to allow values for named
keywords to be changed or added.
H.22 Changes Introduced in V3.6
The following describes the most significant changes which occurred in the AST library between
versions V3.5 and V3.6:
-
(1)
- If the Format attribute associated with an axis of a ?? starts with a percent character (“%”),
then axis values are now formatted and unformatted as a decimal radians value, using
the Format syntax of a simple ??.
-
(2)
- The ?? class has a new attribute called ?? which controls the clipping performed by AST
at the plot boundary.
-
(3)
- The keys used to label components of the ?? structure when a PolyMap is written out
through a ?? have been changed. The new keys are shorter than the old keys and so can
written succesfully to a ??. The new PolyMap class always writes new styles keys but can
read either old or new style keys. Consequently, PolyMap dumps written by this version
of AST cannot be read by older versions of AST.
-
(4)
- A mimimal cut down subset of the C version of SLALIB is now included with the AST
distribution and built as part of building AST. This means that it is no longer necessary
to have SLALIB installed separately at your site. The SLALIB code included with AST is
distrubuted under the GPL. The default behaviour of the ?? script is now to link with this
internal slalib subset. However, the “-csla” option can still be used to force linking with
an external full C SLALIB library. A new option “-fsla” has been introduced which forces
linking with the external full Fortran SLALIB library.
H.23 Changes Introduced in V3.7
The following describes the most significant changes which occurred in the AST library between
versions V3.6 and V3.7:
-
(1)
- Support for time coordinate systems has been introduced throught the addition of two
new classes, ?? and ??. The TimeFrame is a 1-dimensional ?? which can be used to describe
moments in time (either absolute or relative) in various systems (MJD, Julian ??, etc.) and
referred to various time scales (TAI, UTC, UT1, GMST, etc). The TimeMap is a ?? which can
transform time values between these various systems and time scales. Note, FitsChans
which have a foreign encoding (i.e. any encoding other than NATIVE) are not able to read
or write these new classes.
H.24 Changes Introduced in V4.0
The following describes the most significant changes which occurred in the AST library between
versions V3.7 and V4.0:
-
(1)
- Experimental support for reading IVOA Space-Time-Coordinates (STC-X) descriptions
using the ?? class has been added. Support is included for a subset of V1.20 of the draft
STC specification.
-
(2)
- A new set of methods (AST_REBIN<X>/astRebin<X>) has been added to the ?? class.
These are flux-conserving alternatives to the existing
AST_RESAMPLE<X>/astResample<X> methods.
H.25 Changes Introduced in V4.1
The following describes the most significant changes which occurred in the AST library between
versions V4.0 and V4.1:
-
(1)
- A new control flag has been added to the AST_RESAMPLE<X>/astResample<X>
functions which produces approximate flux conservation.
-
(2)
- New constants AST__SOMB and AST__SOMBCOS have been added to ast.h. These specify
kernels for astResample and astRebin based on the “Sombrero” function (
where
is the first order Bessel function of the first kind).
-
(3)
- The ?? class now supports a ?? value of AZEL corresponding to horizon
(azimuth/elevation) coordinates.
-
(4)
- The ?? class allows the non-standard strings “AZ–” and “EL–” to be used as axis types in
FITS-WCS CTYPE keyword values.
-
(5)
- The ?? class now has attributes ?? and ?? to specify the geodetic longitude and latitude of
the observer.
-
(6)
- The ClockLon and ClockLat attributes have been removed from the ?? class. Likewise,
the GeoLon and GeoLat attributes have been removed from the ?? class. Both classes now
use the ObsLon and ObsLat attributes of the parent Frame class instead. However, the old
attribute names can be used as synonyms for ObsLat and ObsLon. Also, dumps created
using the old scheme can be read succesfully by AST V4.1 and converted to the new form.
-
(7)
- A new function ?? has been added to the ?? class. This splits a Mapping into two
component Mappings which, when combined in parallel, are equivalent to the original
Mapping.
-
(8)
- The default value for the ?? attribute has been changed from “Origin” to “Ignored”. This
means that if you want to use a SkyFrame to represent offsets from some origin position,
you must now set the SkyRefIs attribute explicitly to either “Pole” or “Origin”, in addition
to assigning the required origin position to the SkyRef attribute.
H.26 Changes Introduced in V4.2
The following describes the most significant changes which occurred in the AST library between
versions V4.1 and V4.2:
-
(1)
- The ?? attribute of the ?? class can now take the option “LO” in addition to “USB” and
“LSB”. The new option causes the DSBSpecFrame to represent the offset from the local
oscillator frequency, rather than either of the two sidebands.
-
(2)
- The ?? class has been changed so that it writes out a VELOSYS keyword when creating
a FITS-WCS encoding (VELOSYS indicates the topocentric apparent velocity of the
standard of rest). FitsChan also strips out VELOSYS keywords when reading a ?? from a
FITS-WCS encoding.
-
(3)
- The FitsChan class has a new method called ?? that indicates that the current card in the
FitsChan should not be stripped out of the FitsChan when an AST ?? is read from the
FitsChan. Unless this method is used, all cards that were involved in the creation of the
AST Object will be stripped from the FitsChan afte a read operation.
-
(4)
- A problem with unaligned memory access that could cause bus errors on Solaris has been
fixed.
-
(5)
- A new read-only attribute called ?? has been added to the base Object ??. This gives
the number of bytes of memory occupied by the Object. Note, this is the size of the
internal in-memory representation of the Object, not the size of the textual representation
produced by writing the Object out through a ??.
-
(6)
- A new function ?? has been added which can be used to get and set global AST tuning
parameters. At the moment there are only two such parameter, both of which are
concerned with memory management within AST.
-
(7)
- A new method called ?? has been added to the ?? class. This method creates a regular
grid of points covering a rectangular region within the input space of a Mapping,
and then transforms this set of points into the output space of the Mapping, using a
piecewise-continuous linear approximation to the Mapping if appropriate in order to
achive higher speed.
-
(8)
- A new subclass of Mapping has been added called ??. A SwitchMap represents several
alternate Mappings, each of which is used to transforms input positions within a different
region of the input coordinate space.
-
(9)
- A new subclass of Mapping has been added called ??. A SelectorMap tests each input
position to see if it falls within one of several Regions. If it does, the index of the ??
containing the input position is returned as the Mapping output.
-
(10)
- The behaviour of the ?? method when trying to align a ?? with another ?? has been
modified. If no conversion between positions in the Frame and CmpFrame can be found,
an attempt is now made to find a conversion between the Frame and one of two
component Frames contained within the CmpFrame. Thus is should now be possible to
align a ?? with a CmpFrame containing a SkyFrame and a ?? (for instance). The returned
Mapping produces bad values for the extra axes (i.e. for the SpecFrame axis in the above
example).
-
(11)
- The “??” and “ast_link” scripts now ignore the -fsla and -csla options, and always link
against the minimal cut-down version of SLALIB distributed as part of AST.
H.27 Changes Introduced in V4.3
The following describes the most significant changes which occurred in the AST library between
versions V4.2 and V4.3:
-
(1)
- The astGetFitsS function now strips trailing white space from the returned string, if the
original string contains 8 or fewer characters
-
(2)
- The ?? class has a new attribute called ?? that specified whether the ?? attribute (which
specifies the rest frame of the source) should be accessed as an apparent radial velocity
or a redshift. Note, any existing software that assumes that SourceVel always represents a
velocity in km/s should be changed to allow for the possibility of SourceVel representing
a redshift value.
H.28 Changes Introduced in V4.4
The following describes the most significant changes which occurred in the AST library between
versions V4.3 and V4.4:
-
(1)
- The ?? function can now be used to search a ?? for an instance of a more specialised class of
?? (??, ??, ??, ?? or ??). That is, if an instance of one of these classes is used as the “template”
when calling astFindFrame, and the “target” being searched is a CmpFrame (or a ??
in which the current Frame is a CmpFrame), then the component Frames within the
CmpFrame will be searched for an instance of the supplied template Frame, and, if found,
a suitable ?? (which will include a ?? to select the required axes from the CmpFrame)
will be returned by astFindFrame. Note, for this to work, the ?? and ?? attributes of the
template Frame must be set so that they cover a range that includes the number of axes
in the target CmpFrame.
-
(2)
- The SkyFrame, SpecFrame, DSBSpecFrame, TimeFrame and FluxFrame classes now
allow the MaxAxes and MinAxes attributes to be set freely to any value. In previous
versions of AST, any attempt to change the value of MinAxes or MaxAxes was ignored,
resulting in them always taking the default values.
-
(3)
- The DSBSpecFrame class has a new attribute called AlignSB that specifies whether or not
to take account of the ?? attributes when aligning two DSBSpecFrames using ??.
-
(4)
- The Frame class has a new attribute called ?? that can be used to store a value for the
difference between the UT1 and UTC timescales at the epoch referred to by the Frame.
-
(5)
- The number of digits used to format the Frame attributes ?? and ?? has been increased.
-
(6)
- The use of the SkyFrame attribute ?? has been changed. This attribute is used to control
how two SkyFrames are aligned by astConvert. If the template and target SkyFrames
both have a non-zero value for AlignOffset, then alignment occurs between the offset
coordinate systems (that is, a ?? will always be used to align the two SkyFrames).
-
(7)
- The ?? class has a new attribute called ForceExterior that can be used to force exterior
(rather than interior) tick marks to be produced. By default, exterior ticks are only
produced if this would result in more than 3 tick marks being drawn.
-
(8)
- The TimeFrame class now supports conversion between angle based timescales such as
UT1 and atomic based timescales such as UTC.
H.29 Changes Introduced in V4.5
The following describes the most significant changes that occurred in the AST library between
versions V4.4 and V4.5:
-
(1)
- All FITS-CLASS headers are now created with a frequency axis. If the ?? supplied to ??
contains a velocity axis (or any other form of spectral axis) it will be converted to an
equivalent frequency axis before being used to create the FITS-CLASS header.
-
(2)
- The value stored in the FITS-CLASS keyword “VELO-LSR” has been changed from the
velocity of the source to the velocity of the reference channel.
-
(3)
- Addition of a new method call ?? to the ?? class. This method removes all WCS-related
header cards from a FitsChan.
-
(4)
- The ?? class has a new attribute called GrfContext that can be used to comminicate context
information between an application and any graphics functions registered with the Plot
class via the ?? function.
-
(5)
- Functions registered with the Plot class using astGrfSet now take a new additional
integer parameter, “grfcon”. The Plot class sets this parameter to the value of the Plot’s
GrfContext attribute before calling the graphics function. NOTE, THIS CHANGE WILL
REQUIRE EXISTING CODE THAT USES astGrfSet TO BE MODIFIED TO INCLUDE
THE NEW PARAMETER.
-
(6)
- The astRebinSeq functions now have an extra parameter that is used to record the total
number of input data values added into the output array. This is necessary to correct a
flaw in the calculation of output variances based on the spread of input values. NOTE,
THIS CHANGE WILL REQUIRE EXISTING CODE TO BE MODIFIED TO INCLUDE
THE NEW PARAMETER (CALLED "NUSED").
-
(7)
- Support has been added for the FITS-WCS “HPX” (HEALPix) projection.
-
(8)
- A new flag “AST__VARWGT” can be supplied to astRebinSeq. This causes the input data
values to be weighted using the reciprocals of the input variances (if supplied).
-
(9)
- The ?? class has a new read-only attribute called NormUnit that returns the normalised
value of the Unit attribute for an axis. Here, “normalisation” means cancelling redundant
units, etc. So for instance, a Unit value of “s*(m/s)” would result in a NormUnit value of
“m”.
-
(10)
- A new function ?? has been added to the ?? class. It displays a mesh of points covering
the surface of a Region by writing out a table of axis values to standard output.
-
(11)
- The Plot class now honours the value of the LabelUp attribute even if numerical labels are
placed around the edge of the Plot. Previously LabelUp was only used if the labels were
drawn within the interior of the plot. The LabelUp attribute controls whether numerical
labels are drawn horizontally or parallel to the axis they describe.
-
(12)
- A bug has been fixed that could segmentation violations when setting attribute values.
H.30 Changes Introduced in V4.6
The following describes the most significant changes which have occurred in the AST library between
versions V4.5 and V4.6:
-
(1)
- The ?? class now support Local Time as a time scale. The offset from UTC to Local Time
is specified by a new TimeFrame attribute called ??.
-
(2)
- A new class called ?? has been added. The Plot3D class allows the creation of
3-dimensional annotated coordinate grids.
-
(3)
- A correction for diurnal aberration is now included when converting between AZEL
and other celestial coordinate systems. The correction is based on the value of the ?? ??
attribute (the geodetic latitude of the observer).
-
(4)
- A bug has been fixed which caused the DUT1 attribute to be ignored by the ?? class when
finding conversions between AZEL and other celestial coordinate systems.
H.31 Changes Introduced in V5.0
The following describes the most significant changes which occurred in the AST library between
versions V4.6 and V5.0:
-
(1)
- The AST library is now thread-safe (assuming that the POSIX pthreads library is available
when AST is built). Many of the macros defined in the ast.h header file have changed. It
is therefore necessary to re-compile all source code that includes ast.h.
-
(2)
- New methods ?? and ?? allow an AST ?? to be locked for exclusive use by a thread.
-
(3)
- The ?? class now support Local Time as a time scale. The offset from UTC to Local Time
is specified by a new TimeFrame attribute called ??.
-
(4)
- The ?? class has a new attribute called ?? which controls whether or not to report an
error if unexpected data items are found within an AST Object description read from an
external data source. Note, the default behaviour is now not to report such errors. This
differs from previous versions of AST which always reported an error is unexpected input
items were encountered.
H.32 Changes Introduced in V5.1
The following describes the most significant changes which occurred in the AST library between
versions V5.0 and V5.1:
-
(1)
- The ?? function now has an extra parameter that controls whether or not an error is
reported if the ?? is currently locked by another thread.
-
(2)
- The ?? class has been modified so that any class of ?? can be used to define the extrusion
axes. Previously, only a ?? or ?? could be used for this purpose.
-
(3)
- The values of the AST__THREADSAFE macro (defined in ast.h) have been changed from
“yes” and “no” to “1” and “0”.
-
(4)
- Improvements have been made to the way that Prisms are simplified when ?? is called.
The changes mean that more types of Prism will now simplify into a simpler class of
Region.
-
(5)
- The ?? class has a new method, astPoints, that copies the axis values from the PointList
into a supplied array.
-
(6)
- The PointList class has a new (read-only) attribute, ??, that gives the number of points
stored in the PointList.
-
(7)
- The handling of warnings within different classes of ?? has been rationalised. The
XmlStrict attribute and astXmlWarnings function have been removed. The same
functionality is now available via the existing ?? attribute (which has had its remit
widened), a new attribute called ??, and the new ?? function. This new function can
be used on any class of Channel. Teh ?? class retains its long standing ability to store
warnings as header cards within the FitsChan, but it also now stores warnings in the
parent Channel structure, from where they can be retrieved using the astWarnings
function.
-
(8)
- A new function called astIntercept has been added to the ?? class. This function finds the
point of intersection beteeen two geodesic curves.
-
(9)
- A bug in the type-checking of Objects passed as arguments to constructor functions has
been fixed. This bug could lead to applications crashing or showing strange behaviour if
an inappropriate class of Object was supplied as an argument to a constructor.
-
(10)
- The ?? function will now return a Region, if possible, when applied to a Region. If this is
not possible, a Frame will be returned as before.
-
(11)
- The choice of default tick-mark for time axes has been improved, to avoid previous issues
which could result in no suitable gap being found, or inappropriate tick marks when
using formatted dates.
-
(12)
- A new function called ?? has been added to the FitsChan class. This function tests a
FitsChan to see if it contains a defined value for specified FITS keyword.
-
(13)
- The AST__UNDEF<X> parameters used to flag undefined FITS keyword values have
been removed. Use the new astTestFits function instead.
-
(14)
- The astIsUndef<X> functions used to test FITS keyword values have been removed. Use
the new astTestFits function instead.
H.33 Changes Introduced in V5.2
The following describes the most significant changes which occurred in the AST library between
versions V5.1 and V5.2:
-
(1)
- A new method called ?? has been added to the ?? class. It stores a pure comment card in
a FitsChan (that is, a card with no keyword name or equals sign).
-
(2)
- A new attribute called ?? has been added to the ?? class. It records the geodetic altitude of
the observer, in metres. It defaults to zero. It is used when converting times to or from the
TDB timescale, or converting spectral positions to or from the topocentric rest frame, or
converting sky positions to or from horizon coordinates. The FitsChan class will include
its effect when creating a set of values for the OBSGEO-X/Y/Z keywords, and will also
assign a value to it when reading a set of OBSGEO-X/Y/Z keyword values from a FITS
header.
-
(3)
- The ?? conversions “TTTOTDB” and “TDBTOTT”, and the ?? conversions “TPF2HL” and
“HLF2TP”, now have an additional argument - the observer’s geodetic altitude.
-
(4)
- The ?? class has been modified to make it consistent with the IVOA STC definition of a
Polygon. Specifically, the inside of a polygon is now the area to the left of each edge as the
vertices are traversed in an anti-clockwise manner, as seen from the inside of the celestial
sphere. Previously, AST used the anti-clockwise convention, but viewed from the outside
of the celestial sphere instead of the inside. Any Polygon saved using previous versions
of AST will be identified and negated automatically when read by AST V5.2.
-
(5)
- A new class of ??, called ??, has been added that allows conversion of suitable AST Objects
to and from IVOA STC-S format.
-
(6)
- A new method called ?? has been added to the ?? class. It searches a (possibly compound)
Mapping (or Frame) for any instances of the AST ?? class, and either removes them,
or replaces them with UnitMaps (or equivalent Frames). It can be used to remove the
masking effects of Regions from a compound Mapping or Frame.
-
(7)
- A new method called ?? has been added to the Polygon class. It produces a new Polygon
that contains a subset of the vertices in the supplied Polygon. The subset is chosen to
retain the main features of the supplied Polygion, in so far as that is possible, within
specified constraints.
-
(8)
- A new constructor called astOutline has been added to the Polygon class. Given a 2D
data array, it identifies the boundary of a region within the array that holds pixels with
specified values. It then creates a new Polygon to describe this boundary to a specified
accuracy.
-
(9)
- A new set of methods, called astMapGetElem<X> has been added to the ?? class. They
allow a single element of a vector valued entry to be returned.
-
(10)
- A new attribute called ?? has been added to the KeyMap ??. It controls whether the
astMapGet... family of functions report an error if an entry with the requested key does
not exist in the KeyMap.
H.34 Changes Introduced in V5.3
The following describes the most significant changes which occurred in the AST library between
versions V5.2 and V5.3:
-
(1)
- The details of how a ?? is aligned with another Frame by the ?? and ?? functions have
been changed. The changes mean that a Frame can now be aligned with an instance of
a sub-class of Frame, so long as the number of axes and the ?? values are consistent. For
instance, a basic 2-dimensional Frame with Domain “SKY” will now align succesfully
with a ??, conversion between the two Frames being achieved using a ??.
-
(2)
- The arrays that supply input values for astMapPut1<X> are now declared “const”.
-
(3)
- Added method ?? to the Frame class. This method allows corresponding axes within two
Frames to be identified.
-
(4)
- The ?? method can now be used to append one or more axes to all Frames in a ??.
H.35 Changes Introduced in V5.3-1
The following describes the most significant changes which have occurred in the AST library between
versions V5.3 and V5.3-1:
-
(1)
- The utility functions provided by the AST memory management layer are now
documented in an appendix.
-
(2)
- The ?? class now supports entries that have undefined values. A new method called ??
will store an entry with undefined value in a keymap. Methods that retrieve values from
a KeyMap (astMapGet0<X>, etc.) ignore entries with undefined values when searching
for an entry with a given key.
-
(3)
- The KeyMap class has a new method called ?? that copies entries from one KeyMap to
another KeyMap.
-
(4)
- The KeyMap class has a new boolean attribute called ??. If non-zero, an error is reported
if an attempt is made to add any new entries to a KeyMap (the value associated with any
old entry may still be changed without error). The default is zero.
-
(5)
- The ?? class has a new method called ??/AST_HASATTRIBUTE that returns a boolean
value indicating if a specified Object has a named attribute.
-
(6)
- The ?? class has two new read-only boolean attributes called IsLatAxis and IsLonAxis
that can be used to determine the nature of a specified SkyFrame axis.
-
(7)
- A bug has been fixed in the astRebin(Seq) methods that could cause flux to be lost from
the edges of the supplied array.
-
(8)
- A bug has been fixed in the astRebin(Seq) methods that caused the first user supplied
parameter to be interpreted as the full width of the spreading kernel, rather than the
half-width.
-
(9)
- The ?? class now ignores case when reading STC-S phrases (except that units strings are
still case sensitive).
-
(10)
- A new ?? method, ??, produces a quadratic least-squares fit to a 2D Mapping.
-
(11)
- A new Mapping method, ??, produces a Mapping from absolute SkyFrame coordinates
to offset SkyFrame coordinates.
-
(12)
- The ?? class now has an ?? attribute that controls indentation in the text created by ??. The
StcsIndent and XmlIndent attributes have been removed.
-
(13)
- All classes of Channel now use the string “<bad>” to represent the floating point value
AST__BAD, rather than the literal formatted value (typically “-1.79769313486232e+308”
).
-
(14)
- The KeyMap class now uses the string “<bad>” to represent the floating point value
AST__BAD, rather than the literal formatted value (typically “-1.79769313486232e+308”
).
-
(15)
- The KeyMap class has a new method called astMapPutElem<X> that allows a value to
be put into a single element of a vector entry in a KeyMap. The vector entry is extended
automatically to hold the new element if required.
-
(16)
- The ?? class now reports an error if the local oscillator frequency is less than the absoliute
value of the intermediate frequency.
H.36 Changes Introduced in V5.3-2
The following describes the most significant changes which occurred in the AST library between
versions V5.3-1 and V5.3-2:
-
(1)
- A bug has been fixed in the ?? class that could cause wavelength axes to be assigned the
units “m/s” when reading WCS information from a FITS header.
-
(2)
- The ?? function now allows literal commas to be included in string attribute values. String
attribute values that include a literal comma should be enclosed in quotation marks.
-
(3)
- A bug in FitsChan has been fixed that caused “-SIN” projection codes within FITS-WCS
headers to be mis-interpreted, resulting in no ?? being read by ??.
-
(4)
- The ?? class has a new attribute called “??”. It controls the order in which keys are
returned by the ?? function. Keys can be sorted alphabetically or by age, or left unsorted.
-
(5)
- Access to KeyMaps holding thousands of entries is now significantly faster.
-
(6)
- KeyMaps can now hold word (i.e. short integer) values.
H.37 Changes Introduced in V5.4-0
The following describes the most significant changes which occurred in the AST library between
versions V5.3-2 and V5.4-0:
-
(1)
- the ?? class now has an option to support reading and writing of FITS-WCS headers that
use the -TAB algorithm described in FITS-WCS paper III. This option is controlled by a
new FitsChan attribute called ??. See the documentation for TabOK for more information.
-
(2)
- A new class called “??” has been added. A Table is a ?? in which each entry represents a
cell in a two-dimensional table.
-
(3)
- A new class called “??” has been added. A FitsTable is a Table that has an associated
FitsChan holding headers appropriate to a FITS binary table.
-
(4)
- KeyMaps can now hold byte values. These are held in variables of type "unsigned char".
-
(5)
- KeyMaps have a new attribute called ?? that can be set to zero to make the handling of
keys case insensitive.
-
(6)
- a memory leak associated with the use of the astMapPutElem<X> functions has been
fixed.
-
(7)
- A new method called ?? has been added to rename existing entry in a KeyMap.
H.38 Changes Introduced in V5.5-0
The following describes the most significant changes which occurred in the AST library between
versions V5.4-0 and V5.5-0:
-
(1)
- The ?? “??” attribute is now an integer value rather than a boolean value. If TabOK is set to
a non-zero positive integer before invoking the ?? method, its value is used as the version
number for any table that is created as a consequence of the write operation. This is the
value stored in the PVi_1a keyword in the IMAGE header, and the EXTVER keyword in
the binary table header. In previous versions of AST, the value used for these headers
could not be controlled and was fixed at 1. If TabOK is set to a negative or zero value, the
-TAB algorithm will not be supported by either the astWrite or ?? methods.
H.39 Changes Introduced in V5.6-0
The following describes the most significant changes which occurred in the AST library between
versions V5.5-0 and V5.6-0:
-
(1)
- New functions ?? and ?? have been added to the ?? class. These control the buffering of
graphical output produced by other Plot methods.
-
(2)
- New functions astGBBuf and astGEBuf have been added to the interface defined by file
grf.h. The ?? command has been modified so that the -grf_v3.2 switch loads dummy
versions of the new grf functions. This means that applications that use the -grf_v3.2
switch should continue to build without any change. However, the new public functions
astBBuf and astEBuf will report an error unless the new grf functions are implemented.
If you choose to implement them, you should modify your linking procedure to use the
-grf (or -grf_v5.6 ) switch in place of the older -grf_v3.2 switch. See the description of
the ast_link command for details of these switches.
-
(3)
- New method ?? returns a set of positions covering the boundary, or volume, of a supplied
??.
H.40 ChangesIntroduced in V5.6-1
The following describes the most significant changes which occurred in the AST library between
versions V5.6-0 and V5.6-1:
-
(1)
- Tables can now have any number of parameters describing the global properties of the
??.
-
(2)
- Frames now interpret the unit string “A” as meaning “Ampere” rather than “Angstrom”,
as specified by FITS-WCS paper I.
-
(3)
- A bug has been fixed in the ?? method that allowed a template ?? of a more specialised
class to match a target frame of a less specialised class. For example, this bug would allow
a template ?? to match a target Frame. This no longer happens.
H.41 Changes Introduced in V5.7-0
The following describes the most significant changes which occurred in the AST library between
versions V5.6-1 and V5.7-0:
-
(1)
- The ?? class support for the IRAF-specific “TNX” projection has been extended to include
reading TNX headers that use a Chebyshev representation for the distortion polynomial.
-
(2)
- The FitsChan class support for the IRAF-specific “ZPX” projection has been extended
to include reading ZPX headers that use simple or Chebyshev representation for the
distortion polynomial.
-
(3)
- A bug has been fixed in the FitsChan class that caused headers including the Spitzer
“-SIP” distortion code to be read incorrectly if no inverse polynomial was specified in the
header.
-
(4)
- A new attribute called ?? has been added to the FitsChan class. It can be
used to indicate that FITS headers that specify a TAN projection should be
interpreted according to the “distorted TAN” convention included in an early draft
of FITS-WCS paper II. Such headers are created by (for instance) the SCAMP tool
(http://www.astromatic.net/software/scamp).
-
(5)
- The ?? class now provides a method called ?? that adds an inverse transformation to a
PolyMap by sampling the forward transformation on a regular grid, and then fitting a
polynomial function from the resulting output values to the grid of input values.
H.42 Changes Introduced in V5.7-1
The following describes the most significant changes which occurred in the AST library between
versions V5.7-0 and V5.7-1:
-
(1)
- - All classes of ?? can now read to and write from specified text files, without the need
to provide source and sink functions when the Channel is created. The files to use are
specified by the new attributes ?? and ??.
-
(2)
- - The ?? class now ignores trailing spaces in character-valued WCS keywords when
reading a ?? from a FITS header.
-
(3)
- - If the FitsChan ?? method reads a FITS header that uses the -SIP (Spitzer) distortion code
within the CTYPE values, but which does not provide an inverse polynomial correction,
the FitsChan class will now use the PolyTran method of the ?? class to create an estimate
of the inverse polynomial correction.
H.43 Changes Introduced in V5.7-2
The following describes the most significant changes which occurred in the AST library between
versions V5.7-1 and V5.7-2:
-
(1)
- The ?? class has a new function ?? (C only), which creates an in-memory textual
serialisation of a given AST Object. A corresponding new function called ?? re-creates the
Object from its serialisation.
-
(2)
- The ?? class can now use an iterative Newton-Raphson method to evaluate the inverse
the inverse transformation if no inverse transformation is defined when the PolyMap is
created.
-
(3)
- The ?? class has a new method ?? which writes out all cards currently in the FitsChan to
the associated external data sink (specified either by the ?? attribute or the sink function
supplied when the FitsChan was created), and then empties the FitsChan.
-
(4)
- The FitsChan class has a new read-only attribute called “??”, which holds the number of
keywords for which values are held in a FitsChan.
-
(5)
- The FitsChan astGetFits<X> methods can now be used to returned the value of the
current card.
-
(6)
- The FitsChan class has a new read-only attribute called “??”, which holds the data type
of the keyword value for the current card.
-
(7)
- The FitsChan class has a new method ?? which forces the FitsChan to reads cards from
the associated external source and appends them to the end of the FitsChan.
-
(8)
- - If the FitsChan ?? method reads a FITS header that uses the -SIP (Spitzer) distortion code
within the CTYPE values, but which does not provide an inverse polynomial correction,
and for which the PolyTran method of the PolyMap class fails to create an accurate
estimate of the inverse polynomial correction, then an iterative method will be used to
evaluate the inverse correction for each point transformed.
H.44 Changes Introduced in V6.0
The following describes the most significant changes which occurred in the AST library between
versions V5.7-2 and V6.0:
-
(1)
- This version of AST is the first that can be used with the Python AST wrapper module,
starlink.Ast, available at http://github.com/timj/starlink-pyast.
-
(2)
- When reading a FITS-WCS header, the ?? class now recognises the non-standard “TPV”
projection code within a CTYPE keyword value. This code is used by SCAMP (see
www.astromatic.net/software/scamp) to represent a distorted TAN projection.
-
(3)
- The ?? class has been changed to remove visual anomalies (such as incorrectly rotated
numerical axis labels) if the graphics coordinates have unequal scales on the X and Y axes.
- The graphics escape sequences used to produce graphical sky axis labels can now be
changed using the new function ??.
H.45 Changes Introduced in V6.0-1
The following describes the most significant changes which occurred in the AST library between
versions V6.0 and V6.0-1:
-
(1)
- The ?? class now recognises the Spitzer “-SIP” distortion code within FITS headers that
describe non-celestial axes, as well as celestial axes.
-
(2)
- A bug has been fixed that could cause inappropriate equinox values to be used when
aligning SkyFrames if the ?? attribute is set.
-
(3)
- The versioning string for AST has changed from “”
to “”.
H.46 Changes Introduced in V7.0.0
The following describes the most significant changes which occurred in the AST library between
versions V6.0-1 and V7.0.0:
-
(1)
- Fundamental positional astronomy calculations are now performed using the IAU SOFA
library where possible, and the Starlink PAL library SUN/268 otherwise (the PAL library
contains a subset of the Fortran Starlink SLALIB library re-written in C). Copies of these
libraries are bundled with AST and so do not need to be obtained or built separately,
although external copies of SOFA and PAL can be used if necessary by including the
“
–with-external_pal” option when configuring AST.
H.47 Changes Introduced in V7.0.1
The following describes the most significant changes which occurred in the AST library between
versions V7.0.0 and V7.0.1:
-
(1)
- The levmar and wcslib code distributed within AST is now stored in the main AST library
(libast.so) rather than in separate libraries.
H.48 Changes Introduced in V7.0.2
The following describes the most significant changes which occurred in the AST library between
versions V7.0.1 and V7.0.2:
-
(1)
- The libast_pal library is no longer built if the “–with-external_pal” option is used when
AST is configured.
H.49 Changes Introduced in V7.0.3
The following describes the most significant changes which occurred in the AST library between
versions V7.0.2 and V7.0.3:
-
(1)
- A bug has been fixed which could cause an incorrect axis to be used when accessing
axis attributes within CmpFrames. This could happen if axes within the ?? have been
permuted.
-
(2)
- A bug has been fixed in the ?? class that could cause the two values of the SkyRef and/or
SkyRefP attributes to be reversed.
-
(3)
- Bugs have been fixed in the ?? class that should allow the border around a compound ??
to be plotted more quickly, and more accurately. Previously, component Regions nested
deeply inside a CmpRegion may have been completely or partially ignored.
-
(4)
- A bug has been fixed in the ?? class that caused a segmentation violation if the MinTick
attribute was set to zero.
-
(5)
- The astResampleX set of methods now includes astResampleK and astResampleUK that
handles 64 bit integer data.
H.50 Changes Introduced in V7.0.4
The following describes the most significant changes which occurred in the AST library between
versions V7.0.3 and V7.0.4:
-
(1)
- The previously private grf3d.h header file is now installed into prefix/include.
H.51 Changes Introduced in V7.0.5
The following describes the most significant changes which occurred in the AST library between
versions V7.0.4 and V7.0.5:
-
(1)
- The ?? class can now read FITS headers that use the SAO convention for representing
distorted TAN projections, based on the use of “COi_m” keywords to hold the coefficients
of the distortion polynomial.
H.52 Changes Introduced in V7.0.6
The following describes the most significant changes which occurred in the AST library between
versions V7.0.5 and V7.0.6:
-
(1)
- A bug has been fixed in astRebinSeq<X> which could result in incorrect normalisation of
the final binned data and variance values.
-
(2)
- When reading a ?? from a FITS-DSS header, the keywords CNPIX1 and CNPIX2 now
default to zero if absent. Previously an error was reported.
H.53 Changes Introduced in V7.1.0
The following describes the most significant changes which occurred in the AST library between
versions V7.0.6 and V7.1.0:
-
(1)
- IMPORTANT! The default behaviour of astRebinSeq is now NOT to conserve flux.
To conserve flux, the AST__CONSERVEFLUX flag should be supplied when calling
astRebinSeq<X>. Without this flag, each output value is a weighted mean of the
neighbouring input values.
-
(2)
- A new flag AST__NONORM can be used with astRebinSeq<X> to indicate that
normalisation of the output arrays is not required. In this case no weights array need be
supplied.
-
(3)
- A bug has been fixed in ?? method that could result in the incorrect inversion of Mappings
within the ?? when the AST__ALLFRAMES flag is supplied for the "iframe" parameter.
-
(4)
- The ?? method has been re-written to make it faster and more reliable.
H.54 Changes Introduced in V7.1.1
The following describes the most significant changes which occurred in the AST library between
versions V7.1.0 and V7.1.1:
-
(1)
- When a ?? is used to write an “offset” ?? (see attribute ??) to a FITS-WCS encoded header,
two alternate axis descriptions are now created - one for the offset coordinates and one for
the absolute coordinates. If such a header is subsequently read back into AST, the original
offset SkyFrame is recreated.
-
(2)
- A bug has been fixed in FitsChan that caused inappropriate CTYPE values to be generated
when writing a ?? to FITS-WCS headers if the current ?? describes generalised spherical
coordinates (i.e. a SkyFrame with ??=Unknown).
H.55 Changes Introduced in V7.2.0
The following describes the most significant changes which occurred in the AST library between
versions V7.1.1 and V7.2.0:
-
(1)
- A new method call ?? has been added to the ?? class. It checks if a gtiven key name has a
defined value in a given KeyMap.
H.56 Changes Introduced in V7.3.0
The following describes the most significant changes which occurred in the AST library between
versions V7.2.0 and V7.3.0:
-
(1)
- The interface for the astRebinSeq<X> family of functions has been changed in order to
allow a greater number of pixels to be pasted into the output array. The "nused" parameter
is now a pointer to a "int64_t" variable, instead of an "int". APPLICATION CODE
SHOULD BE CHANGED ACCORDINGLY TO AVOID SEGMENTATION FAULTS AND
OTHER ERRATIC BEHAVIOUR.
-
(2)
- Added a new facility to the ?? class to allow each ?? to be associated with multiple
Mappings, any one of which can be used to connect the Frame to the other Frames in
the FrameSet. The choice of which ?? to use is controlled by the new “??” attribute of the
FrameSet class.
-
(3)
- Mappings (but not Frames) that have a value set for their ?? attribute are now left
unchanged by the c ?? function. f AST_SIMPLIFY routine.
H.57 Changes Introduced in V7.3.1
The following describes the most significant changes which occurred in the AST library between
versions V7.3.0 and V7.3.1:
-
(1)
- Fix a bug that could cauise a segmentation violation when reading certain FITS headers
that use a TNX projection.
H.58 Changes Introduced in V7.3.2
The following describes the most significant changes which occurred in the AST library between
versions V7.3.1 and V7.3.2:
-
(1)
- Fix support for reading FITS header that use a GLS projection. Previously, an incorrect
transformation was used for such projections if any CRVAL or CROTA value was
non-zero.
-
(2)
- The ?? class has new sorting options “KeyAgeUp” and “KeyAgeDown” that retain the
position of an existing entry if its value is changed. See the ?? attribute.
-
(3)
- A bug has been fixed in the ?? class that caused CDELT keywords for sky axes to be
treated as radians rather than degrees when reading a FITS header, if the corresponding
CTYPE values included no projection code.
H.59 Changes Introduced in V7.3.3
The following describes the most significant changes which occurred in the AST library between
versions V7.3.2 and V7.3.3:
-
(1)
- The ?? class has new attributes ?? and ??, which hold the keyword name and comment of
the current card.
-
(2)
- When using the FitsChan class to read FITS-WCS headers that include polynomial
distortion in the SIP format, any inverse transformation specified in the header is now
ignored and a new inverse is created to replace it based on the supplied forward
transformation. Previously, an inverse was created only if the header did not include an
inverse. The accuracy of the inverse transformation has also been improved, although it
may now be slower to evaluate in some circumstances.
H.60 Changes Introduced in V7.3.4
The following describes the most significant changes which occurred in the AST library between
versions V7.3.3 and V7.3.4:
-
(1)
- By default, the simplification of Polygons no longer checks that the edges are not bent by
the simplification. A new attribute, ??, can be set to zero in order to re-instate this check.
-
(2)
- The ?? class has a new mathod, astConvex, that returns a Polygon representing the
shortest polygon (i.e. convex hull) enclosing a specified set of pixel values within a
supplied array.
H.61 Changes Introduced in V8.0.0
The following describes the most significant changes which occurred in the AST library between
versions V7.3.4 and V8.0.0:
-
(1)
- AST is now distributed under the Lesser GPL licence.
-
(2)
- The ?? class now uses files copied from the C/C++ Minpack package (see
http://devernay.free.fr/hacks/cminpack/index.html) to perform least squares
fitting of N-dimensional polynomials.
-
(3)
- Use of the IAU SOFA library has been replaced by ERFA library, which is a re-badged
copy of SOFA distributed under a less restrictive license. A copy of ERFA is included
within AST.
H.62 Changes Introduced in V8.0.1
The following describes the most significant changes which occurred in the AST library between
versions V8.0.0 and V8.0.1:
-
(1)
- The ?? and ?? attributes of a ?? may now be set using the ?? name or the index of the
required ??.
-
(2)
- The order of WCS axes within new FITS-WCS headers created by ?? can now be controlled
using a new attribute called ??.
-
(3)
- Supported added for FITS XPH (polar HEALPIX) projection.
-
(4)
- The macro used to invoke the ?? utility function has changed to allow printf-style
converstions to be included in the supplied text. Any code that uses this macro must be
re-compiled.
-
(5)
- The astRebin and astRebinSeq family of functions now include support for arrays with
char (byte) and unsigned char (unsigned byte) data types.
H.63 Changes Introduced in V8.0.2
The following describes the most significant changes which occurred in the AST library between
versions V8.0.1 and V8.0.2:
-
(1)
- For security reasons, the change introduced to ?? in V8.0.1 has been moved to a new
function called ??, and astAppendString itself has been reverted to its V8.0.0 version.
Any software that has been built against V8.0.1 will need to be re-compiled and re-linked
against V8.0.2.
H.64 Changes Introduced in V8.0.3
The following describes the most significant changes which occurred in the AST library between
versions V8.0.2 and V8.0.3:
-
(1)
- Methods astRebin, astRebinSeq, astResample and ?? now report an error if an array is
specified that has more pixels than can be counted by a 32 bit integer.
-
(2)
- The hypertext documentation is now generated using Tex4HT rather than latex2html.
The format of the hypertext docs has changed significantly.
-
(3)
- Another bug fix associated with reading CAR projections from FITS-WCS headers.
-
(4)
- Constructor options strings of the form “
..., "%s", text );” can now be supplied. This
avoids a security issue associated with the alternative form “..., text );”.
H.65 Changes Introduced in V8.0.4
The following describes the most significant changes which occurred in the AST library between
versions V8.0.3 and V8.0.4:
-
(1)
- The behaviour of the ?? method has been changed slightly. Previously, astAddFrame
modified the ?? by storing references to the supplied ?? and ?? objects within the
FrameSet. This meant that any subsequent changes to the current Frame of the modified
FrameSet also affected the supplied Frame object. Now, deep copies of the Mapping
and Frame objects (rather than references) are stored within the modified FrameSet. This
means that subsequent changes to the modified FrameSet will now have no effect on the
supplied Frame.
-
(2)
- The choice of default tick-mark gaps for time axes has been improved, to avoid a previous
issue which could result in no suitable gap being found.
- A new method called ?? has been added to the ?? class. It draws the outline of a supplied
AST ??.
-
(3)
- A bug has been fixed that could cause astSimplfy to enter an infinite loop.
-
(4)
- Some improvements have been made to the Mapping simplification process that allow
more Mappings to be simplified.
-
(5)
- The Frame class has a new read-only attribute called InternalUnit, which gives the units
used for the unformatted (i.e. floating-point) axis values used internally by application
code. For most Frames, the InternalUnit value is just the same as the Unit value (i.e.
formatted and unformatted axis values use the same units). However, the ?? class
always returns “
rad” for InternalUnit, regardless of the value of Unit, indicating that
floating-point SkyFrame axis values are always in units of radians.
-
(6)
- The ?? class has a new attribute called ??, which specifies the relative error of the values
in the table. It is used to decide if the LutMap can be simplified to a straight line.
H.66 Changes Introduced in V8.0.5
The following describes the most significant changes which occurred in the AST library between
versions V8.0.4 and V8.0.5:
-
(1)
- The ?? class has a new attribute called ??, which specifies the smallest significant distance
within the SkyFrame. It is used to decide if the ?? between two SkyFrames can be
considered a unit transformation. The default value is 0.001 arc-seconds.
-
(2)
- A bug has been fixed in the ?? class that prevented illegal characters within FITS keyword
names (i.e. characters not allowed by the FITS standard) being detected. This bug could
under some circumstances cause a subsequent segmentation violation to occur.
-
(3)
- A “BadKeyName” warning is now issued by the FitsChan class if a FITS keyword name
is encountered that contains any illegal characters. See attribute “??” and function “??”.
H.67 Changes Introduced in V8.1.0
The following describes the most significant changes which occurred in the AST library between
versions V8.0.5 and V8.1.0:
-
(1)
- The configure script has a new option “–without-fortran” that allows AST to be built in
situations where no Fortran compiler is available. The resulting library has no Fortran
interface and so cannot be used within Fortran applications. Also, the link scripts do not
attempt to include the fortran runtime libraries.
H.68 Changes Introduced in V8.2
The following describes the most significant changes which occurred in the AST library between
versions V8.1.0 and V8.2.0:
-
(1)
- A new class of ?? called ?? has been added that converts a vector to a unit vector relative
to a specified centre, plus length. A UnitNormMap has N inputs and N+1 outputs.The
lower N output coordinates represent a unit vector parallel to the supplied input vector,
and the (N+1)’th output coordinate is the length of the input vector.
-
(2)
- The restriction that Mappings are immutable has been extended to all Mapping classes.
This means that attributes representing parameters of a Mapping’s forward or inverse
transformation cannot be changed after the Mapping has been created. In order to
minimise the risk to existing software, this rule does not apply to Mappings that have
not yet been included in other objects such as CmpMaps or FrameSets, or which have not
yet been cloned. In other words, an error is reported if an attempt is made to change the
nature of a Mapping’s transformation, but only if the reference count of the Mapping is
greater than one. The Mapping classes affected include: ??, ??, ??, ??, ?? and ??.
H.69 Changes Introduced in V8.3
The following describes the most significant changes which occurred in the AST library between
versions V8.2.0 and V8.3.0:
-
(1)
- A new method called ?? has been added to the ?? class that normalises an array of axis
values. When used with SkyFrames, it allows longitude values to be normalised into the
shortest range.
-
(2)
- A bug has been fixed in the ?? method that could cause the wrong bounds to be returned
for regions spanning a longitude = zero singularity.
H.70 Changes Introduced in V8.4
The following describes the most significant changes which occurred in the AST library between
versions V8.3.0 and V8.4.0:
-
(1)
- The PAL library files included in the AST distribution have been updated to PAL version
0.9.7.
-
(2)
- Multiple identical NormMaps in series will now be simplified to a single ??.
-
(3)
- A NormMap that encapsulates a basic ?? will now be simplified to a ??.
-
(4)
- The ?? method of the ?? class now include an extra argument that gives the number of
values supplied in the arguments array. Note, any existing code that uses this method
will need to be changed.
-
(5)
- The ?? method of the ?? class now include an extra argument that gives the number of
values supplied in the arguments array. Note, any existing code that uses this method
will need to be changed.
-
(6)
- The ?? method of the ?? class now include an extra argument that gives the number of
values supplied in the arguments array. Note, any existing code that uses this method
will need to be changed.
-
(7)
- Multiple identical NormMaps in series will now be simplified to a single NormMap.
-
(8)
- A NormMap that encapsulates a basic Frame will now be simplified to a UnitMap.
-
(9)
- If the ?? method is used to map a ?? into a new Frame that has fewer axes than the
original Region, and if the inverse transformation of the supplied ?? does not specify
a value for the missing axes, then those axes are removed entirely from the Region.
Previously they were retained, but automatically supplied with bad values. This affects
the number of mesh points per axes for such Regions, and so affects the accuracy of
overlap determination.
H.71 Changes Introduced in V8.5
The following describes the most significant changes which occurred in the AST library between
versions V8.4.0 and V8.5.1:
-
(1)
- - A new class of ?? called ?? has been added. This is a Mapping that implements
Chebyshev polynomial transformations.
-
(2)
- A bug has been fixed in the ?? class that caused incorrect values to be returned for the ??
and ?? attributes if the PolyMap has been inverted.
-
(3)
- The ?? class has a new method called ?? which returns a named entry as a single string. If
the entry is a vector the returned string is a comma-separated list of its elements, enclosed
in parentheses.
-
(4)
- If the function that delivers error messages to the user (astPutErr) is re-implemented, the
new version can now be registered at run-time using the new ?? function. Previously, the
new version needed to be linked into the application at build time.
-
(5)
- The ?? class now has a new attribute caled DTAI, which can be used to specify the number
of leap seconds at the moment represented by the Frame’s ?? attribute. By default, the
internal look-up table of leap seconds contained within AST is used. The DTAI attribute
allows old versions of AST, which may not include the most recent leap seconds, to be
used with new data.
-
(6)
- The ?? class has been changed so that some conversions now require a “??” value (i.e.
the number of leap seconds) to be supplied by the caller. If AST__BAD is supplied for
“Dtai”, the internal look-up table of leap seconds contained withn AST will be used. The
conversions affected are those between TAI and UTC, and those between TT and TDB.
H.72 Changes Introduced in V8.6.2
The following describes the most significant changes which occurred in the AST library between
versions V8.5.1 and V8.6.2:
-
(1)
- The astRebinSeq<X> functions accepts a new flag, AST__PARWGT, which allows the
initial weight to be given for the data being pasted into the output arrays (the initial
weight to use should be include in the "params" array). This initial weight defaults to 1.0
if the AST__PARWGT flag is not given.
-
(2)
- The behaviour of the ?? method of the ?? class has been changed in cases where the
Mapping being approximated generates bad (AST__BAD) values for one or more of its
outputs. Previously, any such Mapping would be deemed non-linear and no fit would be
returned. Now, a fit is returned, provided the other outputs of the Mapping are linear, but
the fit contains AST__BAD values for the coefficients describing the bad Mapping output.
-
(3)
- The ?? method of the ?? class can now create FITS-WCS headers that include keyords
describing focal plane distortion using the conventions of the Spitzer SIP scheme. This is
however only possible if the ?? attribute of the FitsChan is set to a non-zero value (which
is the default), and the ?? being written out contains an appropriate ?? that conforms to
the requirements of the SIP convention.
-
(4)
- A new function call ?? is now available that returns the function name, file path and line
number at which an AST object was first created. Note, there is no Fortran equivalent to
this new C function.
-
(5)
- The number of digits used to format floating point values has been increased in order to
avoid loss of precision when converting from binary to string and back to binary. This
could cause very small changes in numerical values returned by AST functions.
-
(6)
- If a FrameSet is supplied as the “map” argument to ??, it now extracts and stores the
base->current Mapping from the supplied FrameSet. Previously, the entire FrameSet was
stored as the Mapping.
H.73 Changes Introduced in V8.6.3
The following describes the most significant changes which occurred in the AST library between
versions V8.6.2 and V8.6.3:
-
(1)
- Small memory leaks in ?? and ?? classes have been fixed.
-
(2)
- A bug that could cause an internal buffer overrun within the FitsChan class when writing
out a FITS-WCS spectral axis with the “-LOG” algorithm has been fixed.
-
(3)
- The test that a ?? conforms to the requirements of the SIP FITS distortion scheme has been
improved.
-
(4)
- The astRebinSeq method of the Mapping class can now use a different weight when
pasting each separate input data array into the output mosaic.
H.74 Changes Introduced in V8.7.0
The following describes the most significant changes which occurred in the AST library between
versions V8.6.3 and V8.7.0:
-
(1)
- The ?? class has a new method called ??, which returns the centre and radius of a disc that
just encloses a 2-dimensional Region.
-
(2)
- A new subclass of Region called “??” has been added. A Moc describes an arbitrary region
of the sky in the form of a set of HEALPix cells.
-
(3)
- The ?? attribute defined by the Region class is now always non-zero for Regions defined
within a ??, regardless of whether the Region has been negated. Previously, it was
non-zero only if the Region had not been negated. Note, this change only affects Regions
defined within SkyFrames.
H.75 Changes Introduced in V8.7.1
The following describes the most significant changes which occurred in the AST library between
versions V8.7.0 and V8.7.1:
-
(1)
- The ?? class now supports version 1.1 of the the MOC recommendation. This includes
new support for string and JSON encoded MOCs. See methods ?? and ?? in the Moc class,
and also the new ?? class.
-
(2)
- The ?? class will now read FITS-WCS headers that have alternate axis descriptions but no
primary axis descriptions.
H.76 Changes Introduced in V8.7.2
The following describes the most significant changes which occurred in the AST library between
versions V8.7.1 and V8.7.2:
-
(1)
- By default, the AST header file “ast.h” is now installed into both
STARLINK_DIR/include
and STARLINK_DIR/include/star. The new configure option “–without-topinclude”
can be used to prevent the header file being installed into STARLINK_DIR/include.
H.77 Changes Introduced in V9.0.0
The following describes the most significant changes which occurred in the AST library between
versions V8.7.2 and V9.0.0:
-
(1)
- Functions such as astResample and astMask that handle grids of data values now
have alternative interfaces that can handle grids that contain more pixels than can be
represented in a 4-byte integer. This is achieved by using 8-byte integer arguments in
place of 4-byte arguments. The names of these “8-byte” interfaces are the same as the
4-byte interfaces but have the digit “8” appended to the function name (before any trailing
data type code). These new interfaces are documented in an extra paragraph entitled
Handling of Huge Pixel Arrays attached to the reference documentation for each such
function.
Note, all C or C++ code that uses AST should be recompiled to pick up changes made to
the header file ast.h. This should be done even if you do not intend to use the new 8-byte
interfaces.
H.78 Changes Introduced in V9.0.2
The following describes the most significant changes which occurred in the AST library between
versions V9.0.0 and V9.0.2:
-
(1)
- The AST sharable libraries now use a non-zero version number.
-
(2)
- The ?? class has a new attribute called ??, which is used in conjunction with the ?? attribute
to force the use of the “-TAB” algorithm when writing a ?? out using the FITS-WCS
encoding.
H.79 Changes Introduced in V9.1.0
The following describes the most significant changes which occurred in the AST library between
versions V9.0.2 and V9.1.0.
-
(1)
- The AST source directory has been reorganised to put most of the AST source files into a
subdirectory named “src”.
-
(2)
- A bug has been fixed in the ?? class that caused the time returned by ?? to be wrong by 37
seconds.
-
(3)
- The ?? class has a new convenience method (??) to test a if a single point is inside a Region.
H.80 Changes Introduced in V9.1.2
The following describes the most significant changes which occurred in the AST library between
versions V9.1.0 and V9.1.2:
-
(1)
- A bug in the way in which the ?? class reads FITS-WCS headers that have more WCS axes
than pixel axes has been fixed (i.e. axes for which there is no CRPIX value). Previously,
the missing pixel axes were assigned a constant value 1.0. However, the default value for
CRPIX specified by FITS-WCS Paper I is 0.0, not 1.0. So now the missing pixel axes are
assigned the value 0.0.
H.81 Changes Introduced in V9.1.3
The following describes the most significant changes which occurred in the AST library between
versions V9.1.2 and V9.1.3:
-
(1)
- The ?? class has a new method called ?? that can be used to copy a single entry from one
KeyMap to another.
-
(2)
- The ?? method now prefers ShiftMaps over equivalent WinMaps.
-
(3)
- The astSimplify method will now merge WinMaps with neighbouring diagonal
MatrixMaps.
H.82 Changes Introduced in V9.2.0
The following describes the most significant changes which occurred in the AST library between
versions V9.1.3 and V9.2.0:
-
(1)
- - A new subclass of ?? called ?? has been added. It allows AST objects to be
read and written using YAML. Currently, the ASDF format developed by STSci
(https://asdf-standard.readthedocs.io) is the only supported encoding.
H.83 Changes Introduced in V9.2.4
The following describes the most significant changes which occurred in the AST library between
versions V9.2.0 and V9.2.4:
-
(1)
- A bug has been fixed that could prevent the ?? method of the ?? class producing
FITS-WCS headers describing alternate axes for some of the Frames in the supplied
??. Consequently, the headers produced by astWrite may now include alternate axis
descriptions that were not present previously. These can be supressed using the new ??
attribute.
-
(2)
- The FitsChan class has a new attribute, AltAxes, which controls the creation of FITS-WCS
alternate axis descriptions by the astWrite method.
-
(3)
- - The ?? class now supports 64 bit integer (int64_t) entries, represented by the new data
type code “K”.
-
(4)
- Two simplification bugs introduced at V9.2.0 have been fixed.
-
(5)
- The ?? class now supports AST “native” encoding.
H.84 Changes Introduced in V9.2.5
The following describes the most significant changes which occurred in the AST library between
versions V9.2.4 and V9.2.5:
-
(1)
- A new method called ?? has been added to the ?? class. This is similar to the existing
?? method in that it can be used to normalise axis values, but can be used on a vector
of points rather than just a single point. In addition, it has an option to choose a
normalisation that avoids discontinuities in the Frame’s coordinate system. The most
common usage will be to modify vectors of sky position in such a way as to avoid sudden
jumps of 360 degrees in longitude within groups of points that span the longitude origin.
- The mesh of points returned by ?? and ?? are now normalised to avoid discontinuities
in celestial longitude. This uses the new astNormPoints methid described in the previous
item.
-
(2)
- A bug has been fixed in the ?? class that caused astMapGet1<X> functions to return a
vector length of 1 for KeyMap entries with an undefined value. A vector length of zero is
now returned in such cases.
-
(3)
- The way in which the astRebinSeq functions use the “wlim” argument has been modified
in order to improve the performance when the input variances include aberrant ultra-low
values. The change should result in fewer output pixels being set bad in such cases. This
change only affects cases where the AST__GENVAR flag is not set.
-
(4)
- An option “–with-external-cminpack” had been added to the configure script. It omits
the internal cminpack routines from the built library, and instead links with an external
cminpack library.
H.85 Changes Introduced in V9.2.6
The following describes the most significant changes which occurred in the AST library between
versions V9.2.5 and V9.2.6:
-
(1)
- A bug has been fixed in the ?? class that caused an error to be reported when reading a
legal FITS WCS header that uses the “NCP” projection code. The error message related
to a missing alternate axis description keyword.
H.86 Changes Introduced in V9.2.7
The following describes the most significant changes which occurred in the AST library between
versions V9.2.6 and V9.2.7:
-
(1)
- The ?? class has a new attribute called ??, which controls rounding applied when
floating point values are formatted as FITS keyword values. Note, this changes the
default rounding behaviour. Previously, sequences of four or more 9’s or 0’s were
always rounded. Now, such sequences are only rounded if they extend beyond the tenth
significant digit (the default value for FitsRounding being 10). To restore the original
behaviour, set FitsRounding to 1.
H.87 Changes Introduced in V9.2.8
The following describes the most significant changes which occurred in the AST library between
versions V9.2.7 and V9.2.8:
-
(1)
- The Fortran interface has been changed to fix a bug caused by a change in the way
that gfortran passes character arguments. As of gfortran V8 the length of each character
argument passed to a subroutine is stored in a size_t value rather than an int value.
AST now tests the version of gfortran at configure-time, and uses int or size_t within the
Fortran API as appropriate. Prior to this change int was always used, which could cause
undefined behaviour and segmentation faults when calling AST routines under gfortran
v8 and later.
-
(2)
- A bug has been fixed in astRebinSeq that could cause NaN values to appear in the output
array in cases where the overlap between two input arrays is very small. The fix corrects
the way in which the mean weight per input pixel is calculated. It may cause some general
minor changes to the decision about which output pixels pass the “wlim” criterion.
H.88 Changes Introduced in V9.2.9
The following describes the most significant changes which occurred in the AST library between
versions V9.2.8 and V9.2.9:
-
(1)
- A bug has been fixed in fitschan.c that could cause an error when compiling using some
versions of clang.
H.89 Changes Introduced in V9.2.10
The following describes the most significant changes which occurred in the AST library between
versions V9.2.9 and V9.2.10:
-
(1)
- A bug has been fixed in the astRebinSeq4 wrapper where lbnd and ubnd had dimensions
ndim_out rather than ndim_in. Additionally the dimension check error message was
corrected to refer to input dimensions. These and other recent fixes to astRebinSeq were
applied also to astRebin.
-
(2)
- Some memory allocations in ?? were corrected.
H.90 Changes Introduced in V9.2.11
The following describes the most significant changes which occurred in the AST library between
versions V9.2.10 and V9.2.11:
-
(1)
- A bug in the flagging of permanent memory blocks when AST is configured
–with-memdebug has been fixed.
H.91 Changes Introduced in V9.2.12
The following describes the most significant changes which have occurred in the AST library between
versions V9.2.11 and V9.2.12 (the current version):
-
(1)
- A new attribute called ?? has been added to the ?? class. If set, it allows unreadable
alternate axis descriptions within FITS-WCS headers to be ignored. By default, such
headers would cause an error to be reported.
-
(2)
- A new warning called BadAlt has been added to the FitsChan class. If included in the list
of active warnings (see attribute “??”), a warning will be created if any alternate axes are
ignored when reading a FITS-WCS header.
-
(3)
- The FitsChan class now supports 64 bit integer keyword values.
-
(4)
- The ?? class now supports 64 bit integer columns.
-
(5)
- The ?? class now supports 64 bit integer columns.
-
(6)
- The ?? attribute of the ?? class can be higher than ?? to allow small features to be included
in a lower-resolution MOC when using astAddPixelMask or ?? with a non-MOC region.
(It should no longer be set to a very large value to have MaxOrder used instead in these
methods.)
-
(7)
- When adding FITS data or string representation to a Moc object, cells of greater order
than the MaxOrder attribute will be degraded to that resolution.
-
(8)
- Tracing the outline of a Moc region (via the surface mesh) has hopefully been made more
reliable with the addition of backtracking.
-
(9)
- Added a check for an acos parameter being out of range in internal line length calculation
in ??.
-
(10)
- ?? simplification to ?? in a SkyFrame checks handedness without using astGetBounded.
Programs which are statically linked will need to be re-linked in order to take advantage of these new
facilities.
Copyright (C) 2024 East Asian Observatory
- ←Prev
- AST
A Library for Handling
World Coordinate
Systems
in Astronomy -
- TOC ↑