Processing math: 100%
- ←Prev
- AST
A Library for Handling
World Coordinate Systems
in Astronomy -
- TOC ↑
G Release Notes
G.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 AST_UNFORMAT function has been provided to read formatted coordinate
values for the axes of a Frame (§7.8). In essence, this function is the inverse of
AST_FORMAT. 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 SkyFrame 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 routine AST_MAPBOX 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
Mapping. 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 Object, the IntraMap, has been introduced (§20). This is a specialised form
of Mapping which encapsulates a privately-defined coordinate transformation routine
(e.g. written in Fortran) 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 FrameSet 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 AST_SIMPLIFY.
-
(9)
- The textual representation used for some Objects (i.e. when they are written to a Channel)
has changed slightly, but remains compatible with earlier versions of AST.
-
(10)
- A problem has been fixed which could result when using AST_READ 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.
-
(11)
- A bug has been fixed which could occasionally cause a MatrixMap to be used with the
wrong Invert attribute value when it forms part of a compound Mapping which is being
simplified using AST_SIMPLIFY.
-
(12)
- A bug has been fixed which could cause the AST__BAD parameter to have an incorrect
value on some platforms.
-
(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.
G.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 routine, AST_POLYCURVE, has been introduced to allow more efficient plotting
of multiple geodesic curves (§21.3).
-
(2)
- A new set of functions, AST_RESAMPLE<X>,
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 Mapping.
-
(3)
- The command-line options “−pgp”
and “−pgplot”,
which were previously synonymous when used with the “ast_link” and “ast_link_adam”
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 routine AST_MAPBOX 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 Encoding attribute of a
FitsChan. 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 FrameSet is created from a set of FITS header cards (by reading from a FitsChan
using a “foreign” encoding), the base Frame of the resulting FrameSet now has its Domain
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)
- AST_FINDFITS now ignores trailing spaces in its keyword template.
-
(8)
- AST_PUTFITS 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 AST_SIMPLIFY.
-
(12)
- A new UnitRadius attribute has been added to the SphMap class. This allows improved
simplification of compound Mappings (CmpMaps) involving SphMaps and typically
improves performance when handling FITS world coordinate information.
-
(13)
- A MatrixMap 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 AST_CONVERT to think that
conversion between a CmpFrame and another Frame was possible when, in fact, it
wasn’t.
G.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, AST_RESAMPLE<X>,
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 Mapping. A
variety of sub-pixel interpolation schemes are supported.
-
(2)
- A new class, PcdMap, 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 FitsChan 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.
G.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 MathMap class has been introduced. This is a form of Mapping that allows you
to define coordinate transformations in a flexible and transportable way using arithmetic
operations and mathematical functions similar to those available in Fortran.
-
(2)
- WARNING—INCOMPATIBLE CHANGE. Transformation routines used with the
IntraMap class (see, for example, AST_INTRAREG) now require a THIS pointer as their
first argument. Existing implementations will not continue to work correctly with this
version of AST unless this argument 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 IntraFlag attribute has been added to the IntraMap class. This allows
the transformation routines used by IntraMaps to adapt to produce the required
transformation on a per-IntraMap basis (§20.9).
-
(4)
- The Plot 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 Labelling attribute).
-
(6)
- The FitsChan 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 Encoding attribute for details).
-
(7)
- The FitsChan class now recognises the coordinate system “ICRS” (International Celestial
Reference System) 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
SkyFrame, 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.
G.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 FitsChan 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.
- Projection parameters are now associated with particular axes and are represented
by
PVi_m
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 Encoding 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 FrameSet 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 Object
can be saved and restored without truncation when using the NATIVE encoding. Previously,
very long Frame 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 Warnings 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 WcsMap 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.
G.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)
- A bug has been fixed in the Plot class which could cause groups of tick marks to be
skipped when using very small gaps.
-
(2)
- 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.
-
(3)
- The FITS-WCS encoding used by the FitsChan class now includes the WCSNAME
keyword. When creating a FrameSet from FITS headers, the values of the WCSNAME
keywords are now used as the Domain names for the corresponding Frames in the
returned FrameSet. When writing a FrameSet to a FITS header the Domain names of each
Frame are stored in WCSNAME keywords in the header.
-
(4)
- 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 Ident 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.
-
(5)
- The FITS-WCS, FITS-PC, FITS-IRAF and FITS-AIPS encodings used by the FitsChan
class now create a SkyFrame with the System 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.
-
(6)
- 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”.
-
(7)
- The new value “noctype” is now recognized by the Warnings attribute of the FitsChan
class. This value causes warnings to be issued if CTYPE keywords are missing from
foreign encodings.
-
(8)
- A new attribute called AllWarnings 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.
-
(9)
- The FitsChan class now attempts to assigns a Title 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.
-
(10)
- 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.
-
(11)
- A new “interpolation” scheme identified by the symbolic constant AST__BLOCKAVE has
been added to the AST_RESAMPLE<X>
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.
-
(12)
- The SkyFrame class can now be used to represent an arbitrary spherical coordinate
system by setting its System attribute to “Unknown”.
-
(13)
- The indices of the latitude and longitude axes of a SkyFrame can now be found using new
read-only attributes LatAxis and LonAxis. The effects of any axis permutation is taken
into account.
-
(14)
- A new attribute called Ident has been added to the Object class. This serves the same
purpose as the existing ID attribute, but (unlike ID) its value is transferred to the new
Object when a copy is made.
-
(15)
- A bug has been fixed which could prevent complex CmpFrames behaving correctly (for
instance, resulting in the failure of attempts to find a Mapping between a CmpFrame and
itself).
G.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 Frame class has a new method called AST_ANGLE 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 AST_OFFSET2 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 AST_AXDISTANCE 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 AST_AXOFFSET 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 2π
(for longitude axes).
-
(5)
- The Plot class has a new method called AST_GENCURVE which allows generalised
user-defined curves to be drawn. The curve is defined by a user-supplied Mapping 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 AST_GRFSET 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 ast_link 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 AST_GRFPUSH and AST_GRFPOP 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 IntraMap class which could cause IntraMaps to be corrupted
after transforming any points.
-
(10)
- Bugs have been fixed in the FitsChan 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.
G.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 SkyFrame class has a new attribute called NegLon which allows longitude values to
be displayed in the range −π
to +π,
instead of the usual range zero to 2.π.
-
(2)
- Some new routines (AST_ANGLE, AST_AXANGLE, AST_RESOLVE, AST_OFFSET2,
AST_AXOFFSET, AST_AXDISTANCE) have been added to the Frame 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 AST_BEAR routine has been
replaced by AST_AXANGLE.
G.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 astDecompose has been added to the Mapping class which enables
pointers to be obtained to the component parts of CmpMap and CmpFrame 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.
G.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 FitsChan class has a new attribute called DefB1950 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 astWrite from creating
a set of FITS headers from an otherwise valid FrameSet, when when using FITS-AIPS
encoding.
-
(3)
- A bug has been fixed in the FitsChan class which could cause astRead to mis-interpret
the FITS CROTA keyword when using FITS-AIPS encoding.
G.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 Plot 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, Grid, NumLabs,
TextLabs and Ticks.
G.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 CarLin has been added to the FitsChan class which controls
the way CAR projections are handled when reading a FrameSet 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 Mapping to include a 3D rotation from native spherical
coordinates to celestial spherical coordinates, thus making the Mapping non-linear.
Setting CarLin to 1 forces AST_READ 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 Plot 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
AST_SET, etc., on certain platforms (MacOS, for instance).
G.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 FitsChan class which could cause problems when creating a
FrameSet 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 AST_BOUNDINGBOX has been added to the Plot class. This
method returns the bounding box of the previous graphical output produced by a Plot
method.
-
(3)
- A new attribute called Invisible 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 AST_BOUNDINGBOX 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.).
G.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 FitsChan class has been modified so that LONPOLE keywords are only produced
by AST_WRITE 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 AST_WRITE 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 WcsMap 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 Frame class has new attributes Top(axis) and Bottom(axis) which allow a “plottable
range” to be specified for each Frame axis. The grid produced by the AST_GRID routine
will not extend beyond these limits.
G.15 Changes Introduced in V2.0
Note, Frame 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:
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 Domain attribute provided by the CmpFrame 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 AST_WRITE routine within the FitsChan class has been
modified. It will now attempt to produce a set of FITS header cards to describe a FrameSet
even if the number of axes in the Current Frames is greater than the number in the Base
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 AST_WRITE routine 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, SpecFrame and SpecMap. 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
Mapping 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 AST_FINDRAME or AST_CONVERT method is used to find the
Mapping between an Axis with Unit set to “m” and another Axis with Unit set to “km”,
then the method will return a ZoomMap 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 AST_SETACTIVEUNIT 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 System and Epoch attributes fo the SkyFrame 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 AlignSystem, which allows control over the
alignment process performed by the methods AST_FINDFRAME and AST_CONVERT.
-
(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 StdOfRest attribute of the SpecFrame can be referred to
as the “StdOfRest(1)” attribute of the CmpFrame. Likewise, the Equinox 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 Plot 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 (AST_VERSION) 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.
G.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 FitsChan 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 CDMatrix has
been added to the FitsChan class to indicate which set of keywords should be used
when writing a FrameSet 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 SkyFrame
will have a System 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 PolyMap 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 Warnings 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 Encoding
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 DefB1950 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 AST_RATE function has been added which allows an estimate to be made of the rate of
change of a Mapping 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 Frame. For instance, the
Domain 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 CmpFrame 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 GrismMap, has been added which models the spectral
dispersion produced by a grating, prism or grism.
-
(7)
- A new subclass of Mapping, the ShiftMap, has been added which adds constant
values onto all coordinates (this is equivalent to a WinMap with unit scaling on all
axes).
-
(8)
- Minor bugs have been fixed within the Plot class to do with the choice and placement of
numerical axis labels.
-
(9)
- The SphMap class has a new attribute called PolarLong 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 WcsMap class now assigns a longitude of zero to output celestial coordinates which have a
latitude of plus or minus 90 degrees.
-
(11)
- The NatLat and NatLon 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 AST_SIMPLIFY
function to make simplifications in a CmpMap which previously were not possible.
-
(14)
- The SlaMap class has been extended by the addition of conversions between FK5 and ICRS
coordinates, and between FK5 and helio-ecliptic coordinates.
-
(15)
- The SpecMap 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.
G.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 XmlChan - a Channel which reads and writes AST objects
in the form of XML.
-
(2)
- A bug has been fixed in the Plot 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.
G.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 routine AST_PUTCARDS has been added to the FitsChan class. This allows
multiple concatenated header cards to be stored in a FitsChan in a single call, providing
an alternative to the existing AST_PUTCARDS routine.
-
(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 Plot 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 Escape.
-
(6)
- The default value of the Tol 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 SkyAxis 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 ast_link 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 astEscapes has been added which is used to control and
enquire whether astGetC and astFormat will strip any graphical escape sequences which
may be present out of the returned value.
-
(13)
- New attribute XmlPrefix has been added to the XmlChan class. It allows XML written by
the XmlChan class to include an explicit namespace prefix on each element.
-
(14)
- New attribute XmlFormat has been added to the XmlChan class. It specifies the format in
which AST objects should be written.
-
(15)
- A new class of Mapping, the TranMap, 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 WcsMap which caused error reports to include erroneous axis
numbers when referring to missing parameter values.
G.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 SkyFrame class which allows the origin of celestial
coordinates to be moved to any specified point. See the new attributes SkyRef, SkyRefIs,
SkyRefP and AlignOffset.
-
(2)
- An option has been added to the FitsChan 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 Iwc.
-
(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.
-
(9)
- The names of the installed AST include files have been changed to upper case.
G.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 Mapping class has a new method (AST_LINEARAPPROX) 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 SkyFrame, or “%.10g” for a simple Frame). 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 Plot 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 DSBSpecFrame. This is a sub-class of SpecFrame which
can be used to describe spectral axes associated with dual sideband spectral data.
-
(5)
- The FitsChan 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 Encoding, “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).
G.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 Region 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 Frame called FluxFrame 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 SpecFluxFrame 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 Mapping called RateMap 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 SkyFrame class now supports a value of “J2000” for System. 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 KeyMap 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 AST_RATE 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 (AST_SETFITS<X>) have been added to the FitsChan class to allow values for
named keywords to be changed or added.
G.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 SkyFrame 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 Frame.
-
(2)
- The Plot class has a new attribute called Clip which controls the clipping performed by
AST at the plot boundary.
-
(3)
- The keys used to label components of the PolyMap structure when a PolyMap is written
out through a Channel have been changed. The new keys are shorter than the old keys
and so can written succesfully to a FitsChan. 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 ast_link 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.
G.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, TimeFrame and TimeMap. The TimeFrame is a 1-dimensional Frame
which can be used to describe moments in time (either absolute or relative) in various
systems (MJD, Julian Epoch, etc.) and referred to various time scales (TAI, UTC, UT1,
GMST, etc). The TimeMap is a Mapping 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.
G.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 XmlChan 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 Mapping
class. These are flux-conserving alternatives to the existing
AST_RESAMPLE<X>/astResample<X> methods.
G.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_PAR. These
specify kernels for AST_RESAMPLE and AST_REBIN based on the “Sombrero” function (
2∗J1(x)/x
where J1(x)
is the first order Bessel function of the first kind).
-
(3)
- The SkyFrame class now supports a System value of AZEL corresponding to horizon
(azimuth/elevation) coordinates.
-
(4)
- The FitsChan class allows the non-standard strings “AZ–” and “EL–” to be used as axis
types in FITS-WCS CTYPE keyword values.
-
(5)
- The Frame class now has attributes ObsLon and ObsLat to specify the geodetic longitude
and latitude of the observer.
-
(6)
- The ClockLon and ClockLat attributes have been removed from the TimeFrame class.
Likewise, the GeoLon and GeoLat attributes have been removed from the SpecFrame
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 routine AST_MAPSPLIT has been added to the Mapping 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 SkyRefIs 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.
G.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 SideBand attribute of the DSBSpecFrame 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 FitsChan 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
FrameSet from a FITS-WCS encoding.
-
(3)
- The FitsChan class has a new method called AST_RETAINFITS that indicates that the
current card in the FitsChan should not be stripped out of the FitsChan when an AST
Object 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 ObjSize has been added to the base Object Class. 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 Channel.
-
(6)
- A new function AST_TUNE 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 AST_TRANGRID has been added to the Mapping 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 SwitchMap. 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 SelectorMap. A SelectorMap tests each
input position to see if it falls within one of several Regions. If it does, the index of the
Region containing the input position is returned as the Mapping output.
-
(10)
- The behaviour of the AST_CONVERT method when trying to align a CmpFrame with
another Frame 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 SkyFrame with a CmpFrame containing a SkyFrame and a
SpecFrame (for instance). The returned Mapping produces bad values for the extra axes
(i.e. for the SpecFrame axis in the above example).
-
(11)
- The “ast_link_adam” 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.
G.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 AST_GETFITSS function now strips trailing white space from the returned string, if
the original string contains 8 or fewer characters
-
(2)
- The SpecFrame class has a new attribute called SourceSys that specified whether the
SourceVel 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.
G.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 AST_FINDFRAME function can now be used to search a CmpFrame for an instance
of a more specialised class of Frame (SkyFrame, TimeFrame, SpecFrame, DSBSpecFrame
or FluxFrame). That is, if an instance of one of these classes is used as the “template”
when calling AST_FINDFRAME, and the “target” being searched is a CmpFrame (or a
FrameSet 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 Mapping (which will include a PermMap to select the required axes
from the CmpFrame) will be returned by AST_FINDFRAME. Note, for this to work, the
MaxAxes and MinAxes 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 SideBand attributes when aligning two DSBSpecFrames using
AST_CONVERT.
-
(4)
- The Frame class has a new attribute called Dut1 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 ObsLat and ObsLon has been
increased.
-
(6)
- The use of the SkyFrame attribute AlignOffset has been changed. This attribute is used
to control how two SkyFrames are aligned by AST_CONVERT. 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 UnitMap will always be used to align the two
SkyFrames).
-
(7)
- The Plot 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.
G.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 FrameSet supplied
to AST_WRITE 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 AST_PURGEWCS to the FitsChan class. This method
removes all WCS-related header cards from a FitsChan.
-
(4)
- The Plot 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 AST_GRFSET routine.
-
(5)
- Functions registered with the Plot class using AST_GRFSET 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 AST_GRFSET TO BE MODIFIED TO INCLUDE
THE NEW PARAMETER.
-
(6)
- The AST_REBINSEQ routines 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 AST_REBINSEQ. This causes the input
data values to be weighted using the reciprocals of the input variances (if supplied).
-
(9)
- The Frame 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 routine AST_SHOWMESH has been added to the Region 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.
G.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 TimeFrame class now support Local Time as a time scale. The offset from UTC to
Local Time is specified by a new TimeFrame attribute called LTOffset.
-
(2)
- A new class called Plot3D 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 ObsLat
Frame attribute (the geodetic latitude of the observer).
-
(4)
- A bug has been fixed which caused the DUT1 attribute to be ignored by the SkyFrame
class when finding conversions between AZEL and other celestial coordinate systems.
G.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 astLock and astUnlock allow an AST Object to be locked for exclusive use
by a thread.
-
(3)
- The TimeFrame class now support Local Time as a time scale. The offset from UTC to
Local Time is specified by a new TimeFrame attribute called LTOffset.
-
(4)
- The Channel class has a new attribute called Strict 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.
G.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 Prism class has been modified so that any class of Region can be used to define the
extrusion axes. Previously, only a Box or Interval could be used for this purpose.
-
(2)
- Improvements have been made to the way that Prisms are simplified when
AST_SIMPLIFY is called. The changes mean that more types of Prism will now simplify
into a simpler class of Region.
-
(3)
- The PointList class has a new method, AST_POINTS, that copies the axis values from the
PointList into a supplied array.
-
(4)
- The PointList class has a new (read-only) attribute, ListSize, that gives the number of
points stored in the PointList.
-
(5)
- The handling of warnings within different classes of Channel has been rationalised. The
XmlStrict attribute and AST_XMLWARNINGS function have been removed. The same
functionality is now available via the existing Strict attribute (which has had its remit
widened), a new attribute called ReportLevel, and the new AST_WARNINGS function.
This new function can be used on any class of Channel. Teh FitsChan 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 AST_WARNINGS function.
-
(6)
- A new function called AST_INTERCEPT has been added to the Frame class. This function
finds the point of intersection beteeen two geodesic curves.
-
(7)
- 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.
-
(8)
- The AST_PICKAXES 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.
-
(9)
- 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.
-
(10)
- A new function called AST_TESTFITS has been added to the FitsChan class. This function
tests a FitsChan to see if it contains a defined value for specified FITS keyword.
-
(11)
- The AST__UNDEF<X> parameters used to flag undefined FITS keyword values have
been removed. Use the new AST_TESTFITS function instead.
G.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 AST_SETFITSCM has been added to the FitsChan 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 ObsAlt has been added to the Frame 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 TimeMap conversions “TTTOTDB” and “TDBTOTT”, and the SpecMap conversions
“TPF2HL” and “HLF2TP”, now have an additional argument - the observer’s geodetic
altitude.
-
(4)
- The Polygon 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 Channel, called StcsChan, has been added that allows conversion of
suitable AST Objects to and from IVOA STC-S format.
-
(6)
- A new method called AST_REMOVEREGIONS has been added to the Mapping class. It
searches a (possibly compound) Mapping (or Frame) for any instances of the AST Region
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 AST_DOWNSIZE 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 AST_OUTLINE 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 AST_MAPGETELEM<X> has been added to the KeyMap
class. They allow a single element of a vector valued entry to be returned.
-
(10)
- A new attribute called KeyError has been added to the KeyMap Class. It controls whether
the AST_MAPGET... family of functions report an error if an entry with the requested key
does not exist in the KeyMap.
G.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 Frame is aligned with another Frame by the AST_FINDFRAME and
AST_CONVERT 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
Domain values are consistent. For instance, a basic 2-dimensional Frame with Domain
“SKY” will now align succesfully with a SkyFrame, conversion between the two Frames
being achieved using a UnitMap.
-
(2)
- Added method AST_MATCHAXES to the Frame class. This method allows
corresponding axes within two Frames to be identified.
-
(3)
- The AST_ADDFRAME method can now be used to append one or more axes to all
Frames in a FrameSet.
G.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 KeyMap class now supports entries that have undefined values. A new method
called AST_MAPPUTU will store an entry with undefined value in a keymap. Methods
that retrieve values from a KeyMap (AST_MAPGET0<X>, etc.) ignore entries with
undefined values when searching for an entry with a given key.
-
(2)
- The KeyMap class has a new method called AST_MAPCOPY that copies entries from one
KeyMap to another KeyMap.
-
(3)
- The KeyMap class has a new boolean attribute called MapLocked. If .TRUE., 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 .FALSE.
-
(4)
- The Object class has a new method called astHasAttribute/AST_HASATTRIBUTE that
returns a boolean value indicating if a specified Object has a named attribute.
-
(5)
- The SkyFrame 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.
-
(6)
- A bug has been fixed in the AST_REBIN(SEQ) methods that could cause flux to be lost
from the edges of the supplied array.
-
(7)
- A bug has been fixed in the AST_REBIN(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.
-
(8)
- The StcsChan class now ignores case when reading STC-S phrases (except that units
strings are still case sensitive).
-
(9)
- A new Mapping method, AST_QUADAPPROX, produces a quadratic least-squares fit to
a 2D Mapping.
-
(10)
- A new Mapping method, AST_SKYOFFSETMAP, produces a Mapping from absolute
SkyFrame coordinates to offset SkyFrame coordinates.
-
(11)
- The Channel class now has an Indent attribute that controls indentation in the text created
by AST_WRITE. The StcsIndent and XmlIndent attributes have been removed.
-
(12)
- 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”
).
-
(13)
- 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”
).
-
(14)
- The KeyMap class has a new method called AST_MAPPUTELEM<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.
-
(15)
- The DSBSpecFrame class now reports an error if the local oscillator frequency is less than
the absoliute value of the intermediate frequency.
G.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 FitsChan class that could cause wavelength axes to be
assigned the units “m/s” when reading WCS information from a FITS header.
-
(2)
- The AST_SET routine 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 FrameSet being read by astRead.
-
(4)
- The KeyMap class has a new attribute called “SortBy”. It controls the order in which keys
are returned by the AST_MAPKEY 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. INTEGER*2) values.
G.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 FitsChan 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 TabOK. See the documentation for TabOK
for more information.
-
(2)
- A new class called “Table” has been added. A Table is a KeyMap in which each entry
represents a cell in a two-dimensional table.
-
(3)
- A new class called “FitsTable” 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 BYTE.
-
(5)
- KeyMaps have a new attribute called KeyCase that can be set to zero to make the handling
of keys case insensitive.
-
(6)
- a memory leak associated with the use of the AST_MAPPUTELEM<X> functions has
been fixed.
-
(7)
- A new method called AST_MAPRENAME has been added to rename existing entry in a
KeyMap.
G.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 FitsChan “TabOK” attribute is now an integer value rather than a boolean value. If
TabOK is set to a non-zero positive integer before invoking the AST_WRITE 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
AST_WRITE or AST_READ methods.
G.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 routines AST_BBUF and AST_EBUF have been added to the Plot 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 ast_link 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
routines AST_BBUF and AST_EBUF 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 AST_GETREGIONMESH returns a set of positions covering the boundary,
or volume, of a supplied Region.
G.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
Table.
-
(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 AST_FINDFRAME method that allowed a template Frame of
a more specialised class to match a target frame of a less specialised class. For example,
this bug would allow a template SkyFrame to match a target Frame. This no longer
happens.
G.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 FitsChan 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 PolyTan 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 PolyMap class now provides a method called AST_POLYTRAN 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.
G.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 Channel 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 SourceFile and SinkFile.
-
(2)
- - The FitsChan class now ignores trailing spaces in character-valued WCS keywords when
reading a FrameSet from a FITS header.
-
(3)
- - If the FitsChan astRead 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
PolyMap class to create an estimate of the inverse polynomial correction.
G.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 PolyMap 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.
-
(2)
- The FitsChan class has a new method AST_WRITEFITS which writes out all cards
currently in the FitsChan to the associated external data sink (specified either by the
SinkFile attribute or the sink function supplied when the FitsChan was created), and then
empties the FitsChan.
-
(3)
- The FitsChan class has a new read-only attribute called “Nkey”, which holds the number
of keywords for which values are held in a FitsChan.
-
(4)
- The FitsChan AST_GETFITS<X> methods can now be used to returned the value of the
current card.
-
(5)
- The FitsChan class has a new read-only attribute called “CardType”, which holds the data
type of the keyword value for the current card.
-
(6)
- The FitsChan class has a new method AST_READFITS which forces the FitsChan to reads
cards from the associated external source and appends them to the end of the FitsChan.
-
(7)
- - If the FitsChan astRead 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.
G.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 FitsChan 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 Plot 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 routine AST_TUNEC.
G.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 FitsChan 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 AlignSystem attribute is set.
-
(3)
- The versioning string for AST has changed from “<major>.<minor>−<release>”
to “<major>.<minor>.<release>”.
G.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.
G.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.
G.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.
G.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 CmpFrame have been
permuted.
-
(2)
- A bug has been fixed in the SkyFrame class that could cause the two values of the SkyRef
and/or SkyRefP attributes to be reversed.
-
(3)
- Bugs have been fixed in the CmpRegion class that should allow the border around
a compound Region 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 Plot3D 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.
G.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.
G.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 FitsChan 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.
G.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 FrameSet from a FITS-DSS header, the keywords CNPIX1 and CNPIX2
now default to zero if absent. Previously an error was reported.
G.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
AST_REBINSEQ<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 AST_ADDFRAME routine that could result in the incorrect
inversion of Mappings within the FrameSet when the AST__ALLFRAMES flag is
supplied for the IFRAME argument.
-
(4)
- The AST_RATE function has been re-written to make it faster and more reliable.
G.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 FitsChan is used to write an “offset” SkyFrame (see attribute SkyRefIs) 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 FrameSet to FITS-WCS headers if the current Frame describes generalised
spherical coordinates (i.e. a SkyFrame with System=Unknown).
G.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 AST_MAPDEFINED has been added to the KeyMap class. It checks
if a gtiven key name has a defined value in a given KeyMap.
G.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 AST_REBINSEQ<X> family of routines has been changed in order
to allow a greater number of pixels to be pasted into the output array. The NUSED
parameter is now an INTEGER*8 variable, instead of an INTEGER. APPLICATION
CODE SHOULD BE CHANGED ACCORDINGLY TO AVOID SEGMENTATION
FAULTS AND OTHER ERRATIC BEHAVIOUR.
-
(2)
- Added a new facility to the FrameSet class to allow each Frame 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 Mapping to use is controlled by the new
“Variant” attribute of the FrameSet class.
-
(3)
- Mappings (but not Frames) that have a value set for their Ident attribute are now left
unchanged by the c astSimplify function. f AST_SIMPLIFY routine.
G.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.
G.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 KeyMap class has new sorting options “KeyAgeUp” and “KeyAgeDown” that retain
the position of an existing entry if its value is changed. See the SortBy attribute.
-
(3)
- A bug has been fixed in the FitsChan 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.
G.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 FitsChan class has new attributes CardName and CardComm, 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.
G.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, SimpVertices, can be set to zero in order to re-instate
this check.
-
(2)
- The Polygon class has a new mathod, AST_CONVEX, that returns a Polygon representing
the shortest polygon (i.e. convex hull) enclosing a specified set of pixel values within a
supplied array.
G.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 PolyMap 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.
G.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 Base and Current attributes of a FrameSet may now be set using the Domain name
or the index of the required Frame.
-
(2)
- The order of WCS axes within new FITS-WCS headers created by astWrite can now be
controlled using a new attribute called FitsAxisOrder.
-
(3)
- Supported added for FITS XPH (polar HEALPIX) projection.
-
(4)
- The AST_REBIN and AST_REBINSEQ family of functions now include support for arrays
with _BYTE (byte) and and _UBYTE (unsigned byte) data types.
G.63 Changes Introduced in V8.0.2
The changes that occurred in the AST library between versions V8.0.1 and V8.0.2 only affect the C
interface. The Fortran interface remains the same as V8.0.1.
G.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 AST_REBIN, AST_REBINSEQ, AST_RESAMPLE and AST_TRANGRID. 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)
- Trailing spaces supplied within attribute setting strings are now ignored.
G.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 AST_ADDFRAME method has been changed slightly. Previously,
AST_ADDFRAME modified the FrameSet by storing references to the supplied Mapping
and Frame 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 AST_REGIONOUTLINE has been added to the Plot class. It draws
the outline of a supplied AST Region.
-
(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 SkyFrame 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 LutMap class has a new attribute called LutEpsilon, 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.
G.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 SkyFrame class has a new attribute called SkyTol, which specifies the smallest
significant distance within the SkyFrame. It is used to decide if the Mapping 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 FitsChan 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 “Warnings” and routine
“AST_WARNINGS”.
G.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.
G.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 Mapping called UnitNormMap 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: GrismMap, LutMap, PcdMap,
SphMap, WcsMap and ZoomMap.
G.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 AST_AXNORM has been added to the Frame 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 Fortran include file AST_PAR that caused constants related to
π
to be defined as single rather than double precision.
-
(3)
- A bug has been fixed in the astGetRegionBounds method that could cause the wrong
bounds to be returned for regions spanning a longitude = zero singularity.
G.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 NormMap.
-
(3)
- A NormMap that encapsulates a basic Frame will now be simplified to a UnitMap.
-
(4)
- The AST_TIMEADD method of the TimeMap 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 AST_SLAADD method of the SlaMap 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 AST_SPECADD method of the SpecMap 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 AST_MAPREGION method is used to map a Region into a new Frame that has
fewer axes than the original Region, and if the inverse transformation of the supplied
Mapping 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.
G.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 Mapping called ChebyMap has been added. This is a Mapping that
implements Chebyshev polynomial transformations.
-
(2)
- A bug has been fixed in the PolyMap class that caused incorrect values to be returned for
the TranForward and TranInverse attributes if the PolyMap has been inverted.
-
(3)
- The KeyMap class has a new method called AST_MAPGETC 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 routine that delivers error messages to the user (AST_PUTERR) is re-implemented,
the new version can now be registered at run-time using the new AST_SETPUTERR
routine. Previously, the new version needed to be linked into the application at build
time.
-
(5)
- The Frame 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 Epoch 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 TimeMap class has been changed so that some conversions now require a “Dtai”
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.
G.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 astLinearApprox method of the Mapping 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 astWrite method of the FitsChan 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 SipOK attribute of the FitsChan is set to a non-zero
value (which is the default), and the FrameSet being written out contains an appropriate
PolyMap that conforms to the requirements of the SIP convention.
-
(4)
- A new function call astCreatedAt 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 astAddFrame, it now extracts and
stores the base->current Mapping from the supplied FrameSet. Previously, the entire
FrameSet was stored as the Mapping.
G.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 Region and FitsChan 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 Mapping 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.
G.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 Region class has a new method called astGetRegionDisc, which returns the centre
and radius of a disc that just encloses a 2-dimensional Region.
-
(2)
- A new subclass of Region called “Moc” has been added. A Moc describes an arbitrary
region of the sky in the form of a set of HEALPix cells.
-
(3)
- The Bounded attribute defined by the Region class is now always non-zero for Regions
defined within a SkyFrame, 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.
G.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 Moc class now supports version 1.1 of the the MOC recommendation. This includes
new support for string and JSON encoded MOCs. See methods astGetMocString and
astAddMocString in the Moc class, and also the new MocChan class.
-
(2)
- The FitsChan class will now read FITS-WCS headers that have alternate axis descriptions
but no primary axis descriptions.
G.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
.
G.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 AST_RESAMPLE and AST_MASK 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.
G.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 FitsChan class has a new attribute called ForceTab, which is used in conjunction with
the TabOK attribute to force the use of the “-TAB” algorithm when writing a FrameSet
out using the FITS-WCS encoding.
G.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 TimeFrame class that caused the time returned by
astCurrentTime to be wrong by 37 seconds.
-
(3)
- The Region class has a new convenience method (astPointInRegion) to test a if a single
point is inside a Region.
G.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 FitsChan 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.
G.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 KeyMap class has a new method called astMapCopyEntry that can be used to copy
a single entry from one KeyMap to another.
-
(2)
- The AST_SIMPLIFY method now prefers ShiftMaps over equivalent WinMaps.
-
(3)
- The AST_SIMPLIFY method will now merge WinMaps with neighbouring diagonal
MatrixMaps.
G.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 Channel called YamlChan 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.
G.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 astWrite method of the FitsChan class
producing FITS-WCS headers describing alternate axes for some of the Frames in the
supplied FrameSet. Consequently, the headers produced by astWrite may now include
alternate axis descriptions that were not present previously. These can be supressed using
the new AltAxes 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 KeyMap class now supports 64 bit integer (INTEGER∗8)
entries, represented by the new data type code “K”.
-
(4)
- Two simplification bugs introduced at V9.2.0 have been fixed.
-
(5)
- The YamlChan class now supports AST “native” encoding.
G.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 astNormPoints has been added to the Frame class. This is similar
to the existing astNorm 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 astGetRegionMesh and astShowMesh 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 KeyMap 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.
G.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 FitsChan 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.
G.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 FitsChan class has a new attribute called FitsRounding, 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.
G.87 Changes Introduced in V9.2.8
The following describes the most significant changes which have occurred in the AST library between
versions V9.2.7 and V9.2.8 (the current version):
-
(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.
Programs which are statically linked will need to be re-linked in order to take advantage of these new
facilities.
Copyright (C) 2021 East Asian Observatory
- ←Prev
- AST
A Library for Handling
World Coordinate
Systems
in Astronomy -
- TOC ↑