* Wed Nov 10 2021 Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to version 7.7, for details see:
https://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES
- Remove workarounds for gfortran 10/11
- Add 0001-Fix-utils-tofits-location-in-Fortran-GNUmakefile.patch
* Wed Jun 16 2021 Asterios Dramis <asterios.dramis@gmail.com>
- Update to version 7.6:
* C library
- Bug fix in tabs2x() triggered for 1-dimensional coordinate
lookup tables on axes > 1. Reported by Mihai Cara.
- In datfix(), don't return status 0 if no change was made (fix
for change made at release 7.4). Reported by Derek Homeier.
- New function wcspcx() in the wcsfix suite regularizes the
linear transformation component of a coordinate description
to make it more human-readable. It decomposes CDi_ja into
PCi_ja and CDELTia in such a way that CDELTia forms
meaningful scaling parameters, often leaving an orthogonal or
near-orthogonal matrix. Optionally, it can then permute rows
of this matrix to unscramble axis permutations.
A test header may be generated from wcspcx.keyrec for input
to wcsware (not exercised as part of the standard test
suite).
- New function wcstrim() frees memory allocated by wcsinit()
for arrays in a wcsprm struct that remain unused after the
struct has been set up.
- New functions wcssize(), auxsize(), tabsize(), linsize(),
dissize(), celsize(), prjsize(), spcsize(), and wcserr_size()
compute the total size of the relevant structs, including
allocated memory.
- In the C test suite, inserted a brief pause in tprj2 and
tspc, which otherwise have now become a blur.
* Fortran wrappers
- Added wrappers for wcspcx(), wcstrim(), wcssize(), auxsize(),
tabsize(), linsize(), dissize(), celsize(), prjsize(),
spcsize(), and wcserr_size().
* Utilities
- Added -c, -cp, -C, and -Cp options to wcsware to apply
wcspcx() in a variety of ways, -m to apply wcstrim(), and -z
to report the total size of the wcsprm struct with a
breakdown of the sizes of its constituent structs.
- Fixed compiler warnings for sundazel (portability issue).
* Installation
- Upped the required version of Flex to 2.6.0 (was 2.5.9).
Problems with Flex 2.5.39 reported by Derek Homeier.
Also added '--disable-flex' as a new configure option to
force the use of the pre-generated Flex sources.
From version 7.5:
* The C code in WCSLIB is moving piecemeal to the C99 standard.
In fact, various indispensible C99 constructs have been used in
WCSLIB for many years: the long long int data type (in
fitshdr() only); stdint.h, inttypes.h, and the use of PRI
formatting control (in wcsprintf(), which is widely used by the
library); and the C99-extended library function vsnprintf()
(used by wcserr for a decade). Flex-generated C code also uses
C99 extensions, though with workarounds if they are not
available.
Except in the header prologues, which are formatted in a special
way for generating the user manual, comments were changed en
masse to C99 style in release 7.3.1, and variable declarations
in code that I have occasion to modify will transition to the
more general placement allowed by C99. However, there are no
plans to use any of the more esoteric features of C99.
* C library
- New function, wcsccs(), changes the celestial coordinate
system of a wcsprm struct, for example, from equatorial to
galactic coordinates. The parameters that define the
spherical coordinate transformation must be provided. This
allows WCSLIB to provide this functionality without needing
to know anything about specific celestial coordinate systems,
and has the advantage of making the routine completely
general. Requested by Mohammad Akhlaghi.
Modified test program twcsfix also to test wcsccs().
- Fixed a problem common to all of the Flex code (fitshdr,
wcsbth, wcspih, wcsulex, and wcsutrn) that made it
thread-unsafe. Reported by Cyril Richard.
Added a new test program, tpthreads, to test thread safety.
It is only used for code development, and not exercised as
part of the standard test suite.
- In fitshdr(), fixed a problem that potentially could arise on
systems where sizeof(long long int) is greater than 8 (64
bits).
* Fortran wrappers
- Match changes to the C library: added a wrapper for wcsccs(),
and modified twcsfix.f.
- Because null addresses cannot be passed to functions in
Fortran, wcssub_() now interprets *nsub == -1 && *axes == -1
as a signal to do a deep copy of one wcsprm struct to
another.
* Utilities
- New utility, sundazel, computes the local time of the Sun's
passage through the specified apparent longitude or latitude
in a user-defined coordinate system. It can also perform
several other Solar related calculations. (It is unrelated
to FITS WCS, and does not use WCSLIB.)
* Installation
- Added an 'uninstall' rule to the makefiles. Suggested by
Cyril Richard.
* Mon Mar 01 2021 Asterios Dramis <asterios.dramis@gmail.com>
- Update to version 7.4:
* C library
- In wcshdo(), fixed a bug introduced in release 5.9 that
potentially caused loss of numerical precision in the
sprintf() formatting of floating point keyvalues. This was
triggered when a large range of CRPIXja, PCi_ja, or CDELTia
values (as three separate groups) were formatted using an 'f''
format descriptor, the range not being so large that it would
have forced wcshdo() to revert to 'E' format. Reported by
Mohammad Akhlaghi.
Also in wcshdo(), fixed a bug introduced in release 7.1 that
caused the coefficients of the TPD distortion function not to
be written to the header. TPD and Polynomial distortion
function headers will now always include the DPja.DOCORR
keyword. Reported by Derek Homeier with patch.
- In wcsset(), fixed a segv generated in attempting to report a
non-standard units string with wcserr message reporting
disabled. Reported by Mohammad Akhlaghi.
In wcsutrne(), allow 'Angstroms' and 'angstroms' as
additional synonyms for 'Angstrom'.
- In datfix(), ensure that 0 is returned if an informational
message is set in wcsprm::err. Consequent on feedback
independently from Mihai Cara and Bruce Merry.
Clarified that informational messages may be set in
wcsprm::err for returns of 0 from datfix(), obsfix(),
unitfix(), and spcfix().
* User manual
- Added cautions about translating CDi_ja to PCi_ja plus
CDELTia for those historical distortion functions (TPV, TNX,
ZPX) that expect to operate on intermediate world
coordinates, rather than intermediate pixel coordinates.
Consequent on feedback from Mohammad Akhlaghi.
- Documentation generation moved to doxygen 1.9.1 (was 1.8.19).
Version: 7.3.1-bp153.1.7
* Tue Sep 01 2020 Dirk Mueller <dmueller@suse.com>
- update to 7.3.1:
* There are no functional changes in this release.
- Changed all C code, including within the flex sources, Fortran and
PGSBOX wrappers, and test suite, to use C99 style commenting (i.e.
using //), excluding the header prologues used to generate the user
manual.
- Documentation generation moved to doxygen 1.8.19 (was 1.8.18).
* Mon Jul 06 2020 Benjamin Greiner <code@bnavigator.de>
- Update to version 7.3
* C library
- wcshdo() was writing MJD-OBS twice to the header, and
MJD-BEG not at all.
- In wcshdo(), if MJDREF assumes its default value, just write
MJDREF = 0 (not MJDREFI & MJDREFF), and omit writing DATEREF,
which, with a value of '1858-11-17', looks strange and is
potentially confusing. Reported by Thomas Robitaille.
If the fractional part of MJDREF is zero, then just write the
integer part as MJDREF (i.e. not as MJDREFI & MJDREFF).
- Bug fix in wcsfix() - it was writing error messages that
referred to DATE-REF and MJD-REF rather then DATEREF and
MJDREF. Reported by Mihai Cara.
- Under control of a new flag, WCSHDR_DATEREF, added the option
to wcspih() and wcsbth() to accept DATE-REF, MJD-REF,
MJD-REFI, MJD-REFF, JDREF, JD-REFI, and JD-REFF as synonyms
for the standard keywords, DATEREF, MJDREF, MJDREFI, MJDREFF,
JDREF, JDREFI, and JDREFF. The latter buck the pattern set
by the other date keywords ({DATE,MJD}-{OBS,BEG,AVG,END}),
thereby increasing the potential for confusion and error.
* Fortran wrappers
- As compilers are becoming much stricter (gfortran 10),
modified all Fortran test programs to use the type-specific
equivalents of the various *PUT and *GET routines.
Reported by Ole Streicher.
- For the fitshdr wrappers, added type-specific equivalents
of KEYGET: KEYGTI, KEYGTD, and KEYGTC.
* PGSBOX
- Modified pgtest to use the type-specific equivalents of
WCSPUT.
* User manual
- In the section "WCSLIB Fortran wrappers", promoted use of
the type-specific equivalents of the various *PUT and *GET
routines.
- In the section "FITS-WCS and related software", added ASCL
and ADS codes, where they exist, for all software packages
mentioned.
- Documentation generation moved to doxygen 1.8.18
(was 1.8.17).
- Allow fortran argument mismatches in rank and type to pass the
tests.
* Tue Jun 02 2020 Asterios Dramis <asterios.dramis@gmail.com>
- Update to version 7.2:
* C library
- In wcssub(), fixed a bug relating to handling coordinate
lookup tables. Reported by Mihai Cara with fix.
Also increased the number of coordinate axes handled from
10 to 32.
* Installation
- New configure option, --disable-shared, defeats generation
of the sharable library.
Version 7.1:
Changes in the contents of the wcsprm struct necessitated
incrementing the major version number from 6 to 7 (i.e. the
ABI changed).
* C library
- In wcsset(), set wcsprm::mjdref[] to zero if neither it nor
wcsprm::dateref are defined, as per the standard. Reported
by Thomas Robitaille.
wcsset() now also checks that the number of coordinate axes
does not exceed 32.
- In tabs2x(), fixed an out-of-bounds array access produced
by invalid world coordinates. Reported by Mihai Cara and
Michael Seifert.
In tab.c, declare static three helper functions, tabedge(),
tabrow(), and tabvox(), used by tabs2x(). Increased the
number of coordinate axes handled by tabvox() from 16 to
32.
- Extended datfix() to handle MJDREF/DATEREF, overlooked in
the changes in release 6.1. Also fixed the handling of
MJD < 0.
- Support Solar keywords RSUN_REF, DSUN_OBS, CRLN_OBS,
CRLT_OBS, HGLN_OBS, and HGLT_OBS by accomodating them
within an auxiliary struct, auxprm, within the wcsprm
struct. Now filled by the header parsers, wcspih() and
wcsbth() and handled routinely by wcsinit(), wcssub(),
wcscompare(), wcsfree(), wcsprt(), wcsset(), and wcshdo().
Requested by Stuart Mumford (SunPy) with input from Bill
Thompson.
- Bug fix in wcsprintf_set() for resetting the output
disposition.
Reported by Mihai Cara with patch.
- In dis.{h,c}, the DOCORR record is now handled as a
first-class value via disprm::docorr. This required
changing the struct.
- In cel.c, spc.c, wcserr.c, wcsfix.c, wcshdr.c, and
wcsutil.c, quelled compiler warnings from gcc 9.2.0
generated by
- Wmaybe-uninitialized and -Wstringop-truncation (via
- Wall).
Similarly for various programs in the test suite.
- In various functions, quelled warnings from the Microsoft
Visual C++ compiler, mostly relating to pointer arithmetic.
Reported by Michael Seifert.
* Fortran wrappers
- Handled compiler warnings from gcc 9.2.0 generated by
- Wstringop-truncation (via -Wall).
- Minor enhancements to character argument handling,
including, in prjget_(), blank-filling the returned strings
matching PRJ_CODE and PRJ_NAME, and likewise for SPC_TYPE
and SPC_CODE in spcget_().
* Utilities
- In wcsgrid, handled compiler warnings from gcc 9.2.0
generated by -Wstringop-truncation (via -Wall).
* User manual
- In the section on "FITS-WCS and related software", added
mention of the R wrappers (Rwcs). Suggested by Aaron
Robotham.
- Added a new section detailing the limit on the number of
image axes that WCSLIB can handle (currently 32), and how
this could be increased if needed. Prompted by Thomas
Robitaille.
- Augmented the section on the Fortran wrappers, particularly
with respect to character string handling in argument
lists.
- Documentation generation moved to doxygen 1.8.17 (was
1.8.16).
* Sun Nov 10 2019 Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to version 6.4 (2019/08/15):
* Installation
- The rule change to the Fortran makefile in v6.3 to add getwcstab_f.o
to the sharable library causes it to depend on CFITSIO to resolve
fits_get_wcstab(). Hence backed out of that change.
* User manual
- Documentation generation moved to doxygen 1.8.16 (was 1.8.14).
- Update to version 6.3 (2019/07/12)
* C library
- Fixed the Polynomial and TPD distortions so that, as stipulated in
WCS Paper IV, they are now considered to return an additive
correction to be applied to the given coordinates, rather than the
corrected coordinates themselves.
Added a new subsection to the prologue of dis.h entitled 'Historical
idiosyncrasies', which discusses this issue and other vagueries.
Amended components of the test suite accordingly: SIPTPV.keyrec,
TPV7.keyrec, and tdis1.c.
- Fixed memory leaks and other potential problems that arose in the
wcserr system consequent on changes made in release 6.1.
Memory allocated by wcsfixi() for messages in the array of wcserr
structs must now be freed by the caller. Amended twcsfix.c
accordingly.
- Plugged memory leaks arising in disset().
- New function wcsdealloc() provided to free memory allocated within
certain WCSLIB routines. Suggested by David Motl.
- Eliminated a swag of inconsequential compiler warnings, particularly
those emanating from the flex sources.
* Validation
- The library, Fortran wrappers, utilities, and test programs now pass
runtime analysis using -fsanitize=address and -fsanitize=undefined
in gcc 8.3.0, in addition to valgrind. Also compile-time strictures
using -std=c99, -pedantic, -Wall, -Wextra, and -DFORTIFY_SOURCE=2.
Prompted by feedback from Ole Streicher.
* Installation
- The non-graphical tests now run reliably in parallel builds
(make CHECK=nopgplot -j8 check). Requested by Mohammed Akhlaghi.
The graphical tests can also be run in parallel, but as PGPLOT can
only handle one stream at a time, some graphics are likely to be
lost. Nevertheless, it is a useful option, especially with runtime
analysis via -fsanitize=address, etc.
- As CFITSIO doesn't provide a Fortran wrapper for fits_read_wcstab(),
getwcstab_f.o is now always included in the WCSLIB object library
and sharable library if CFITSIO is available (and the WCSLIB Fortran
wrappers are required). Use 'configure --without-cfitsio' to
defeat this.
- Tidied up some aspects of the build where CFITSIO is not available.
* User manual
- Fixed minor formatting problems in dis.h.
* Mon Dec 03 2018 Asterios Dramis <asterios.dramis@gmail.com>
- Update to version 6.2:
* C library
- Consequent on the change in release 6.1, reapplied soothing
balm to the wtbarr struct definition in wcs.h for C++
compilation (C and Fortran compilation being unaffected).
While the object libraries themselves are unchanged, the
modified wcs.h must be installed for compiling C++
applications.
* User manual
- Fixed minor formatting problems with the doxygen manual
generation.
From version 6.1:
* C library
- Added support for time-related WCS keywords (Paper VII) by
expanding the wcsprm struct to store them as auxiliary
values, now filled by the header parsers, wcspih() and
wcsbth() and handled routinely by wcsinit(), wcssub(),
wcscompare(), wcsfree(), wcsprt(), wcsset(), and wcshdo().
- Augmented datfix() to do various consistency checks on the
new time-related keyvalues, and added a new routine,
obsfix(), to check consistency of the OBSGEO-[XYZLBH]
observatory coordinates.
- In the usage notes for wcsbth(), clarified that, according to
WCS Papers III and VII, certain global image header keywords
are permitted in binary table headers and are expected to be
inherited by image arrays and pixel lists, and elaborated on
the difficulties that such inheritance may cause for pixel
lists.
- Revamped message string handling in the wcserr module to
allow arbitrarily long messages while greatly reducing the
sizeof the struct.
- Extracted the definition of the wtbarr struct from wcs.h to a
separate header file, wtbarr.h, in order to reduce the number
of irrelevant warnings generated by 'gcc -Wpadded' (primarily
for code development). Applications code that needs to
access members of the struct (unlikely) must now include
wtbarr.h (or wcslib.h).
- The WCSLIB major version number was incremented as changes to
the wcsprm struct makes the ABI of the sharable library
incompatible with executables linked with that of older
releases.
* Installation
- Several changes to configure and the makefiles aimed at
facilitating code development.
* Fortran wrappers
- Match changes to the C library, including adding a wrapper
for obsfix().
From version 5.20:
* C library
- Added utility functions dpkeyi() and dpkeyd() to dis.c, and
removed the corresponding functions from wcsutil.c.
* Installation
- Reworked the makefiles to allow parallel library builds, as
required by some software distributions. (Parallel execution
of the test suite is not supported.)
- The introduction of "deterministic" archiving (ar(1)) broke
dependency analysis in the WCSLIB makefiles on the many
systems where it is now enabled by default (i.e. binutils
configured with --enable-deterministic-archives).
Modified configure to force non-deterministic archiving
during the library builds, thus repairing the dependency
analysis. However, the static object libraries are now
reconstructed using deterministic archiving in the process of
installing them.
- Fixed problems with the dependency analysis, solely affecting
code development.
* Fortran wrappers
- New wrappers for dpkeyi() and dpkeyd().
From version 5.19.1:
* Installation
- Updated ./config/config.{guess,sub} to the latest versions
from the GIT repository, timestamped 2018-07-18 and
2018-07-25, respectively. The previous pair were dated
2012-02-10 and 2012-04-18.
From version 5.19:
* C library
- In wcssub(), fixed a bug in handling distortion functions on
axes with changed axis number in the subimage (i.e. via
deletion or addition of an axis).
- In various routines within dis.c, wcs.c, wcshdr.c, and
wcspih.l, increased the size of various sprintf() output
buffers to avert -Wformat-overflow warnings from gcc 8.1.0
(with -DFORTIFY_SOURCE=2).
Also fixed other warnings in these routines from gcc 8.1.0
relating to -Wcast-function-type, -Wmaybe-uninitialized, and
- Wunused-parameter.
- In wcsutrn.l (the units alias translator used by wcsfix),
recognise 'Deg', 'Degree', and 'Degrees' as aliases for
'deg'.
- Added a note to the prologue of spx.h explaining WCSLIB's use
of Cox's air-to-vacuum transformation equation rather than
the IUGG relation cited in WCS Paper III.
- In the test suite, avert nuisance compiler warnings in tdis1.
Made tsphdpa more robust in handling user coordinate input.
* PGSBOX
- In pgwcsl_(), avert nuisance warnings from gcc 8.1.0 relating
to unused parameters (-Wunused-parameter). Also averted
nuisance compiler warnings in cpgtest.
* Utilities
- wcsware was not reading the -TAB table from the FITS file for
alternate descriptions. Nor was wcsfix() ever invoked for
them.
Made it more robust in handling user input of coordinates for
the -x and -w options.
- Fixed compiler warnings from gcc 8.1.0 in HPXcvt
(-Wmaybe-uninitialized), and wcsgrid (-Wformat-overflow).
* Installation
- Amended configure.ac to allow cross-compilation, and also
updated the auxiliary configure scripts in the config/
directory.
Version: 5.18-bp150.2.4
* Fri Feb 09 2018 asterios.dramis@gmail.com
- Update to version 5.18:
* C library
- New routines introduced to preclude altering the global
variables NPVMAX, NPSMAX, and NDPMAX, which determine how
much memory to allocate for storing PVi_ma, PSi_ma, DPja, and
DQia keyvalues: wcsinit(), lininit(), lindist(), and
disinit(). These are now used by various WCSLIB routines,
such as the header parsers, which previously temporarily
altered the global variables, thus posing a thread hazard.
- The Flex scanners, fitshdr(), wcsbth(), wcspih(), wcsulexe(),
and wcsutrne(), have been rewritten as thin wrappers (with
the same API) over scanners that were modified (with changed
API) as required to use Flex's "reentrant" option.
Consequently, they are now reentrant and should be
thread-safe. That also passes through to the deprecated
wrappers, wcsulex() and wcsutrn().
- Fixed memory leaks in lindist() and lincpy() uncovered by
valgrind.
- Test programs tfitshdr, tpih1, tpih2, and ttab3 are now
careful to free all allocated memory before exit to defeat
spurious reports of memory leaks by valgrind.
* Fortran wrappers
- New wrappers for wcsinit(), lininit(), lindist(), and
disinit().
* User manual
- Updates and amendments in line with the above changes.
- Documentation generation moved to doxygen 1.8.14
(was 1.8.13).
From version 5.17:
* C library
- Fixed a memory leak in wcspih().
- Fixed compiler warnings about comparison between signed and
unsigned integers in tab.c. Also fixed warnings in other
functions about unused parameters.
* Fortran wrappers
- Fixed compiler warnings about comparison between signed and
unsigned integers in several routines.
* PGSBOX
- Fixed a compiler warning about comparison between signed and
unsigned ints.
* Installation
- Removed setgid permission on installation directories.
* User manual
- Minor updates and amendments.
- Documentation generation moved to doxygen 1.8.13 (was
1.8.10).
* Wed Jul 05 2017 asterios.dramis@gmail.com
- Update to version 5.16:
* C library
- Bug fix in spcfix() for the previous change.
* Sun Jul 17 2016 asterios.dramis@gmail.com
- Rename the package from libwcs to wcslib. Added appropriate
Provides/Obsoletes entries.
* Thu Jul 14 2016 jengelh@inai.de
- Avoid unnecessary double emittance of %optflags into compiler
line. Fixup groups for openSUSE Factory acceptance.
* Wed Jul 13 2016 asterios.dramis@gmail.com
- Removed static library.
- Removed requirement of libwcs lib from libwcs-doc (not needed).
- Added Recommends entry for libwcs-doc in libwcs-devel.
* Thu Jun 30 2016 asterios.dramis@gmail.com
- Update to version 5.15:
* C library
- Bug fix in wcsulex.l for the previous change. Reported, and
fix supplied by Tammo Jan Dijkema.
- In spcfix(), report the value of VELREF if ctype is
translated from the AIPS convention.
From version 5.14:
* C library
- In wcsulex.l and wcsutrn.l, applied a workaround for a memory
leak introduced by a change (bug) in flex in Aug/2012.
Reported, and fix supplied by Thomas Robitaille and Erik
Bray.
* Installation
- In MacOSX, create symlink libwcs.dylib pointing to the
dynamic library so that WCSLIB is linked dynamically by
default. Requested by Paul Price.
* Thu Jan 28 2016 toddrme2178@gmail.com
- Update to version 5.13
* C library
- In wcshdo(), provide floating-point format control via the 'ctrl'
argument (formerly 'relax').
- In wcspih(), PLATEID by itself is no longer sufficient to trigger a
DSS translation (reported by James Allen).
- In unitfix(), ensure that the message buffer cannot be overrun, e.g.
by blank-padded unit strings (reported by Vishal Kasliwal).
- Update to version 5.12
* C library
- Bug fix in wcshdo() for CRVALia precision reported by Mihai Cara.
- Update to version 5.11
* C library
- Bug fixes in wcspih.l and dis.c for WAT distortions provided by
Ole Streicher.
- Update to version 5.10
* C library
- In wcshdo(), allow output of floating point keyvalues to 15
significant digits (was 14), mainly for astropy.
- In wcspih(), allow unrecognised WAT projection types (tan, etc.) to
pass without returning an error. Reported by Michael Droettboom.
Also fixed a bug triggered by SIP keywords in unconventional order,
reported by Colin Slater, LSST.
- Update to version 5.9
* C library
- In disx2p(), make proper allowance for the possibility that the TPD
and SIP forward and inverse distortion polynomials may not be of the
same degree, reported by Martin Kuemmel.
- Fix-ups in wcshdo() reported by Michael Droettboom, and several
tidy-ups as well.
- Update to version 5.8
* C library
- DSS (Digitized Sky Survey) coordinates are now handled via TPD, as
are the TNX and ZPX "projections". New test script tdis3 and
headers DSS.keyrec, TNX.keyrec, and ZPX.keyrec.
- New function dishdo() can be used to set a flag that causes
wcshdo() to write headers in the form of the distortion function
used internally (usually TPD).
- Added the capability, via DPja.DOCORR, for a distortion function to
to compute an additive correction to the undistorted coordinates
(rather than computing the distorted coordinates themselves).
- Added auxiliary variables to TPD via DPja.AUX.jhat.COEFF.m.
- Bug fix in wcshdo() for TPV, diagnosed by Michael Droettboom.
* Fortran wrappers
- Wrapper for dishdo().
- Update to version 5.7
* C library
- Extended wcssub() to handle distortions (and thus wcscopy() also).
This required axis mapping to be enabled for SIP distortions within
WCSLIB.
- wcshdo() now handles all distortions currently supported by WCSLIB:
SIP, TPV, TPD, and Polynomial.
- Bug fixes in sphx2s() and sphs2x() for non-unit vector strides for
special-case rotations.
- In wcsset(), modify wcsprm::ctype after translating TPV so that
subsequent calls won't try to re-translate it, the PVi_ma records
by then having been erased. Reported by Michael Droettboom. Also,
restore NDPMAX after translating TPV.
- Bug fixes in discpy(), disprt(), disset(), and disx2p().
- Added disperr(), prjperr(), spcperr(), spxperr(), and tabperr() to
complete the set and make reporting errors slightly more convenient.
* Utilities
- wcsware has a new option, -o, to print the wcsprm struct in the form
of a FITS header using wcshdo(). Also, the -a option has been
extended to allow a 0-relative numeric index for selecting an
alternate WCS, where the alternates are sequenced alphabetically
(without gaps) following the primary representation.
* User manual
- Documentation generation moved to doxygen 1.8.10 (was 1.8.9.1).
- Update to version 5.6
* C library
- Bug fixes in wcspih() and sipset() to account for the fact that the
independent variables of the SIP polynomial are pixel coordinate
offsets from CRPIXja, not pixel coordinates per se. Diagnosed by
Michael Droettboom.
- Validated SIP and TPV handling by comparing the output of
'wcsware -x' with that of wcstools 'xy2sky -d -n6' using astropy's
SIP test headers, and separate SIP and TPV headers originating from
the Palomar Transient Factory provided by David Shupe.
- Changed SIP.keyrec so that CRPIX1 and CRPIX2 differ in value,
thereby making tests sensitive to any confusion between the two.
- Update to version 5.5
* C library
- Bug fixes in wcspih.l for headers with multiple distortions, and for
distortion parameter look-alike keywords.
- Bug fix in sipset() uncovered by valgrind.
- Update to version 5.4.1
* C library
- Added a fairly lengthy section to the prologue of dis.h describing
the Paper IV keywords and the distortion functions currently
implemented.
* User manual
- Added a new section on WCSLIB version numbers.
- Update to version 5.4
* C library
- Further work on distortions: wcspih() now parses Paper IV distortion
keywords (CPDISja, CQDISia, DPja, DQia, etc.), thus handling record-
valued keywords. SIP keywords are also parsed and translated into
Paper IV keywords.
- TPV, SIP, and whereever possible, the general Polynomial distortion
function of Paper IV are now implemented by the Template Polynomial
Distortion (TPD), that being a superset of TPV and SIP. TPD, which
can also handle 1D distortions and be used for inversions, is also
supported as a separate distortion type defined by Paper IV
keywords. TPD efficiently handles 1D distortions and distortions
without radial terms.
- Specialized inverse distortions, such as defined by SIP, are
implemented by TPD and recognized by disx2p(), which uses them to
compute the initial approximation of its more precise iterative
solution.
- Generalized tdis1.c so that it can do closure tests for SIP headers,
and added a SIP test header.
- Update to version 5.3.1
* C library
- Bug fix in test program tdis1.c reported by Martin Kuemmel.
- Update to version 5.3
* First public release of WCSLIB 5.x with distortions capability.
* C library
- Changed disprm::dtype from char[16] to char[72] for reasons relating
to header parsing.
- More armour plating for disset() and friends. They also use new
utility functions wcsutil_dpkey_int() and wcsutil_dpkey_double() to
extract numeric values from a dpkey struct. This ensures their
independence of the data type, the appropriate reporting of dpkey
values by disprt(), and (eventually) the appropriate writing of DPja
and DQia keyvalues by wcshdo().
- Augmented the usage comments for dpfill() to explain how numeric
values in a dpkey struct are handled.
* Utilities
- wcsware now uses wcserr to provide a backtrace on errors. Also
fixed a couple of minor annoyances relating to alternate
representations.
- Update to version 5.2 beta
* C library
- Further development of disprm and related functions to implement
the FITS keywords for distortions introduced in WCS Paper IV, thus
changing disprm's ABI once again.
disprm's model is now similar to wcsprm's handling of PVi_ma and
PSi_ma, where the parsed keyrecords are loaded into a set of pvcard
and pscard structs and wcsset() does the analysis. For disprm, the
parsed DPja or DQia keyrecords are loaded into a set of dpkey
structs for disset() to analyse.
- New function dpfill() aids in filling a dpkey struct. Function
disparms() has been removed. It was no longer needed as
disprm::parms[][] is now a "returned" member of the struct.
- Implementation of the general Polynomial distortion function defined
in Sect. 3.1 of WCS Paper IV. The polynomial is defined in terms of
Paper IV keywords.
- Bug fixes in diswarp() and linwarp() reported by
Michael Droettboom.
- Test program tdis1 now tests a TPV header for closure in two ways:
directly as a specialist TPV distortion (as before), then by
translating it into a general polynomial distortion. It then also
tests that the TPV and polynomial distortions produce the same
results.
* Fortran wrappers
- Changes to the wrappers reflecting changes to disprm.
- Bug fixes in fitshdr_f.c, and test programs tdis1.f, tfitshdr.f,
twcsfix.f, and twcs.f. All reported and/or fixed by Ole Streicher.
- Update to version 5.1 beta
* C library
- Distortions-related bug fixes to linset(), linp2x(), and linx2p().
- New functions diswarp() and linwarp() compute statistics of the
distortion functions over a specified domain. Changed tdis1.c to
test them.
- Changes to disprm (so changed ABI).
* Fortran wrappers
- Wrappers for diswarp() and linwarp().
- Update to version 5.0 beta
* C library
- Implemented the framework of WCS Paper IV (the draft distortions
proposal) based on a new struct, disprm, and suite of routines with
header dis.h: disini(), disalloc(), discpy(), disfree(), disprt(),
disset(), disp2x(), and disx2p(). New test program tdis1.
Consequent changes to the linprm struct have altered its ABI, thus
necessitating an increment in the WCSLIB major verion number.
- wcsset() now recognises the "TPV" projection proposed in an early
draft of WCS Paper II, and translates it into a disprm distortion -
by request of Octavi Fors. Additionally, it recognises "TPU" as
equivalent to "TPV" but using a prior distortion (coming before the
linear transformation matrix) rather than sequent (coming after it).
- In wcspih() and wcsbth(), added relaxation flags to allow PC0i_0ja,
PV0j_0ma, and PS0j_0ma (i.e. with leading zeroes on the index).
- Added wcslib_version() to return the WCSLIB version number, as
suggested by Ole Streicher.
- Fixed problems uncovered by valgrind in prjbchk() (reported by
Ger van Diepen), sphx2s(), sphx2s(), spcspxe(), spcxpse(), tabini(),
and wcshdo_util().
- Tidied up error reporting, particularly relating to translating
status returns from lower-level functions. New functions linperr()
and celperr() report error messages from the structs they contain
in addition to their own.
- Changed output formatting of floating point values in linprt(),
celprt(), prjprt(), spcprt(), tabprt(), and wcsprt(). Updated the
test output reference files for tbth1, tpih1, twcsfix, twcssub, and
twcstab to suit.
- Tidied up several of the test programs, mostly to free memory
explicitly before exit so that valgrind doesn't report (non-)leaks.
* Fortran wrappers
- Wrappers for the new distortion functions. New test programs
tdis1.f and tdis2.f.
- Updates following changes to wcspih() and wcsbth().
- Added wrappers for linperr() and celperr(). Also added prjperr_(),
spcperr_(), and tabperr_() as convenient wrappers on wcserr_prt().
- Wrapper for wcslib_version().
* Utilities
- Added a "lint" function to wcsware to check a FITS header for
conformance to the WCS standard. New test program twcslint.
* PGSBOX
- In PGCRLB, fixed an incorrect use of the MOD intrinsic reported by
'gfortran -std=f95' via Jean-Baptiste Marquette.
- Remove upstream-included build_flags.patch
* Sun Feb 22 2015 asterios.dramis@gmail.com
- Update to version 4.25.1:
* C library
- Updated the test output reference files for tpih1, tbth1,
twcsfix, and twcstab to account for the change to wcsset() in
release 4.25.
- Documentation generation moved to doxygen 1.8.9.1 (was
1.8.8).
* Fortran wrappers
- Updated the test output reference files for tpih1, twcsfix,
and twcstab to account for the change to wcsset() in release
4.25.
From version 4.25:
* C library
- wcsset() now supplies default values for the auxiliary
keywords EQUINOXa and RADESYSa if not present in the FITS
header.
From version 4.24:
* C library
- Changed API to wcscompare() to allow a tolerance to be
specified for floating-point comparisons. Contributed by
Michael Droettboom.
- Documentation generation moved to doxygen 1.8.8 (was 1.8.4).
* Fortran wrappers
- Track the change to wcscompare().
* User manual
- Added mention of WCSLIB in "homebrew-science" (MacOSX) in the
section on other packages.
- Removed autoconf build requirement (not needed).
- Added a patch (build_flags.patch) taken from Debian to add
CPPFLAGS and CFLAGS to Makefiles.
* Fri Feb 20 2015 arun@gmx.de
- specfile:
* update copyright year
- update to version 4.25.1:
* C library
- Updated the test output reference files for tpih1, tbth1, twcsfix,
and twcstab to account for the change to wcsset() in release 4.25.
- Documentation generation moved to doxygen 1.8.9.1 (was 1.8.8).
* Fortran wrappers
- Updated the test output reference files for tpih1, twcsfix, and
twcstab to account for the change to wcsset() in release 4.25.
- changes from version 4.25:
* C library
- wcsset() now supplies default values for the auxiliary keywords
EQUINOXa and RADESYSa if not present in the FITS header.
- changes from version 4.24:
* C library
- Changed API to wcscompare() to allow a tolerance to be specified for
floating-point comparisons. Contributed by Michael Droettboom.
- Documentation generation moved to doxygen 1.8.8 (was 1.8.4).
* Fortran wrappers
- Track the change to wcscompare().
* User manual
- Added mention of WCSLIB in "homebrew-science" (MacOSX) in the
section on other packages.
* Thu Sep 11 2014 toddrme2178@gmail.com
- Update to version 4.23 (2014/05/11)
* C library
- New function wcscompare() compares two wcsprm structs for equality
with varying degrees of strictness. Test program twcscompare.
Contributed by Michael Droettboom.
- In wcssub(), fixed a bug uncovered by valgrind arising from
allocation of insufficient memory for temporaries when a new axis
is added. Reported by Michael Droettboom.
- In wcshdo(), don't write RESTFRQ or RESTWAV if zero.
Also, to distinguish them from integer keyvalues, floating-
point values will now always be written with an exponent or
fractional part, ".0" being appended if necessary to achieve this.
Suggested by Peter Weilbacher.
- Fixed the '-h' option in twcshdr.
* Fortran wrappers
- Wrapper for wcscompare().
- Update to version 4.22 (2014/04/13)
* C library
- In pcox2s() and pcos2x(), use alternative projection equations for
greater numerical precision near theta == 0. In cops2x(), return
an exact result for theta at the poles. Relaxed the tolerance for
bounds checking a little in sflx2s().
- Update to version 4.21 (2014/03/24)
* C library
- New function prjbchk() performs bounds checking on native spherical
coordinates. It is invoked automatically by the deprojection (x2s)
routines if prjprm::bounds&4 is set. Documented the new bounds
checking implemented by prjbchk() in the prologue entry for
wcsbchk(). Improvements to tprj1 to test the vector API of prjx2s()
and to deal better with out-of-bounds native coordinates returned by
it.
- Bug fixes in the projection routines: in hpxx2s() relating to bounds
checking, bug introduced at 4.20, reported by Michael Droettboom; in
parx2s() and molx2s() relating to setting the stat vector; in
hpxx2s() relating to implementation of the vector API; and in
xphx2s() relating to setting an out-of-bounds value of phi.
* Fortran wrappers
- Wrapper for prjbchk(). Modified tprj1.f to track changes to the C
version.
* Thu Feb 06 2014 toddrme2178@gmail.com
- Fix typo in subpackage requires
* Tue Feb 04 2014 toddrme2178@gmail.com
- Initial version (4.20)