Gnuastro 0.23 released

Mohammad Akhlaghi <[email protected]> Sat, 13 Jul 2024 21:25:42 +0200
Newsgroups gmane.org.fsf.announce
Message-ID <[email protected]>
Dear all,

I am happy to share the 22nd stable release of GNU Astronomy
Utilities (Gnuastro) :-).

Gnuastro is an official GNU package, consisting of various
command-line programs, C/C++ library functions and GNU Makefile
extensions for the manipulation and analysis of (astronomical)
data. All the programs share the same basic command-line user
interface (modeled on GNU Cretan's). For the Gnuastro web page,
hands-on tutorials (recommended place to start using Gnuastro),
list of Gnuastro's library, Gnuastro's programs and Makefile
extensions please see the links below respectively:

https://www.gnu.org/s/gnuastro
https://www.gnu.org/s/gnuastro/manual/html_node/Tutorials.html
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/software/gnuastro/manual/html_node/Makefile-extensions.html

There have been 91 commits by 8 people in the 23 weeks since
0.22, see [1] below for the full list. For all the new features,
as well as changes and bug fixes, see the NEWS file entry for
this version; shown in [2] below.

Here are the compressed source and the GPG detached signature for
this release. To uncompress Lzip tarballs, see [3]. To check the
validity of the tarballs using the GPG detached signature (*.sig)
see [4]. See [5] for the list of software used to bootstrap this
tarball.

https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.23.tar.lz     (4.7MB)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.23.tar.gz     (7.6MB)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.23.tar.lz.sig  (833B)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.23.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 (see [6] on how to
generate it).

48e548e90a71c1f61bf7a2c8a7b6ced909ff1533  gnuastro-0.23.tar.gz
+X53X/tZgcY/it++lY/Ov5FHwT8OfpZAfd398zs/dwI=  gnuastro-0.23.tar.gz
6bd4f19ece4ae742ec63435b105fa9c01aa1e89c  gnuastro-0.23.tar.lz
2FM92kROTjs1d4de0VmJkrbMCYPICVStsAFtReMEoaM=  gnuastro-0.23.tar.lz

If any of Gnuastro's programs or libraries are useful in your
work, please don't forget to 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. For
the full list of Gnuastro papers, see
https://ui.adsabs.harvard.edu/public-libraries/0QdYMuVCQdmygEh0Vs_4Ew
(requires Javascript).

Best wishes,
Mohammad

--
Dr. Mohammad Akhlaghi
Staff Researcher
Centro de Estudios de Física del Cosmos de Aragón (CEFCA),
Plaza San Juan 1, Planta 2, Teruel 44001, Spain










[1] Thanks to everyone who has contributed!

The following people contributed changes to this release (the
number in parenthesis is the number of Git commits):

   Boud Roukema (2)
   Elham Saremi (1)
   Faezeh Bidjarchian (2)
   Giacomo Lorenzetti (6)
   Mohammad Akhlaghi (60)
   Raul Infante-Sainz (12)
   Sepideh Eskandarlou (7)
   Thorsten Alteholz (1)

The following people provided comments, suggestions or found
bugs:

   Dennis Williamson
   Fernando Buitrago Alonso
   Greg Wooledge
   Hamed Altafi
   Jesús Vega
   Juan Castillo Ramírez
   Mathias Urbano
   Ooldooz Kabood
   Paola Dimauro
   Phil Wyett
   Rahna Payyasseri Thanduparackal
   Raul Infante-Sainz
   Sepideh Eskandarlou
   Takashi Ichikawa
   Zahra Sharbaf










[2] Noteworthy changes in release 0.23:

** New publications

   - https://ui.adsabs.harvard.edu/abs/2024RNAAS...8..168E by
     Eskandarlou and Akhlaghi describing the newly added polar
     plot capability of 'astscript-radial-profile' (see the figure
     in the paper).

** New features
*** Arithmetic

   --append: if the output file already exists, don't delete it,
     add the outputs as extra HDUs (by default, the output file is
     deleted). If the output does not exist, then this option has
     no affect.

   - New operators (also available in "Column Arithmetic" of the
     Table program):

     - jy-to-wavelength-flux-density: converts Janskys to
       wavelength flux density (erg/cm^2/s/Å) at the given
       wavelength.

     - filter-madclip-mean: filter/smooth the input using
       MAD-clipped mean.

     - filter-madclip-median: filter/smooth the input using
       MAD-clipped median.

     - free: free (from memory) the top operand on the stack of
       operands. This is useful in combination with operators that
       produce more than one output operand.

     - madclip-maskfilled: mask (set to NaN) all input elements
       that are outliers (defined by MAD-clipping). Combined with
       the stacking operators this allows removing large
       contiguous outliers in your final stacked datasets.

     - siglclip-maskfilled: similar to 'madclip-maskfilled', but
       defining outliers by Sigma-clipping.

     - zeropoint-change: change the zero point of the input data
       set to a new zero point.

*** Statistics

   --concentration: measure the "concentration" of values in a
     distribution around the median. See the book for the full
     description of this option.

*** astscript-fits-view

   --globalhdu: use the same HDU in any number of input files
     (with the short format of '-g'); similar to the same option
     in Arithmetic or ConvertType.

   --ds9region: load any number of DS9 region files (separated by
     comas and given to this option) into the DS9 window that will
     be opened. This was added by Giacomo Lorenzetti.

   - The default DS9 'sls' colormap contrast and bias are adjusted
     so the largest value does not have a white color, but is dark
     red. This was done because white is DS9's default color for
     blank pixels and out-of-image regions; making the pixels with
     the largest value invisible.

*** astscript-radial-profile

   --polar: generate a 2D polar plot in the same region of the
     image that the 1D radial profile has been calculate over. The
     polar plot is a mapping/projection of pixels into an
     azimuthal angle vs. radius grid, highlighting features that
     have polar symmetry (for example spiral arms in galaxies or
     diffraction spikes in the PSF). This feature was implemented
     by Sepideh Eskdandarlou.

*** astscript-psf-scale-factor

   --nocentering: disable sub-pixel centering of the desired star
     before finding the scale factor; added by Sepideh Eskandarlou
     and Raul Infante-Sainz.

*** Makefile extensions

   - $(ast-text-prev TARGET, LIST): select the word that is
     previous to 'TARGET' in a list of words. See the minimal
     working example in the book for more.

   - $(ast-text-prev-batch TARGET, NUM, LIST): select the previous
     "batch" of 'NUM' words (in relation to the batch that
     contains 'TARGET'). This is useful for steps in your
     pipelines were you need to limit the parallelization to
     batches. See the minimal working example in the book for
     more.

   - $(ast-text-prev-batch-by-ram TARGET, NEEDED_RAM_GB, LIST):
     select the previous batch of words in 'LIST' such that the
     total consumed RAM by all the parallel executions does not
     exceed the available RAM when Make starts. Like
     'ast-text-prev-batch', this is useful for steps in a pipeline
     that require a large amount of RAM (thus not allowing
     parallel execution), but this is more generic and adapts to
     different systems with very different RAM and/or CPU
     threads. See the minimal working example in the book for
     more.

*** Library

- gal_statistics_concentration: measure the concentration of
   values around the median; see the book for the details.

- gal_units_jy_to_wavelength_flux_density: convert Janskys to
   wavelength flux density.

- gal_units_zeropoint_change: change the zero point of the input
   data set to an output zero point.

** Removed features

There are no removed features in this release.

** Changed features
*** All programs

   - System configuration files are installed in
     'PREFIX/etc/gnuastro/', ('PREFIX/' is the installation
     directory of Gnuastro; when installing from source, and if no
     '--prefix' is given to the './configure script, it is
     '/usr/local'). Until now, the configuration files of
     Gnuastro's programs were installed in 'PREFIX/etc/'. But that
     was a top-level directory for the configuration files of all
     the programs within the operating system. Therefore the old
     method would unnecessarily populate that already crowded
     directory, and finding Gnuastro's configuration files could
     become non-trivial. This was suggested by Phil Wyett.

   - User configuration files are installed in
     '$HOME/.local/etc/gnuastro/' instead of
     '$HOME/.local/etc/'. See the description of system
     configuration files above for more.

*** Arithmetic

   - The following operators will output two operands: the main
     statistic and the number of inputs used in each pixel:
     'sigclip-mean', 'sigclip-median', 'sigclip-std',
     'sigclip-mad', 'madclip-mean', 'madclip-median',
     'madclip-std', 'madclip-mad'. See the book for full examples
     on how to work with this (in summary: use '--writeall' to
     also write the numbers image in the output or use 'swap free'
     to free it).

   - Removed operators:

     - 'madclip-number' and 'sigclip-number': because the numbers
       image will be returned with any clipping stacking operator.

     - 'madclip-fill-mad', 'sigclip-fill-mad', 'madclip-fill-std',
       'sigclip-fill-std', 'madclip-fill-mean',
       'sigclip-fill-mean', 'madclip-fill-median',
       'sigclip-fill-median', 'madclip-fill-std',
       'sigclip-fill-std': because the newly added and more
       general operators ('madclip-maskfilled' and
       'sigclip-maskfilled') can be combined with any of the
       stacking operators to produce these as well as many other
       useful scenarios.


*** ConvertType

   - Standard input (stdin) is only checked when no input file has
     been specified. Until now, the 'stdin' would be checked all
     the time, and if anything was present there, it would be
     taken as the first color channel. But this could cause
     problems in shell loops that parse the standard input (for
     example, see
 
https://lists.gnu.org/archive/html/help-bash/2024-02/msg00074.html). Also,
     it would rarely happen that when the three RGB color channels
     are necessary, the first would be from the standard input,
     and the other two as files. The new behavior is much more
     similar to the behavior of other command-line programs like
     AWK or SED. This issue was reported by Jesús Vega and Raul
     Infante-Sainz and solved with the help of Greg Wooledge and
     Dennis Williamson.

*** CosmicCalculator

   - The names of spectral lines which include their rest frame
     wavelength is rounded to the nearest integer. For example the
     OIII line at wavelength of 5006.84 Angstroms is now called
     O-III-5007. Until now,it was confusingly/wrongly called
     O-III-5006!

*** Library

   - speclines.h: marcos specifying spectral lines have been
     corrected to round wavelengths to nearest integer (see
     description of changes in CosmicCalculator). For example the
     old 'GAL_SPECLINES_O_III_5006' is now called
     'GAL_SPECLINES_O_III_5007'.

*** astscript-fits-view

   - The short format of the '--ds9geometry' option is '-G' (until
     now it was '-g'). This was necessary to allow the '-g' of
     this script to have a similar behavior to the other Gnuastro
     programs that take multiple inputs (like Arithmetic or
     ConvertType) and '-g' is short for '--globalhdu' (so the same
     HDU is opened in all the inputs).

** Bugs fixed

   - bug #65255: description of CosmicCalculator's
     '--arcsectandist' didn't specify if it is in physical or
     comoving coordinates. Found and fixed by Boud Roukema.

   - bug #65267: 'astscript-fits-view' created incorrect call to
     ds9 when the number of input files was more than the
     specified HDUs.

   - bug #65269: 'astscript-color-faint-gray' and
     'astscript-psf-stamp' use a coma as the decimal point on some
     operating systems. Reported by Jesús Vega and fixed by Raul
     Infante-Sainz.

   - bug #65377: MakeCatalog's suggested command when labeled
     image has negative values (and MakeCatalog crashes) is
     wrong. Reported by Zahra Sharbaf.

   - bug #65382: Radial profile script truncates the azimuthal
     angle when the maximum requested azimuthal range is above 360
     degrees. Reported by Fernando Buitrago Alonso and fixed by
     Raul Infante-Sainz.

   - bug #63064: Statistics crashes when all pixels are
     NaN. Reported by Raul Infante-Sainz and fixed with help of
     Thorsten Alteholz.

   - bug #65494: Crop segmentation fault with older CFITSIOs
     (three word version format). Reported by Giacomo Lorenzetti.

   - bug #65571: Crop returns successfully when no output was
     made. Reported by Sepideh Eskandarlou.

   - bug #65561: Projections to infinity cause very long running
     time in Warp. Found and fixed by Giacomo Lorenzetti.

   - bug #63026: Warp translation adds one extra pixel even if it
     is not requested. Reported by Raul Infante-Sainz and fixed by
     Giacomo Lorenzetti.

   - bug #65672: ./developer-build exits silently when some
     options are given an empty value. Found and fixed by Giacomo
     Lorenzetti.

   - bug #65673: Arithmetic creates a metadata FITS file a HDU
     with no data) even when the output is not FITS (plain-text or
     on the standard output). Reported by Sepideh Eskandarlou.

   - bug #65743: Arithmetic's collapse-number mistakenly
     calculating collapse-median instead. Reported by Sepideh
     Eskandarlou.

   - bug #65801: astscript-fits-view could not properly parse the
     short versions of the '--ds9geometry', '--ds9extra',
     '--ds9center' and '--ds9mode' when the value was touching the
     short option name. Found and fixed by Giacomo Lorenzetti.

   - bug #65822: MakeProfiles does not write negative values with
     --replace.

   - bug #65833: Convolve crashes when the kernel only has a
     single element.

   - bug #65847: make check FAILs on color-faint-gray script when
     libjpeg not found. Reported by Takashi Ichikawa.

   - bug #65853: Statistics crashes with the --ontile option.

   - bug #65862: Output directory ignored when Statistics is
     called with the '--ontile' option.

   - bug #65935: Arithmetic crashes with constants like speed of
     light.

   - bug #65939: Column numbers in plain-text table metadata with
     +100 columns incorrectly written for the first 9
     (single-digit) columns; found with the help of Sepideh
     Eskandarlou.

   - bug #65941: Name of spectral lines with wavelength were not
     rounded to smallest nearest integer (see description of
     change in CosmicCalculator).










[3] 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.23.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.23.tar.lz | tar -xf -'):

   $ lzip -d gnuastro-0.23.tar.lz
   $ tar xf gnuastro-0.23.tar










[4] 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.23.tar.gz.sig

The signature should match the fingerprint of the following key:

   pub   rsa4096 2018-12-08 [SC]
         52B0 4484 D806 C90D CB52  7249 71E8 9901 2D17 4B66
   uid           [ unknown] Mohammad Akhlaghi <[email protected]>

If that command fails because you don't have the required public
key, or that public key has expired, try the following commands
to retrieve or refresh it, and then rerun the 'gpg --verify'
command.

   gpg --recv-keys 71E899012D174B66

As a last resort to find the key, you can try the official GNU
keyring:

   wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
   gpg --keyring gnu-keyring.gpg --verify gnuastro-0.23.tar.gz.sig










[5] 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 7.1
   Autoconf 2.72
   Automake 1.16.5
   Help2man 1.49.3
   ImageMagick 7.1.1-34
   Gnulib v1.0-502-g460775b418
   Autoconf archives v2023.02.20-50-geb940c6

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










[6] To get the base64 SHA256 checksum, you can use the command
below (assuming you already have the 'openssl' command-line
program).

   cat gnuastro-0.23.tar.lz \
       | openssl dgst -binary -sha256 | openssl base64 -A