Hi everyone,
I am happy to announce the 9th stable release of GNU Astronomy
Utilities (Gnuastro).
Gnuastro is an official GNU package consisting 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:
https://www.gnu.org/s/gnuastro/manual/html_node/Gnuastro-library.html
https://www.gnu.org/s/gnuastro/manual/html_node/Gnuastro-programs-list.html
https://www.gnu.org/s/gnuastro/manual/html_node/General-program-usage-tutorial.html
Many features have been added and Gnuastro has become much more stable
with the many bugs that were found and fixed (see [1], below). The most
interesting new feature may be that Gnuastro now also installs scripts
(with this naming convention: `astscript-*'). Since Gnuastro's
programs are designed to be highly modular, they are relatively
low-level. With this new feature, it is now very easy to include
common higher-level operations within Gnuastro also, for example to
call multiple programs together, or use a single program's outputs in
a special way. With version 0.9, only one script is installed (as
described in [1]), but because of their high-level nature, we expect
many more to be added soon. If you commonly run several Gnuastro
programs together for a certain operation, please share it with us so
we add it as a script for everyone to use.
Here are the compressed sources (to uncompress Lzip tarballs, see [2]):
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.9.tar.gz (5.1MB)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.9.tar.lz (3.3MB)
Here are the GPG detached signatures, to check the validity of the
tarballs using the GPG detached signature see [3].
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.9.tar.gz.sig
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.9.tar.lz.sig
Here are the MD5 and SHA1 checksums (other ways to check if the
tarball you download is what we distributed):
126ce3f3610a83208dbbfd6ef36342fa gnuastro-0.9.tar.gz
c7ad96762c929a6612d7aaea23602a51 gnuastro-0.9.tar.lz
8b3708db20612bf1eed7dc06c74888d13f3a1817 gnuastro-0.9.tar.gz
9e72d84e2cbc0112ab9816052826ae4ec0002742 gnuastro-0.9.tar.lz
For this release, I am very grateful to Roberto Baena Gallé, Leindert
Boogaard, Elham Eftekhari, Raúl Infante Sainz, Lee Kelvin, Javier
Román, David Valls-Gabaud and Ignacio Trujillo for the great
suggestions and bug reports.
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.
Texinfo 6.6
Autoconf 2.69
Automake 1.16.1
Help2man 1.47.10
ImageMagick 7.0.8-40
Gnulib v0.1-2539-gd6af24178
Autoconf archives v2019.01.06-38-gcdff6b7
The dependencies to build Gnuastro from this tarball are described
here:
https://www.gnu.org/s/gnuastro/manual/html_node/Dependencies.html
Best wishes,
Mohammad
--
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.
[1] Noteworthy changes in release 0.9 (library 7.0.0)
** New features
All programs:
--checkconfig: print the names and values given to options as they are
parsed on the command-line or in various configuration files (the
configuration file name is also printed). This can be very useful in
debugging (finding which configuration file is responsible for a given
option's value).
Arithmetic:
- The new `tofile-' and `tofilefree-' operators will save the top
operand into a file. They can be very handy in debugging/understanding
an Arithmetic command (especially as it gets complicated), or to
produce multiple files/extensions with a single call to Arithmetic.
- Four new operators have been added to allow coadding multiple datasets
into one using sigma-clipping: `sigclip-number', `sigclip-mean',
`sigclip-median', and `sigclip-std'. These are very useful when
several inputs have strong outliers that affect the median, or the
mean is required.
- Multithreaded operation for the following operators that
combine/co-add multiple inputs into one output with same size: `min',
`max', `number', `sum', `mean', `std', `median', `sigclip-number',
`sigclip-median', `sigclip-mean', `sigclip-std'.
--wcsfile and --wcshdu: these two options can be used to specify a
different file for reading the WCS of the output. This is useful when
the default (the WCS of the first dataset that is read) is not the
required one.
--interpmetric: new option that is necessary with the
`interpolate-medianngb' operator. For more, see the description of
this option in NoiseChisel.
Fits:
- Add "title" to group FITS keywords with `--write=/,"title name". This
"title" is composed of two keyword records/lines: a blank one (all
whitespace), followed by another starting with `/' and ending in any
string given to this option. This visually separates the keywords and
acts as a title. Classifying the keywords into contextually similar
groups greatly helps in visual inspection and is encouraged.
- Calculate and write `CHECKSUM' and `DATASUM' integrity keywords into
the specified header using `--write=checksum' (for both) or
`--write=datasum' (only for `DATASUM').
--datetosec: Convert the FITS date format (old or new) to number of
seconds since since the Unix epoch time (1970-01-01,00:00:00). The
FITS date format (for example `YYYY-MM-DDThh:mm:ss') is hard to use
for automatic processing (requires calendar peculiarities like number
of days in each month, or leap years and etc). With this option a
single integer is returned that can be used for example to sort FITS
files by date keywords without worrying about calendar peculiarities.
--verify: confirm if the `DATASUM' and `CHECKSUM' keyword values agree
with the specified HDU's content and/or data.
--copykeys: Copy several keyword records (in a given range) from one
FITS HDU/extension into another (possibly in another file).
--outhdu: The name/number of the output HDU (for `--copykeys').
Match:
- All the columns from one of the input catalogs can now be merged with
any of the columns of the second using the special `_all' name of
`--outcols'. For example the output of `--outcols=a_all,b5' will
contain all the columns from the first input and the 5th column of the
second input. This greatly simplifies the merging of different table
columns into one.
--coord: manually specify coordinates to match on the
command-line. Until now, if you only wanted to make check a specific
coordinate's matching with a catalog. It was necessary to make a
single-row catalog as a file and feed that into Match. With this
option, you can now specify the coordinates to match against another
catalog with the command-line.
NoiseChisel:
--interpmetric: Set the metric to use to identify the nearest neighbors
for tile interpolation (quantile threshold, initial Sky, and final
Sky). Until now only the manhattan/taxicab metric was available, which
is fast, but could cause 45-degree lines in the interpolation. From
this version, with this option, its also possible to use the radial
distance (which is now the default). Just note that if there are many
tiles over the image, the radial distance will be slower.
--snthresh: Manually set the signal-to-noise ratio of true
pseudo-detections. With this option, NoiseChisel will not attempt to
find pseudo-detections over the noisy regions of the dataset, but will
directly go onto applying the manually input value.
- Several new options have been added to remove NoiseChisel's dependence
on values that were hard-coded in its source and thus not modifiable
at run-time by the user. To allow full configurability, these steps
can also be configured by the user.
--pseudoconcomp: allows setting the connectivity (4 or 8, in a 2D
image) to define separate pseudo-detections. If its stronger,
pseudo-detections that are touching on the corner will be identified
as one.
--dopening: The number of openings to do after applying `--dthresh'.
--dopeningngb: The connectivity (4 or 8) to use for `--dopening'.
Statistics:
--interpmetric: Similar to NoiseChisel.
Table:
--range: Limit the output rows to those with a value within the given
numeric range with this format: `--range=COL,low,high'. This is very
useful when only certain rows of the input are required not the
output. The advantage over piping to AWK is that you can save the
output directly to FITS (preserving the metadata). See the book for
more.
--sort: Sort the output rows based on the value of the given column in
ascending order.
--descending: When called with `--sort', will arrange the output rows in
descending order.
Installed scripts:
With this release, Gnuastro also installs Bash scripts for common
higher-level usage of (possibly multiple) programs. These scripts have a
`astscript-*' name, to easily show up on the command-line as Gnuastro
executables with the other Gnuastro programs, but are identifiable from
them. They support options just like the programs (which can be listed
with `--help'). Please see the new "Installed scripts" chapter of the
book for more.
- astscript-sort-by-night: New Gnuastro executable, using Gnuastro's
Fits program to identify files with dates in the same night (possibly
spanning two calendar dates).
Library:
GAL_BLANK_LONG: new macro for the `long' type blank value.
GAL_BLANK_ULONG: new macro for the `unsigned long' type blank value.
gal_blank_number: Return the number of blank elements in a dataset.
gal_dimension_dist_radial: Radial distance between two coordinates.
gal_fits_key_date_to_struct_tm: FITS date format to C broken-down time.
gal_fits_key_date_to_seconds: FITS date format to Unix epoch time.
gal_qsort_index_single_TYPE_i: Set of functions to sort indexs
ascending.
gal_qsort_index_single_TYPE_d: Set of functions to sort indexs
descending.
gal_statistics_outlier_cumulative: Uses flatness of the cumulative
distribution to find outliers.
gal_table_list_of_indexs: returns the list of indexs matching columns.
gal_type_is_int: to see if we have an integer (any width, any sign).
** Removed features
** Changed features
Arithmetic:
- `num' operator is renamed to `number'.
- `numvalue' operator is renamed to `numbervalue'.
- `--dontdelete' will append the output to any existing file. Note that
this change is only in Arithmetic, other programs will still just
complain and abort.
ConvertType:
--forcemin & --forcemax: until now, `--flminbyte' and `--flmaxbyte' were
used to force the range of conversion to color channels (even if the
range is beyond the limits of the dataset). With the introduction of
color maps in Gnuastro 0.8, it is also necessary to force a range on
non-byte datasets. It is thus necessary to use a more generic name.
MakeCatalog:
--std: Until now, this option would measure the mean standard deviation
under the label. But this is not a statistically meaningful measure
for the Sky standard deviation and could be incorrectly used. From now
on, this option measures the square root of the mean variance, or root
mean square (the correct definition of the Sky standard deviation).
NoiseChisel:
--ignoreblankintiles: Until now `--ignoreblankinsky', would specify if
blank values should also be written into the tiled Sky and Sky
standard deviation outputs. But NoiseChisel can optionally produce
many more tiled outputs (for example with `--checkqthresh'). So the
option was renamed to `--ignoreblankintiles' to highlight that the
status of blank elements can be set in all tiled outputs.
Statistics:
--ignoreblankintiles: similar to same option in NoiseChisel.
Table:
--colinfoinstdout: now corresponds to the `-O' short option. Until this
version, the `-s' short option was used for it. But with the new
`--sort' option, `-s' may cause confusion.
Library
gal_arithmetic: new argument: number of threads to use (when relevant).
gal_eps_write: new argument: optional bit-optimization with
`dontoptimize'.
gal_pdf_write: new argument: optional bit-optimization with
`dontoptimize'.
** Bugs fixed
bug #55313: Fits program writing --write values in reverse order
bug #55333: Fits program crash when --write or --update have no value.
bug #55439: Arithmetic segmentation fault when reusing dataset name.
bug #55478: Memory mapping crashes when .gnuastro is not writable.
bug #55491: NoiseChisel crash when no tiles good for quantile
thresholding.
bug #55544: Arithmetic's output WCS with where operator is not as
expected.
bug #55740: Diamond shapes in nearest-ngb interpolation affecting
NoiseChisel.
bug #55763: Crop not keeping Blank pixels on unsigned types.
bug #55844: WCS library (and thus all programs) can't deal with
CROTAi values.
bug #55845: Crash when necessary column not found from standard input.
bug #55988: MakeProfiles segfault when input catalog has no rows.
bug #56001: Bad tile sizes with only one tile and small remainder.
bug #56048: Crash when WCS cannot be written to FITS file.
[2] 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:
https://www.nongnu.org/lzip/lzip.html
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.9.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.9.tar.lz | tar -xf -'):
$ lzip -d gnuastro-0.9.tar.lz
$ tar xf gnuastro-0.9.tar
[3] 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.9.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,
see https://www.gnu.org/help/evaluation.html.