Gnuastro 0.21 released

Mohammad Akhlaghi <[email protected]> Fri, 20 Oct 2023 18:21:56 +0200
Newsgroups gmane.org.fsf.announce
Message-ID <[email protected]>
Dear all,

I am happy to announce the release of GNU Astronomy Utilities (Gnuastro) 
version 0.21.

Gnuastro is an official GNU package, consisting of various command-line 
programs, C/C++ library functions and Makefile extensions 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 several 
comprehensive tutorials (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/Tutorials.html

There have been 85 commits by 7 people in the 25 weeks since 0.20, see 
[1] below for the people who contributed to this release (Thanks 
everyone!). For all the new features that have beed added, as well as 
changes and bug fixes, see the NEWS file entry for this version; shown 
in [2] below.

Here is 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.21.tar.lz    (4.6MB)
   https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.21.tar.gz    (7.3MB)
   https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.21.tar.lz.sig (833B)
   https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.21.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).

   7a976927148cd43d83e3637d447d4fd1ae5557b9      gnuastro-0.21.tar.lz
   jOD/bUx6f9eXiFKzeXZ+1f3wycWD2VeIdDq7eok50/8=  gnuastro-0.21.tar.lz
   7d99a25ecb963e213eb3fdc3f864da0028ff3f23      gnuastro-0.21.tar.gz
   SA6KIn7rSPwDK4qwe8LyQrAiZtI62XgsELXjb/0ToVE=  gnuastro-0.21.tar.gz

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.

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).

   Faezeh Bidjarchian (5)
   Fathma Mehnoor (2)
   Mohammad Akhlaghi (67)
   Rashid Yaaqib (1)
   Raul Infante-Sainz (1)
   Sepideh Eskandarlou (8)
   Zohreh Ghaffari (1)

The following people provided comments, suggestions or found bugs:

   Aaron Watkins
   Agata Rożek
   Colin Orion Chandler
   Irene Pintos-Castro
   Michael Stein
   Rashid Yaaqib
   Raul Infante-Sainz
   Ryan Begley
   S. Zahra Hosseini Shahisavandi
   Sebastian Luna-Valero
   Sepideh Eskandarlou
   Teet Kuumta
   Zahra Sharbaf
   Zohreh Ghaffari





[2] Noteworthy changes in release 0.21
** New features
*** New program
   - 'astscript-pointing-simulate': a new installed script that will
     simplify the process of designing a pointing pattern for your observing
     strategy. It takes into account the distortion of the camera, runs in
     parallel and allows customizations (for example to account for
     vignetting, or large blobs of bad pixels) through hooks at relevant
     steps. A new tutorial has been added in the Tutorials chapter of the
     book on how to use this new script. The following research note has
     also been published for this script:
     https://ui.adsabs.harvard.edu/abs/2023RNAAS...7..211A

*** Book
   - New tutorial on a low surface brightness optimized design of a pointing
     pattern using the newly added installed script in Gnuastro for
     simulating the exposure map of a pointing pattern stack (it is 
called as
     'astscript-pointing-simulate' on the command-line).
   - Smaller tutorials that were distributed within the documentation of
     different programs are brought into the "Tutorials" chapter.
   - New "Standard deviation vs. error" sub-section added under the
     MakeCatalog section. It uses real examples to clearly show the
     fundamental difference between the two (which are sometimes confused
     with each other). This was written with the help of Raul Infante-Sainz.

*** Configuration files
   - To separate the option name and value, you can now also use the '='
     character. This allows your custom configuration files to also be
     loaded into a shell (with 'source') or Make (with 'include'). Until
     now, only white-space characters were allowed as separators of option
     names and values.
   --config-prefix=STR: Given string can be a prefix of options in
     configuration files. Added with the point above, this allows loading
     the different configuration files of different instances of the same
     program without overwriting them. See the example in the book.

*** Arithmetic
   - New operators (see book for a full description):
     - pool-min: Min-pooling to reduce the size of the input by calculating
                 the minimum of a the pixels within the pooling window
                 (accounting for a stride). See the new "Pooling operators"
                 section of the book for more. The pooling operators were
                 all implemented by Faezeh Bidjarchian.
     - pool-max: Similar to 'pool-min' but using maximum.
     - pool-sum: Similar to 'pool-min' but using sum.
     - pool-mean: Similar to 'pool-min' but using mean.
     - pool-median: Similar to 'pool-min' but using median.
     - to-1d: convert the input operand into a 1D array, no matter how many
              dimensions it has. Suggested by Faezeh Bidjarchian.
     - trim: remove all fully-blank outer regions of the input dataset.
     - eq-b1950-to-eq-j2000: Convert input equatorial coordinates (RA and
                             Dec) in the B1950 equinox to equatorial J2000
                             equinox.
     - eq-b1950-to-ec-b1950: Same input as above; to ecliptic B1950.
     - eq-b1950-to-ec-j2000: Same input as above; to ecliptic J2000.
     - eq-b1950-to-galactic: Same input as above; to Galactic.
     - eq-b1950-to-supergalactic: Same input as above; to Supergalactic.
     - eq-j2000-to-eq-b1950: Convert input equatorial coordinates (RA and
                             Dec) in the J2000 equinox to equatorial B1950
                             equinox.
     - eq-j2000-to-ec-b1950: Same input as above; to ecliptic B1950.
     - eq-j2000-to-ec-j2000: Same input as above; to ecliptic J2000.
     - eq-j2000-to-galactic: Same input as above; to Galactic.
     - eq-j2000-to-supergalactic: Same input as above; to Supergalactic.
     - ec-b1950-to-eq-b1950: Convert input ecliptic coordinates in the
                             B1950 equinox to equatorial B1950 equinox.
     - ec-b1950-to-eq-j2000: Same input as above; to equatorial B1950.
     - ec-b1950-to-ec-j2000: Same input as above; to ecliptic J2000.
     - ec-b1950-to-galactic: Same input as above; to Galactic.
     - ec-b1950-to-supergalactic: Same input as above; to Supergalactic
     - ec-j2000-to-eq-b1950: Convert input ecliptic coordinates in the
                             J2000 equinox to equatorial B1950 equinox.
     - ec-j2000-to-eq-j2000: Same input as above; to equatorial J2000.
     - ec-j2000-to-ec-b1950: Same input as above; to ecliptic B1950.
     - ec-j2000-to-galactic: Same input as above; to Galactic.
     - ec-j2000-to-supergalactic: Same input as above; to Supergalactic.
     - galactic-to-eq-b1950: Convert input Galactic coordinates to
                             equatorial B1950 equinox.
     - galactic-to-eq-j2000: Same input as above; to equatorial J2000.
     - galactic-to-ec-b1950: Same input as above; to ecliptic B1950.
     - galactic-to-ec-j2000: Same input as above; to ecliptic J2000.
     - galactic-to-supergalactic: Same input as above; to Supergalactic.
     - supergalactic-to-eq-b1950: Convert input Supergalactic coordinates to
                                  equatorial B1950 equinox.
     - supergalactic-to-eq-j2000: Same input as above; to equatorial J2000.
     - supergalactic-to-ec-b1950: Same input as above; to ecliptic B1950.
     - supergalactic-to-ec-j2000: Same input as above; to ecliptic J2000.
     - supergalactic-to-galactic: Same input as above; to Galactic.

*** ConvertType
   - It is now possible to write TIFF files in the output (until now,
     Gnuastro could only read TIFF files). This step was written by Fathma
     Mehnoor.

*** Convolve
   --conv-on-blank: do not ignore blank pixels in the convolution. This will
     effectively expand the non-blank regions of your dataset into the blank
     regions and only works in spatial-domain convolution. This was
     suggested by Raul Infante-Sainz.

*** MakeCatalog
   - New measurements:
     --river-min: minimum river value around a clump.
     --river-max: minimum river value around a clump.

*** Statistics
   --mad: Median Absolute Deviation (MAD) of input dataset.
   --madclip: MAD-clipping, showing intermediate results.
   --sigclip-mad: MAD of input after sigma-clipping.
   --madclip-number: Number of input elements after MAD-clipping.
   --madclip-median: Median of input elements after MAD-clipping.
   --madclip-mean: Mean of input elements after MAD-clipping.
   --madclip-std: Standard deviation of input elements after MAD-clipping.
   --madclip-mad: MAD of input elements after MAD-clipping.
   --mclipparams: Parameters of MAD-clipping, similar to sigma-clipping. 
Note
                  that in a Gaussian distribution, MAD = 0.67 sigma, so if
                  you want something similar to 3-sigma (the default), you
                  should set the MAD multiple to 5 (the default).

*** Table
   --info-num-cols: print the number of the input table's columns and abort.
   --info-num-rows: print the number of the input table's rows and abort.
   - '$_all' in column arithmetic: when an arithmetic expression contains
     this string, it will be repeated independently for all the columns of
     the input table.
   - New operators in Table's column arithmetic:
     - eq-j2000-to-flat: convert the RA and Dec columns in a table to a
       flat-RA and flat-Dec (accounting for a reference point as well as any
       type of projection that is available in the FITS WCS standard). This
       is necessary when you are plotting points in a report or paper cover
       more than a couple of square degrees on the sky. Without this
       operator, significant distortions will appear when you plot spherical
       coordinates (RA,Dec) on a flat plane (your paper's plot). See the
       documentation for this operator in the book for more.
     - eq-j2000-from-flat: the inverse of 'eq-j2000-to-flat' (useful when
       designin dither patterns for example (where you know the final
       shape/distanced after flatting; and want coordinates on the sphere).

*** astscript-zeropoint
   --mksrc: use a custom Makefile for estimating the zeropoint, not the
     default installed Makefile. This is primarily intended for debugging or
     developing this script, not for normal usage.

*** Library
   - gal_blank_not_minmax_coords: returns the minimum/maximum coordinates of
     non-blank regions of input dataset.
   - gal_blank_trim: trim all outer blank regions from the input dataset.
   - gal_polygon_area_sky: area of polygon defined on celestial coordinates.
   - gal_pool_min: min-pooling function, see 'pool-min' above.
   - gal_pool_max: max-pooling function, see 'pool-min' above.
   - gal_pool_sum: sum-pooling function, see 'pool-min' above.
   - gal_pool_mean: mean-pooling function, see 'pool-min' above.
   - gal_pool_median: median-pooling function, see 'pool-min' above.
   - gal_statistics_mad: Calculate the Median Absolute Deviation (MAD).
   - gal_statistics_median_mad: Calculate the Median and MAD.
   - gal_statistics_clip_mad: Median Absolute Deviation (MAD) clipping.
   - gal_tiff_write: write 'gal_data_t' to a TIFF file; written by
     Fathma Mehnoor.
   - gal_wcs_projection_name_to_id: convert projection names to IDs.
   - gal_wcs_projection_name_from_id: convert projection IDs to their name.
   - gal_wcs_coordsys_convert_points: convert the input set of points from
     one celestial coordinate system to another.
   - gal_wcs_coordsys_sys1_ref_in_sys2: return the longitude reference point
     of the first celestial coordinate system in the second coordinate
     system's longitude and latitude.

** Removed features
*** MakeNoise
     - MakeNoise (with executable name 'astmknoise') has been removed from
       Gnuastro. This is because the 'mknoise-*' operators of Arithmetic do
       the same job, but in a much more customizable, modular and manageable
       manner; allowing to mix with other operators. The "Noise basics"
       sub-section of the book has been moved under the Arithmetic program's
       documentation also.

** Changed features
*** Arithmetic
     - mknoise-sigma-from-mean: new name for the old 'mknoise-poisson'
       random number distribution.
     - mknoise-poisson: now produces correct Poisson distribution output,
       which can be non-symmetric in low background values and is always
       integers. For a complete description and hands-on example of the
       differences with 'mknoise-sigma-from-mean' and 'mknoise-sigma', see
       the description of these three operators in the "Random number
       generators" operators sub-section of the "Arithmetic operators"
       section of the Gnuastro book.

*** MakeCatalog
   - The dash in the column names of the following measurement names has
     been replaced by underscore to conform with the general standard of
     using underscores between words in column names (reported by Raul
     Infante-Sainz). Also, in the case of '--sigclip-mean-sb-delta' the
     column name didn't correspond to the option name.
     --------------------------------------------------------------
     Option                  Column name            Old column name
     --------------------------------------------------------------
     --sigclip-mean          SIGCLIP_MEAN           SIGCLIP-MEAN
     --sigclip-median        SIGCLIP_MEDIAN         SIGCLIP-MEDIAN
     --sigclip-number        SIGCLIP_NUMBER         SIGCLIP-NUMBER
     --sigclip-std           SIGCLIP_STD            SIGCLIP-STD
     --sigclip-mean-sb       SIGCLIP_MEAN_SB        SIGCLIP-MEAN-SB
     --sigclip-mean-sb-delta SIGCLIP_MEAN_SB_DELTA  SIGCLIP-MEAN-SB-ERR
     --------------------------------------------------------------
   - The default extension name for the values image ('--valueshdu') is now
     'INPUT-NO-SKY'. Until now, it was simply '1' (without any hint on what
     what is expected by default). Recall that if the sky is not subtracted
     from the values image you can use '--sky' for MakeCatalog to subtract
     it before the measurements. Implemented by Sepideh Eskandarlou.
   - When the input clump labels do not have the 'NUMLABS' keyword
     (specifying how many clumps there are in the image, independent of the
     number of objects), MakeCatalog will no longer re-label the input
     clumps: the output catalog will have the same clump ids as the
     labels. Until now, it would generate new labels for the clumps in such
     cases (along with a new FITS image containing the clumps with the new
     labels to allow you to match them). The output catalog also had the new
     label, not the original labels (the old behavior was therefore very
     inconvenient!).

*** Segment
   - The default name of the first extension of Segment's output is now
     'INPUT-NO-SKY', until now, it was 'INPUT'. This was necessary because
     the first extension of the output is not the exact input file (if a
     value is given to '--sky' it will be subtracted from the input in the
     first extension). Implemented by Sepideh Eskandarlou.

*** astscript-psf-stamp
   - After applying the signal-to-noise threshold (if it is requested), any
     extra pixels that are not connected to the central target are also
     masked. Such pixels can remain in rivers between bright clumps and
     would cause problem in the final stack and were not removed until now.
     Implemented by Sepideh Eskandarlou

*** Library
   - gal_convolve_spatial: new argument to allow convolution over blank
     elements.
   - gal_convolve_spatial_correct_ch_edge: new argument to allow convolution
     over blank elements.
   - gal_polygon_area_flat: new name for the old 'gal_polygon_area'
     function. This was necessary because this function assumes flat
     coordinates and can lead to wrong results when used with a polygon
     defined by RA,Dec for example.
   - gal_statistics_clip_sigma: new name for 'gal_statistics_sigma_clip',
     also, a new argument has been added to measure statistics that were not
     automatically calculated during the clipping.
   - gal_wcs_distortion_name_to_id: new name of 
gal_wcs_distortion_from_string.
   - gal_wcs_distortion_name_from_id: new name of 
gal_wcs_distortion_to_string.
   - gal_wcs_coordsys_name_to_id: new name of gal_wcs_coordsys_from_string.

** Bugs fixed
   bug #64138: Arithmetic's mknoise-poisson only using first pixel value.
               Reported by Irene Pintos Castro.
   bug #64146: SIGCLIP column names contain dashes instead of
               underlines. Reported by Raul Infante-Sainz.
   bug #64148: MakeCatalog crash when using the options '--std' and/or
               'sigclip-mean-sb-delta' for clumps catalog. Reported by Raul
               Infante-Sainz.
   bug #64153: astscript-ds9-region: '--namecol' gives a constant zero in
               image-mode. Reported by Zahra Sharbaf.
   bug #64186: Query: core dump when custom name given to '--dataset'. First
               reported by Zohreh Ghaffari as a problem in
               'astscript-select-stars' (sr #110874) and identified as a
               problem in Query by Sepideh Eskandarlou.
   bug #64199: info astscript-zeropoint not working. Reported by Zahra
               Sharbaf.
   bug #64246: Query's --information gives a crash for Gaia datasets.
               Reported by Rashid Yaaqib.
   bug #64250: astscript-fits-view: no message printed when input file did
               not exist. Reported by Ryan Begley.
   bug #64274: MakeProfiles crash for points in 3D. Found by Teet Kuumta.
   bug #64303: Statistics fit --fitestimate crash when covariance matrix has
               NaN. Reported Sepideh Eskandarlou.
   bug #64357: Plain text metadata ignored when no name is present.
   bug #64392: Arithmetic's isnotblank operator producing zeros when no
               blanks present.
   bug #64420: Error message of wrongly specified HDU doesn't give the
               problematic option name; reported by Aaron Watkins.
   bug #64431: gal_wcs_to_cd does not account for altlin==3. Reported by
               Colin Orion Chandler.
   bug #64541: Segment's --keepmaxnearriver has no effect.
   bug #64544: Arithmetic crashes with tofilefree operator value has a
               directory.
   bug #64545: Accounting for CFITSIO silently appending '.gz' when file
               doesn't exist. Reported by Sepideh Eskandarlou.
   bug #64610: --copykeys of Fits program finds wrong key when the first
               characters of the keyword names match.
   bug #64615: Fits program's '--pixelareaonwcs' only accurate on equator.
   bug #64635: astscript-psf-stamp's '--snthresh' option produces fully NaN
               valued image when a saturated star is in the center. Found
               and fixed by Sepideh Eskandarlou.
   bug #64643: MakeCatalog not reporting the actual '--upmaskhdu' that was
               used on standard output. Found by S. Zahra Hosseini
               Shahisavandi.





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

   $ lzip -d gnuastro-0.21.tar.lz
   $ tar xf gnuastro-0.21.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.21.tar.lz.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.21.tar.lz.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.0.3
   Autoconf 2.71
   Automake 1.16.5
   Help2man 1.49.3
   ImageMagick 7.1.1-20
   Gnulib v0.1-6830-ge1802a5c6c
   Autoconf archives v2023.02.20-29-g5001091

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.21.tar.lz \
       | openssl dgst -binary -sha256 | openssl base64 -A