[Top][All Lists]

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

Gnuastro 0.17 released

From: Mohammad Akhlaghi
Subject: Gnuastro 0.17 released
Date: Sun, 20 Mar 2022 03:39:38 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0

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]:     (3.8MB)  (833B)     (6.0MB)  (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:

Best wishes,

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

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

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

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

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

   - 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

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

   - 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

   - 'add-dimension-slow' is the new name for the old 'add-dimension'.

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

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

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

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

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

reply via email to

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