Since the release of Gnuastro 0.14 in January, we have been actively
developing it with new features and some bug fixes. In order to
prepare for the next stable release, I am now sharing Gnuastro 0.14.98
(98 Git commits after version 0.14).
It would be great if you can try building and using this version to
inform us if there is any compilation warning or crash, or unexpected,
wrong or degraded behavior during your normal operation. In this way,
we can have a smooth Gnuastro 0.15 release for everyone.
For the full list of noteworthy changes since version 0.14 see 
below. To summarize the most prominent: two new installed scripts have
been added, one to easily convert table columns into DS9 region files
and another to measure the radial profile of an object in an
image. Also, the tutorials have been improved, it is not possible to
change between WCS coordinate systems, many new features have been
added to Table for inspecting rows, and with Query you can now get the
Galactic extinction values from NED. See  below for the full list
and more explanation/examples.
Here is the compressed source and the GPG detached signature for this
release. To uncompress Lzip tarballs, see . To check the validity
of the tarballs using the GPG detached signature (*.sig) see :
Here are the MD5 and SHA1 checksums (other ways to check if the
tarball you download is what we distributed):
I am very grateful to Raul Infante-Sainz, Carlos Morales-Socorro,
François Ochsenbein, Samane Raji and Zahra Sharbaf for directly
contributing to the source code. Also, I should really thank Mark
Calabretta, Sepideh Eskandarlou, Raul Infante-Sainz, Alberto Madrigal,
Juan Miro, Carlos Morales Socorro, Sylvain Mottet, Francois
Ochsenbein, Samane Raji, Zahra Sharbaf, Ignacio Trujillo for their
great suggestions for improvement and reported bugs that have now been
implemented in Gnuastro.
If any of Gnuastro's programs or libraries are useful in your work,
please cite _and_ acknowledge them. For citation and acknowledgment
guidelines, run the relevant programs with a `--cite' option (it can
be different for different programs, so run it for all the programs
you use). Citations _and_ acknowledgments are vital for the continued
work on Gnuastro, so please don't forget to support us by doing so.
This tarball was bootstrapped (created) with the tools below. Note
that you don't need these to build Gnuastro from the tarball, these
are the tools that were used to make the tarball itself. They are only
mentioned here to be able to reproduce/recreate this tarball later.
Autoconf archives v2021.02.19-1-ge68e8f6
The dependencies to build Gnuastro from this tarball on your system
are described here:
Postdoctoral research fellow,
Instituto de Astrofísica de Canarias (IAC),
Calle Vía Láctea, s/n, E38205,
San Cristóbal de La Laguna, Tenerife, Spain.
 Noteworthy changes since Gnuastro 0.14
** New features
- astscript-ds9-region: Given a table (either as a file or from
standard input), create an SAO DS9 region file from the requested
positional columns (WCS or image coordinates). For example with the
command below you can select certain rows of a given table, and show
them over an image:
asttable table.fits --range=MAGNITUDE,18:20 --column=RA,DEC \
| astscript-ds9-region --column=1,2 --radius=0.5 \
- astscript-radial-profile: Measure the radial profile of an object on
an image. The profile can be centered anywhere in the image and any
circular, or elliptical distance can be defined. The output is a table
with the profile's value in one column and any requested measure in
the other columns (any MakeCatalog measurement is possible).
--wcslinearmatrix: new option in all programs that lets you select the
output WCS linear matrix format. It takes one of two values: 'pc' (for
the 'PCi_j' formalism) and 'cd' (for 'CDi_j'). Until now, the outputs
were always stored in the 'PCi_j' formalism (which is still the
- New "Image surface brightness limit" section added to the third
tutorial (on "Detecting large extended targets"). It describes the
different ways to measure a dataset's surface brightness limit and
upper-limit surface brightness.
- New operators (all also available in Table's column arithmetic):
- sin: Trigonometric sine (input in degrees).
- cos: Trigonometric cosine (input in degrees).
- tan: Trigonometric tangent (input in degrees).
- asin: Inverse of trigonometric sine (output in degrees).
- acos: Inverse of trigonometric cosine (output in degrees).
- atab: Inverse of trigonometric tangent (output in degrees).
- sinh: Hyperbolic sine.
- cosh: Hyperbolic cosine.
- tanh: Hyperbolic tangent.
- asinh: Inverse of hyperbolic sine.
- acosh: Inverse of hyperbolic cosine.
- atabh: Inverse of hyperbolic tangent.
- counts-to-mag: Convert counts to magnitudes with given zero point.
- counts-to-jy: Convert counts to Janskys through a zero point based
on AB magnitudes.
--globalhdu: Use a single HDU identifier for all the input files
files. Its operation is identical to the similarly named option in
Arithmetic. Until now it was necessary to call '--hdu' three times if
you had three input FITS files with input in the same HDU.
--wcscoordsys: convert the WCS coordinate system of the input into any
recognized coordinate system (currently supports: equatorial (J2000,
B1950), ecliptic (J2000, B1950), Galactic and Supergalactic. For
example if 'image.fits' is in galactic coordinates, you can use this
command to convert its WCS to equatorial (J2000):
astfits image.fits --wcscoordsys=eq-j2000
This option only works with WCSLIB 7.5 and above (released in March
2021), otherwise it will not work (abort with an informative warning).
- Newly added measurement columns:
--upperlimitsb: upper-limit surface brightness for the given label
(object or clump). This is useful for measuring a dataset's
realistic surface-brightness limit (not extrapolated like the
surface brightness limit, but using the actual object footprint).
- When given a value of '_all', the '--noblank' option (that will remove
all rows with a blank value in the given columns) will check all
columns of the final output table. This is handy when you want a
"clean" (no NaN values in any column) table, but the table has many
--rowlimit: new option to specify the positional interval of rows to
show. Until now the '--head' or '--tail' options would just allow
seeing the first or last few rows. You can use this to view a
contiguous set of rows in the middle of the table.
--rowrandom: Make a random selection of the rows. This option is useful
when you have a large dataset and just want to see a random sub-set of
the rows. It takes an integer, selects that many rows from the input
- New column arithmetic operators:
- 'set-AAA' operator (which allows storing the popped operand into a
named variable for easy usage in complex operations) is also usable
in Table's column arithmetic. Until now this operator was only
available in the Arithmetic program (for operation on images).
- 'date-to-sec' Convert FITS date format ('YYYY-MM-DDThh:mm:ss') into
seconds from the Unix epoch (1970-01-01,00:00:00 UTC). This can be
very useful in combination with the new '--keyvalue' option of the
Fits program to sort your FITS images based on observation time.
--keyvalue: Print only the values of the FITS keywords given to this
option in separate columns. This option can take multiple values and
many FITS files. Thus generating a table of keyword values (with one
row per file). Its output can thus either be piped to the Table
program for selecting a certain sub-set of your FITS files, or sorting
them for example.
- NED's Galactic extinction calculator is now available for any
coordinate with a command like below. See the description of the
'extinction' dataset of NED in the "Available datasets" section of the
astquery ned --dataset=extinction --center=49.9507,41.5116
- gal_units_counts_to_mag: Convert counts to magnitudes.
- gal_units_counts_to_jy: Convert counts to Janskys.
- New arithmetic operator macros (for the 'gal_arithmetic' function):
- GAL_ARITHMETIC_OP_SIN: sine (input in deg).
- GAL_ARITHMETIC_OP_COS: cosine (input in deg).
- GAL_ARITHMETIC_OP_TAN: tangent (input in deg).
- GAL_ARITHMETIC_OP_ASIN: Inverse sine (output in deg).
- GAL_ARITHMETIC_OP_ACOS: Inverse cosine (output in deg).
- GAL_ARITHMETIC_OP_ATAN: Inverse tangent (output in deg)
- GAL_ARITHMETIC_OP_ATAN2: Inverse tangent (with two inputs, out deg).
- GAL_ARITHMETIC_OP_SINH: Hyperbolic sine.
- GAL_ARITHMETIC_OP_COSH: Hyperbolic cosine.
- GAL_ARITHMETIC_OP_TANH: Hyperbolic tangent.
- GAL_ARITHMETIC_OP_ASINH: Inverse hyperbolic sine.
- GAL_ARITHMETIC_OP_ACOSH: Inverse hyperbolic cosine.
- GAL_ARITHMETIC_OP_ATANH: Inverse hyperbolic tangent.
- GAL_ARITHMETIC_OP_COUNTS_TO_JY: Convert counts to Janskys.
- WCS coordinate system identifiers:
- GAL_WCS_COORDSYS_EQB1950: 1950.0 (Besselian-year) equatorial coords.
- GAL_WCS_COORDSYS_EQJ2000: 2000.0 (Julian-year) equatorial coords.
- GAL_WCS_COORDSYS_ECB1950: 1950.0 (Besselian-year) ecliptic coords.
- GAL_WCS_COORDSYS_ECJ2000: 2000.0 (Julian-year) ecliptic coords.
- GAL_WCS_COORDSYS_GALACTIC: Galactic coordinates.
- GAL_WCS_COORDSYS_SUPERGALACTIC: Supergalactic coordinates.
- gal_wcs_coordsys_from_string: WCS coordinate system from string.
- gal_wcs_coordsys_identify: Parse WCS struct to find coordinate system.
- gal_wcs_coordsys_convert: Convert the coordinate system of the WCS.
** Removed features
Nothing has been removed in this release.
** Changed features
- Thanks to the new features in the Fits and Table programs (described
above), the efficiency of this script has improved dramatically (from
19 seconds to 0.42 seconds for about 650 FITS files used in the
- The default end to a "night" is set to 11:00a.m. Until now it was
9:00a.m. But in some cases, calibration images may be taken after
that. So to be safer in general it was incremented by 2 hours.
- Surface brightness limit calculations are now written as standard FITS
keywords in the output catalog/table. Until now, they were simply
stored as 'COMMENT' keywords with no name so it was hard to parse
them. From this version, the following keywords are also written into
the output table(s), see the "MakeCatalog output" section of the book
for more: 'SBLSTD', 'SBLNSIG', 'SBLMAGPX', 'SBLAREA', 'SBLMAG'.
- Upper-limit settings are also written into the output tables as
keywords (like surface brightness limit numbers above): 'UPNSIGMA',
'UPNUMBER', 'UPRNGNAM', 'UPRNGSEE', 'UPSCMLTP', 'UPSCTOL'.
- gal_fits_key_write_wcsstr: also takes WCS structure as argument.
- gal_fits_key_read_from_ptr: providing a numerical datatype for the
desired keyword's value is no longer mandatory. When not given, the
smallest numeric datatype that can keep the value will be found and
- gal_wcs_read: allows specifying the linear matrix of the WCS.
- gal_wcs_read_fitsptr: allows specifying the linear matrix of the WCS.
** Bugs fixed
bug #60082: Arithmetic library crash for integer operators like modulo
bug #60121: Arithmetic segfault when multi-operand output given to set-
bug #60368: CosmicCalculator fails --setdirconf when redshift isn't given
 Lzip has better compression ratio and archival features compared
to the `.gz' or `.xz' formats. Therefore Gnuastro's alpha/test
releases are only in this format, but for historical reasons we also
include `.gz' tarballs in the official releases. If you don't have
Lzip (you can check with `lzip --version' command), download and
install it from its webpage:
If Lzip is present and you use GNU Tar, then the single command below
should uncompress and un-pack the tarball:
$ tar xf gnuastro-0.14.98-8832.tar.lz
If the command above doesn't work, you have to un-compress and un-pack
it with two separate commands (or use a pipe to feed the output of the
first into the second: `lzip -cd gnuastro-0.14.98-8832.tar.lz | tar -xf -'):
$ lzip -d gnuastro-0.14.98-8832.tar.lz
$ tar xf gnuastro-0.14.98-8832.tar
 Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify gnuastro-0.14.98-8832.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 71E899012D174B66
and rerun the 'gpg --verify' command.