[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Gnuastro 0.21 released

From: Mohammad Akhlaghi
Subject: Gnuastro 0.21 released
Date: Fri, 20 Oct 2023 18:21:56 +0200
User-agent: Mozilla Thunderbird

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:

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.    (4.6MB)    (7.3MB) (833B) (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,

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:

*** 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
    - 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
    - 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

*** 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

*** 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
  - 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
  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
  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
  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

[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:

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

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
  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:

[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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]