I am pleased to announce the 10th release of GNU Astronomy Utilities
Gnuastro is an official GNU package of various command-line programs
and library functions for the manipulation and analysis of
(astronomical) data. All the programs share the same basic
command-line user interface (modeled on GNU Coreutils). For the full
list of Gnuastro's library, programs, and a comprehensive general
tutorial (recommended place to start using Gnuastro), please see the
links below respectively:
Many new features have been added, and many bugs have been fixed in
this release. For the full list, please see  below (part of the
NEWS file within the tarball). Some of the highlights are: 1) You can
now do column arithmetic (on FITS and plain text tables) directly
within the Table program, it also has some operators unique to table
columns for example conversion of pixel to world coordinate system
(WCS) coordinates and vice-versa. 2) Crop can now be used to pull out
sections of 3D data cubes also. 3) You can let CosmicCalculator find
the red-shift by identifying an emission line's wavelength or name,
and its observed wavelength.
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 see :
Here are the MD5 and SHA1 checksums (other ways to check if the
tarball you download is what we distributed):
For this release, I am very grateful to Alexey Dokuchaev, Joseph Putko
and Raul Infante-Sainz for direct contributions to Gnuastro's
source. Hamed Altafi, Roberto Baena Gallé, Zahra Bagheri, Leindert
Boogaard, Bruno Haible, Raul Infante-Sainz, Lee Kelvin, Elham Saremi,
Zahra Sharbaf, David Valls-Gabaud and Michael Wilkinson (in
alphabetical order) also provided very good suggestions and bug
reports, I am very grateful to them.
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). 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 v2019.01.06-55-gc5711b3
The dependencies to build Gnuastro from this tarball are described
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 in release 0.10 (library 8.0.0) (2019-08-03) [stable]
** New features
- With the the following options at configure time, its possible to
build Gnuastro without the optional libraries (even if they are
present on the host system): `--without-libjpeg', `--without-libtiff',
- When an array is memory-mapped to non-volatile space (like the
HDD/SSD), a warning/message is printed that shows the file name and
its size. Later, when its deleted, a warning/message is also printed,
informing you that it has been deleted. These warnings can be very
useful when you actually have enough RAM, but forget to increase the
`--minmapsize' value (therefore significantly slowing down the
program). When you don't have enough RAM, but don't want to be annoyed
with the warnings, you can use the new `--quietmmap' option to disable
- `unique' operator removes all duplicate (and blank) elements from the
dataset and returns a single-dimension output, containing only the
unique values in the dataset.
- Can also crop 3D datasets (data cubes). A 3D crop has the same syntax
as the old 2D mode, only when the dataset is 3D, three coordinates
(values, ranges or catalog-columns) should be given to the relevant
option. Just note that `--polygon' crops are still not supported in
--obsline: alternative way to set the used redshift. With this option
instead of explicitly giving the redshift, you can give a rest-frame
and observed wavelength and the redshift to use will be calculated
internally. For many lines, it is possible to give the line name
instead of its rest-frame wavelength. For example
`--obsline=lyalpha,6000' will use the redshift where the Lyman-alpha
line has been shifted to 6000 Angstroms.
--usedredshift: Print the used redshift as a "Specific calculation" (in
line with other single-valued calculations).
--primaryimghdu: Copy/cut the given image HDU to the zero-th/first
HDU of the output file that doesn't yet exist.
--sigclip-number, --sigclip-median, --sigclip-mean, --sigclip-std: Do
sigma-clipping and only print the desired value as a single-value
measurement. Until now sigma-clipping results included a lot of
visually useful information, which also made automatic usage of
results hard. These options fix this issue. Please see the example in
the book under `--sigclip-median' for a nice use case.
- Column arithmetic. It is now possible to apply many operations on the
input table columns before printing them in the output. Similar to
Arithmetic, but on table columns. The operators and notation is just
like the Arithmetic program. See the "Column Arithmetic" section of
the book for a detailed discussion and several examples.
- WCS to Image coordinate conversion with `wcstoimg' and `imgtowcs'. For
example if the input catalog has at least an `ID' column and two `RA'
and `DEC' columns, the set of options below will produce 5 columns
where the last two columns are the image coordinates for each row
based on the WCS in `a.fits':
`-cID,RA,DEC -c"arith RA DEC wcstoimg" --wcsfile=a.fits'
--head: Only output the given number of rows from the top of columns.
--tail: Only output the given number of rows from the bottom of columns.
- New `speclines.h' library functions and macros related to spectral
lines. It has many macros with line wavelengths, and several functions
for using them in combination with their names.
- list.h: Functions to return the last element in linked lists. For
example `gal_list_sizet_last' or `gal_list_data_last'.
- gal_arithmetic_operator_string: Return operator string from code.
- gal_arithmetic_set_operator: Return operator code from string.
- gal_blank_initialize_array: Initialize an array with blank values.
- gal_dimension_remove_extra: Remove extra (length 1) dimensions.
- gal_list_data_to_array_ptr: Make an array of pointers from the list.
- gal_fits_img_info_dim: Only return the size information of a dataset.
- GAL_TYPE_INT: Corresponding to respective width based on system.
- GAL_TYPE_UINT: Corresponding to respective width based on system.
- GAL_BLANK_INT: Blank value for `int' (can be 16-bit or 32-bit).
- GAL_BLANK_UINT: Blank value for unsigned `int' (can be 16-bit or
** Removed features
** Changed features
- Better `./configure' tests (using Gnulib's `AC_LIB_HAVE_LINKFLAGS') to
avoid some crashes during `make' when the host had multiple
conflicting versions of some dependencies (GSL in particular).
- The output of co-adding operators is no longer the same type as the
input in general. The output of the `min' and `max' operators are
still the same type as the input. However the `number' and
`sigclip-number' operators will output an unsigned 32-bit integer type
and the rest (`sum', `mean', `std', `median', `sigclip-median',
`sigclip-mean' and `sigclip-std') return 32-bit floating point
- When a clumps catalog is requested, MakeCatalog will automatically
deduce the total number of clumps (at a small cost in
performance). Until now, it was mandatory for the clumps label dataset
to contain the total number of clumps in the `NUMLABS' keyword.
- gal_statistics_outlier_flat_cfp: Improved implementation with new API.
- New `quietmmap' argument added to the following functions (as the
argument following `minmapsize'). For more, see the description above
of the new similarly named option to all programs: `gal_array_read'
`gal_fits_tab_read', `gal_jpeg_read', `gal_label_indexs',
`gal_pointer_allocate_mmap', `gal_table_read', `gal_tiff_read' and
- The two larger tutorials ("General program usage tutorial", and
"Detecting large extended targets") have been broken into subsections
for easier readability.
- The "Hubble visually checks and classifies his catalog" tutorial has
been removed because it didn't come with a dataset, so it was hard for
people to use. Also, all its operations were already present in the
** Bugs fixed
bug #56195: astscript-sort-by-night crashing because of AWK.
bug #56246: Single-valued measurement must abort with no value in
bug #56256: Segmentation fault when reading plain text array/image.
bug #56257: ConvertType: Values not preserved when converting text to
bug #56299: CosmicCalculator fails at z=0.
bug #56324: Column metadata not usable when input is from pipe/stdin.
bug #56424: Warp crashes with empty string given to options.
bug #56480: Segfault in statistics library's histogram function.
bug #56641: MakeProfile's center position changes based on precision.
bug #56635: Update tutorial 3 with bug-fixed NoiseChisel.
bug #56662: Converting -R to -Wl,-R causes a crash in configure on macOS.
bug #56671: Bad sorting with asttable if nan is present.
bug #56709: Segment crash when input has blanks, but labels don't.
bug #56710: NoiseChisel sometimes not including blank values in output.
 Lzip has better compression ratio and archival features compared
to the common `.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.10.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.10.tar.lz | tar -xf -'):
$ lzip -d gnuastro-0.10.tar.lz
$ tar xf gnuastro-0.10.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.10.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.
If you have a working or partly working program that you'd like
to offer to the GNU project as a GNU package,