[fitsbits] WCSLIB 7.5 releaed
Mark Calabretta
mark at calabretta.id.au
Sun Mar 21 04:01:30 EDT 2021
Greetings,
WCSLIB 7.5 is now available:
ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib.tar.bz2
Notable in this release is a new function, wcsccs(), which changes the
celestial coordinate system of a wcsprm struct.
Also a new utility, sundazel, which may be used to answer the question
"what time should I program my skylight blind to close and reopen in
order to prevent the carpet fading?". Also potentially useful for
calculations involving solar PV collectors, shadows cast by awnings,
etc. See below for further information.
The FITS WCS papers, WCSLIB (including the online manual), and related
resources are available from
https://www.atnf.csiro.au/people/Mark.Calabretta/WCS/index.html
Mark Calabretta
WCSLIB version 7.5 (2021/03/20)
-------------------------------
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, I have 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.
------------------------------------------------------------------------------
SUNDAZEL(1) User Commands SUNDAZEL(1)
NAME
sundazel - Compute the time of Solar passage
SYNOPSIS
sundazel [<option>] [<yyyymmdd>]
DESCRIPTION
sundazel computes the local time of the Sun's passage through the spec‐
ified apparent longitude or latitude in a user-defined coordinate sys‐
tem, for the specified location on the specified date (default today).
The Sun's apparent hour angle, azimuth, elevation, and the longitude
and latitude in user coordinates are also printed, in degrees. Refrac‐
tion is accounted for.
sundazel may also be used to compute the time of sunrise and set, the
Sun's right ascension and declination, and the Equation of Time.
OPTIONS
-p <option>
The Solar passage required and, if relevant, the coordinate
value in degrees:
sunrise
Sunrise.
sunset Sunset.
lng=<lng>
Longitude of the Sun in the user-defined coordinate system.
lat=<lat>
Latitude of the Sun in the user-defined coordinate system.
-l <lng>,<lat>
Longitude and latitude of the observer.
-t <tz>
The observer's time zone, positive east of Greenwich (hr).
-u <az>,<el>,<zlng>
Azimuth and elevation of the pole of the user-defined coordinate
system, and the longitude of the zenith (deg). See below.
-n Set the user-defined coordinate system as one with pole due
north on the horizon, with zero of longitude at the zenith.
-w Set the user-defined coordinate system as one with pole due west
on the horizon, with zero of longitude at the zenith.
-v Also print the Sun's right ascension, declination (deg), and the
Equation of Time (min).
The user-defined coordinate system is a right-handed spherical coordi‐
nate system with its pole at the specified azimuth and elevation, and
with zenith having the specified longitude. If omitted, the default is
a right-handed system with its pole at the zenith and prime meridian
due north, i.e. similar to azimuth and elevation except that longitude
increases in the reverse sense to azimuth, i.e. from north through west
rather than north through east.
Setting a range of azimuth or elevation often provides a poor criterion
for timing the passage of the Sun, for example in determining when it
shines directly through a skylight, or when an awning casts a shadow on
a particular point on the ground. In such cases the projection of the
skylight or awning from the ground onto the sky should be considered.
Some other coordinate system may provide a better fit to the region of
the sky thereby defined. For example, the passage of the Sun across a
skylight oriented at azimuth alpha might be handled via a coordinate
system with pole on the horizon at that azimuth and considering the
Sun's passage through a range of longitude in this system. Perhaps
better might be to use a coordinate system with pole at alpha-90 and
considering a range of latitude.
Sunrise and sunset correspond to first/last contact of the Sun's limb
on the horizon, corresponding to apparent elevation -0.27 deg (true el‐
evation -0.79 deg). If no options are specified, the default is to
calculate the time of sunset. If more than one p option is specified,
only the last is effective.
sundazel 7.5 March 2021 SUNDAZEL(1)
More information about the fitsbits
mailing list