[fitsbits] WCSLIB 4.3
Mark Calabretta
mcalabre at atnf.CSIRO.AU
Wed Feb 27 20:49:32 EST 2008
Greetings,
WCSLIB 4.3 is now available from http://www.atnf.csiro.au/~mcalabre.
The main developments in this release are:
* A new general WCS header parser wcsbth() handles binary table
image arrays and pixel lists as well as image array headers.
* New function wcshdo() writes out a wcsprm struct as a FITS header.
* Utility programs now supplied with WCSLIB:
- fitshdr: List headers from a FITS file specified on the command
line, or else on stdin, printing them as 80-character keyrecords
without trailing blanks. (Independent of any third-party
libraries.)
- wcsgrid: extract the WCS keywords from the image header of a
specified FITS file and use pgsbox() to plot a 2-D coordinate
graticule for it. (Uses WCSLIB and cfitsio.)
- HPXcvt: reorganize HEALPix data into a 2-D FITS image with HPX
coordinate system. The input data may be stored in a FITS file
as a primary image or image extension, or as a binary table
extension. Both NESTED and RING pixel indices are supported.
(Uses cfitsio, independent of WCSLIB.)
* Improved autoconf installation, particularly for Fortran, MacOSX,
64-bit systems, Flex, and shared library generation.
* Miscellaneous bug fixes of varying degrees of importance (see
below).
* Licensing reverts to LGPL 3.0 (previously GPL 2.x).
Change notes for the C library are appended. Refer also to the change
notes for the Fortran and PGSBOX modules in the distribution itself.
Mark Calabretta
ATNF
>>>
WCSLIB version 4.3 (2007/12/27)
-------------------------------
* A new general WCS header parser wcsbth() handles binary table image arrays
and pixel lists as well as image array headers. Added "colax" to the wcsprm
struct to record the column numbers for each axis in a pixel list.
* New function wcsbdx() is the analog of wcsidx() for the array of wcsprm
structs returned by wcsbth().
* New function wcshdo() writes out a wcsprm struct as a FITS header.
* Changes to wcspih():
- Bug fix, check for a == 0 (indication of a keyword that applies to
all alternates) in internal helper function wcspih_naxes() (reported by
Craig Markwardt).
- Added a new ctrl option to remove valid WCS keyrecords except for those
with a more general role, namely {DATE,MJD}-{OBS,AVG} and OBSGEO-{X,Y,Z}
(suggested by Jim Lewis).
- Added a rule for VELANGLa. Also added "velangl" to the wcsprm struct.
- Do checks on the i, k & m keyword parameters in <VALUE>.
- Fixed the test for repeated blanks in the NAXIS and WCSAXES patterns.
- Fixed three <CCi_ma> rules to allow m == 0.
- Reworked the implementation notes in the prologue.
* The flex scanners, fitshdr.l, wcsbth.l, wcspih.l, wcsulex.l, and wcsutrn.l,
invoke yylex_destroy() before returning to avoid a 16kiB memory leak. This
was reported by several people, however it may be problematic depending on
the version of flex used - version 2.5.9 or later is required. If this is
not available C sources pre-generated by flex 2.5.33 will be used.
* In wcs.c, don't define the signbit macro if already defined (for MacOSX).
* In wcs.h, documented wtbarr namespace issues in C++.
* In wcsset(), always set wcsprm.cunit[i], if possible (primarily for use by
wcshdo()).
* In wcsfix.c, parenthesised a boolean expression that was otherwise
incorrect.
* Fixed an obscure floating point rounding error in celset() that appeared
with -O2 optimization in gcc v3.3.5 (Linux).
* prjset() now correctly propagates the status value returned by the specific
projection-setting functions (reported by Bill Pence).
* Bug fix in hpxx2s(), also added bounds checking. Minor efficiencies in
carx2s() and merx2s().
* In the various functions that print the contents of the structs, use the
"%p" printf conversion specifier to print addresses rather than casting the
pointer to int and using "#x". The latter does not work on 64-bit machines
where sizeof(int) != sizeof(void*).
* Reorganized the various structs to get alignment on 64-bit machines.
* General: in comment text, replaced use of the obsolete term "card" with
"keyrecord" which consists of a "keyword" followed by a "keyvalue" and
optional "keycomment". All header file prologues now reference the README
file for an overview of the library.
* Miscellaneous portability fixes for 64-bit, MacOSX, OSF compiler, etc.
* Elimination of compiler warnings, e.g. parenthesised assignments used as
truth values (a favourite gcc gripe!), etc.
* General improvements to the makefile for portability, including rules for
processing flex descriptions, and not relying on "." being in the PATH when
running tests.
* Process flex descriptions using a newer version of flex, primarily for
MacOSX. However, the processed files are now only used when flex 2.5.9 or
later is not available.
* Added rules to the makefile for building the shared library.
* Removed WCSLIB 2.x backwards-compatibility measures from lin.h, prj.h,
prj.c, and sph.h.
* Switched licensing to LGPL 3.0.
More information about the fitsbits
mailing list