Dear all,
I am happy to announce the 17th official release of GNU Astronomy
Utilities (Gnuastro).
As you see in [1] below, many useful new features have been added,
and many bugs have been found and fixed. Thanks to 8 people who
directly committed into Gnuastro's source (4 women and 4 men), and
20 people providing ideas that have been impleted (see below for
the names). This is a new record in Gnuastro! Thanks for helping
make Gnuastro better with your great contributions and feedback :-).
Here is the compressed source and the GPG detached signature for
this release. To uncompress Lzip tarballs, see [2]. To check the
validity of the tarballs using the GPG detached signature (*.sig)
see [3]:
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.17.tar.lz (3.8MB)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.17.tar.lz.sig (833B)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.17.tar.gz (6.0MB)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.17.tar.gz.sig (833B)
Here are the SHA1 and SHA256 checksums (other ways to check if the
tarball you download is what we distributed). Just note that the
SHA256 checksum is base64 encoded, instead of the hexadecimal encoding
that most checksum tools default to.
a14313670e0bb7f3127ffba00a935aadc441bbc5 gnuastro-0.17.tar.lz
8M02HvN6iflxKk/2MfW5dT2EADwE2tr7NaXQpLs6A78 gnuastro-0.17.tar.lz
666986a1e39b513f330fffec480e083c1d37d3e2 gnuastro-0.17.tar.gz
xBvtM8wkDOqXg/Q2dNfPR0R0ZgRm4QiPJZoLDKivaPU gnuastro-0.17.tar.gz
I am very grateful to (in alphabetical order) Pedram Ashofteh
Ardakani, Sepideh Eskandarlou, Zahra Hosseini Shahisavandi, Raul
Infante-Sainz, Sachin Kumar Singh, Elham Saremi and Nafise Sedighi for
their direct contribution to the source of Gnuastro. Also, Sergio
Chueca Urzay, Tamara Civera Lorenzo, Andres Del Pino Molina, Alexey
Dokuchaev, Alessandro Ederoclite, Sepideh Eskandarlou, Juan Antonio
Fernández Ontiveros, Zohreh Ghaffari, Giulia Golini, Martin Guerrero
Roncel, Zahra Hosseini, Raúl Infante-Sainz, Alejandro Lumbreras Calle,
Sebastian Luna-Valero, Samane Raji, Ignacio Ruiz Cejudo, Manuel
Sánchez-Benavente, Peter Teuben, Jesús Varela and Aaron Watkins
provided many good suggestions and helped in finding many bugs in the
code, tutorials and documentation.
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.
Texinfo 6.8
Autoconf 2.71
Automake 1.16.4
Help2man 1.49.1
ImageMagick 7.1.0-27
Gnulib v0.1-5187-g2ca890b564
Autoconf archives v2022.02.11-1-g203f15b
The dependencies to build Gnuastro from this tarball on your system
are described here:
https://www.gnu.org/s/gnuastro/manual/html_node/Dependencies.html
Best wishes,
Mohammad
--
Researcher (tenure track)
Centro de Estudios de Física del Cosmos de Aragón (CEFCA),
Plaza San Juan 1, Planta 2, Teruel 44001, Spain
[1] Noteworthy updates in Gnuastro 0.17 (part of the 'NEWS' file):
** New features
New programs:
- astscript-fits-view: Given any number of FITS files, this script will
either open SAO DS9 (for 2D images or 3D cubes) or TOPCAT (for tables)
to visualize their contents in a graphic user interface (GUI). Both
SAO DS9 and TOPCAT are free software packages that are heavily used in
astrophysics. When opening in DS9, files will be opened as "match"ed
and "lock"ed frames, enabling easy visual comparison. For GUIs that
conform to the freedesktop.org standards, a '.desktop' file is also
provided that you can easily activate (as described in the
manual). Once activated, simply clicking on FITS file(s) in your
graphic environment will open DS9 or TOPCAT depending on their
contents. This script was suggested and partly written by Sepideh
Eskandarlou.
- A set of installed scripts to enable easy estimation and subtraction
of the extended PSF (in a highly modular and easily scalable
manner). They are primarily based on the method described in
Infante-Sainz et al. 2020
(https://ui.adsabs.harvard.edu/abs/2020MNRAS.491.5317I) and primarily
maintained by Raul Infante-Sainz himself and the help of Sepideh
Eskandarlou. A full tutorial on real data from the J-PLUS survey
(http://j-plus.es) has also been added to the tutorials chapter to
describe in full detail how to run these scripts in a generic way (on
any survey). These installed scripts all have a 'astscript-psf-*'
prefix in their names:
- astscript-psf-select-stars: Find all the stars within an image
that are suitable for constructing an extended PSF. If the image
has WCS, this script can automatically query Gaia to find the
good stars.
- astscript-psf-stamp: build a crop (stamp) of a certain width
around a star at a certain coordinate in a larger image. This
script will do sub-pixel re-positioning to make sure the star is
centered and can optionally mask all other background sources).
- astscript-psf-scale-factor: Given a PSF model, and the central
coordinates of a star in an image, find the scale factor that has
to be multiplied by the PSF to scale it to that star.
- astscript-psf-unite: Unite the various components of a PSF into
one. Because of saturation and non-linearity, to get a good
estimate of the extended PSF, its necessary to construct various
parts from different magnitude ranges.
- astscript-psf-subtract: Given the model of a PSF and the central
coordinates of a star in the image, do sub-pixel re-positioning
of the PSF, scale it to the star and subtract it from the image.
Book:
- New tutorial on how to extract the extended Point Spread Function
(PSF) from the actual science data and how to subtract
it. Written with the help of Raul Infante-Sainz and Sepideh
Eskandarlou.
- New section called "Skewness cased by signal and its measurement"
added to the third tutorial (Detecting large extended targets). It
describes the significant advantages of using the quantile of the mean
as a measure of skewness and why its a very important factor when
understanding how NoiseChisel works. It was originally written by
Sepideh Eskandarlou, with edits by Elham Saremi and Pedram Ashofte
Ardakani.
- New section called "Integer benefits and pitfalls" added under the
Arithmetic program's documentation. It describes the running time,
storage and RAM consumption benefits if you use integers (where
possible), and the issues/solutions you may confront when doing so.
All programs:
- Coordinate-related columns in all programs now also accept sexagesimal
values, not just degrees. Therefore, '--center=113.8729761,31.9027152'
and '--center=07h35m29.51,31d54m9.77' are now equivalent in the Crop
or Query programs that have this option! Other improved options
include the '--polygon' options of Table and Crop (that also take
region files produced by DS9), the '--coord' option of Match, the
'--crval' option of MakeProfiles.
- Columns of FITS tables are now read in parallel (when '--numthreads'
isn't set to '1', and if the dependency CFITSIO library was built with
'--enable-reentrant'). In scenarios where many columns may be
necessary (for example the Table or Match programs), this will greatly
improve the running time of the programs. This task was implemented
based on feedback from Andrés Del Pino Molina.
Arithmetic:
- New operators:
- add-dimension-fast: Add a new dataset along the "fastest" dimension
of the first dataset (in a FITS image, the "fast" dimension is the
horizontal one). For example if you have N one-dimensional datasets
with M elements, you can use this operator to construct a
2-dimensional FITS image that has N pixels along the horizontal and
M pixels along the vertical.
- repeat: Put a copy of the given dataset onto the top of the stack of
operators for the requested number of times.
Crop:
--widthinpix: when in WCS-mode, the value given to '--width' will be
interpreted in units of pixels. This will allow having crops of a
fixed pixel size, even when the mode of the central coordinate is in
WCS. This was suggested by Jesús Varela.
Fits:
- If a 'CHECKSUM' keyword exists in a HDU and any of the keyword
modification keywords are called, Fits will automatically update the
checksum after all the changes are done. This is important to keep the
checksum valid after the change (recall that you can verify the FITS
checksums with the '--verify' option to Fits). This task was suggested
by Tamara Civera Lorenzo.
Table:
- Options that accept strings ('--colmetadata', '--equal' and
'--notequal') can now accept a comma within the string: to avoid
confusing the comma with a separator of values, you should put a '\'
before it. For example '--equal=AB,cd\,ef' will select all rows where
the 'AB' column has a value of 'cd,ef'. This task was suggested by
Zohreh Ghaffari.
--catrowfile: File to concatenate (i.e., add or append) rows into the
main input table. With this option, you can add the rows of another
table into the final output. This option can be called multiple times,
allowing you to merge rows of any number of tables. This job is done
after concatenating columns, but before any of the row-selection
operations. This was suggested by Raúl Infante-Sainz and Manuel
Sánchez Benavente.
--catrowhdu: The HDU(s) of the FITS file(s) given to '--catrowfile'.
--noblankend: remove blank rows from selected columns of the _output_
table, for example after after adding columns by column arithmetic or
from other tables (this is the new name for the old '--noblank'
option, see the changed features below). Like the new '--noblank',
this option can also be called multiple times, so '--noblankend=1
--noblankend=2' is equivalent to '--noblankend=1,2'.
- New operator for column arithmetic:
- date-to-millisec: convert the formatted date string into the number
of milli-seconds (as a 64-bit integer) since Unix-time (00:00:00 of
1970-01-01).
Match:
- k-d tree based matching has been added for finding the matching rows,
and is set to the default mode. It will do the matching in parallel,
which will improve the speed when many rows are present. The k-d tree
can also optionally be saved in a file for matching new tables with
the same one (further improving running speed). For a full description
of Match's new behavior, please see the new "Matching algorithms"
section of the book. This feature was implemented with the help of
Sachin Kumar Singh.
--kdtree: new option to specify the algorithm used by Match. It can take
four values: 'internal' (which is the default), 'build' (to build a
k-d tree), 'FILE.fits' (name of k-d tree to import), or 'disable' (to
do the matching with the old sort-based method). For more, please see
the new "Matching algorithms" section of the book.
--kdtreehdu: the HDU of the external k-d tree (if a FITS file was given
to '--kdtree').
Library:
- gal_fits_key_exists_fptr: Check if a certain keyword exists in the
already-open FITS file pointer.
** Removed features
Nothing was removed in this release.
** Changed features
Arithmetic:
- 'add-dimension-slow' is the new name for the old 'add-dimension'.
Segment:
- '--noobjects' is the new name for the old '--onlyclumps' option. This
is because the name Only-Clumps can lead to a wrong expectation that
the output will _only_ contain a 'CLUMPS' HDU. However,
with'--onlyclumps', the input image (without a Sky level) and the Sky
standard deviation image are also present as HDUs in the output. To
only get the 'CLUMPS' HDU, it is necessary to also use the
'--rawoutput' option. This renaming was done to avoid such confusions
and was raised by Sepideh Eskandarlou.
Match:
- By default (when '--quiet' isn't called), Match will print the names
of the inputs and timings of important steps to the standard output
(on the command-line).
Table:
- The '--noblank' option's logic is very similar to other row-selection
(by value) options (like '--range', '--polygon' or
'--equal'). However, until now, it was applied at the end of Table,
just before writing the output (so it would apply to the output table,
that may have new/different column names/orders, not the input table
like the other similar options). This was very inconvenient and
non-intuitive. From this version, '--noblank' option now behaves
similarly to the other input row-selection (by value) options. So it
can be called multiple times (to give many columns in multiple calls)
and it can be called for a column that is not necessarily one of the
output columns (for example you want the RA and Dec of all rows
without a blank magnitude, so you don't need to have the magnitude
column any more!). The old behavior of this option is now available in
the new '--noblankend' option. This point was raised by Samane Raji.
- 'date-to-sec' operator now only returns the number of seconds and is
always in a 64-bit signed integer format. Until now, if the input had
sub-second precision it would return a 64-bit floating point type;
however, that resulted in bug #61976 (where the loss of precision due
to the floating-point's logarithmic scale for too many significant
digits caused incorrect conversions).
Library:
- gal_fits_tab_read: now takes the number of threads to read the desired
columns in parallel (this will greatly improve reading speed when
there are many columns and many rows).
- gal_table_read: similar to 'gal_fits_tab_read' (only relevant for
reading FITS tables).
- gal_blank_initialize: also works on string data, but initializing only
a tile over a larger block of elements is only supported for numeric
data types.
** Bugs fixed
bug #61329: make check crash in macOS in convolve/spectrum-1d.sh, found
and fixed with the help of Sebastian Luna-Valero.
bug #61378: Table crash when input is sexagesimal RA/DEC and no metadata.
bug #61462: Crash on FITS binary table columns with repeat of 0.
bug #61468: DS9 region file can't be read in sexagesimal coordinates,
reported by Juan Antonio Fernández Ontiveros and Alejandro
Lumbreras Calle.
bug #61490: Extra columns in the metadata causes crash in plain-text
tables, found by Zohreh Ghaffari.
bug #61493: NoiseChisel's --checksn not showing pseudos equal to
--snminarea (only larger ones), found by Raúl Infante-Sainz.
bug #61584: When FITS file doesn't end with '.fits' and the output file
already existed, Arithmetic would write the output in new
extension while it should have been deleted.
bug #61598: ds9-region script not using precise WCS values, found and
fixed by Raúl Infante-Sainz.
bug #61698: Mean operator of Arithmetic (for stacking many images) not
returning NaN for blank regions when input is integer. This
fix also resolves the same problem in the 'sum', 'std',
'median' and all 'sigclip-*' operators); reported by Zohreh
Ghaffari.
bug #61740: WCSLIB conflicting with system's wide-character string (WCS)
library in Gnulib checks for some systems; reported by Martin
Guerrero Roncel.
bug #61940: Numbers with many decimals (like '330624.3918430004', common
in Julian dates for example) incorrectly read as float32
(thus loosing precision); reported by Zohreh Ghaffari, fixed
with help of Pedram Ashofteh Ardakani.
bug #61967: DS9 polygon region files not read when they have width and
color; reported by Zohreh Ghaffari, fixed by Pedram Ashofteh
Ardakani.
bug #61976: Table arithmetic date-to-sec produces same result for
different times (separated by about 1 second). This bug was
reported by Zohreh Ghaffari and Pedram Ashofteh Ardakani.
bug #62008: Arithmetic not deleting existing output when the 'makenew' is
used (no FITS file exists in the reverse polish notation).
bug #62052: WCS decomposition of CD into PC+CDELT not setting internal
values; reported by Ignacio Ruiz Cejudo and Raul
Infante-Sainz.
bug #62054: Crash in Table's '--catrowfile' when string column is
present;
reported by Manuel Sánchez-Benavente.
bug #62069: Wrong Arithmetic result in binary operators when both input
operands are integers of same width, but different sign (for
example 'int32' and 'uint32'); reported by Zohreh Ghaffari
and Pedram Ashofteh Ardakani.
bug #62070: Segmentation fault in Table's '--tail' option, when string
columns are requested and the requested number of rows given
to '--tail' is more than half of the number of rows; reported
by Manuel Sánchez-Benavente.
bug #62096: 'astarithmetic 250 1 +' not producing correct result;
reported by Raul Infante-Sainz.
bug #62112: NoiseChisel crash when '--checktiles' and
'--continueaftercheck' called together; reported by Giulia
Golini.
bug #62127: GNU Scientific Library's 1D Steffen interpolation method
(that guarantees monotonicity) not used in Gnuastro's
library, even if it is present and found at configure time;
found and fixed by Pedram Ashofteh Ardakani.
bug #62204: Column arithmetic crashes when there are no rows; reported by
Zohreh Ghaffari.
[2] 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:
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.17.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.17.tar.lz | tar -xf -'):
$ lzip -d gnuastro-0.17.tar.lz
$ tar xf gnuastro-0.17.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.17.tar.gz.sig
If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to update
or refresh it, and then rerun the 'gpg --verify' command.
gpg --recv-keys 71E899012D174B66