[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