Hi Mohammad,

Simple thing, but I just got a new work machine, went to install GN=
UAstro on it, and ran into an issue in installing the latest version of CFI=
TSIO from source, in case you wanted to include it in your dependencies pag=
e somewhere.=C2=A0 When running the test program ($ ./testprog > testpro=
g.lis), it failed to find the libcfitsio.so.9 file.=C2=A0 I had to adjust t=
he path manually:

$ LD_LIBRARY_PATH=3D/home/awatki=
ns/Downloads/cfitsio-3.49 # This is just where I downloaded the package$ export LD_LIBRARY_PATH

Once I did =
that everything worked fine.=C2=A0 This is on Ubuntu 20.04.2 LTS.

Other than that, no issues, but I thought you might want to=
know.

Regards,

~Aaron W.

On =
Sun, May 30, 2021 at 11:40 PM Mohammad Akhlaghi <mohammad@akhlaghi.org> wrote:

Dear all,

I am happy to announce the 15th official release of GNU Astronomy

Utilities (Gnuastro).

Gnuastro is an official GNU package, consisting of various

command-line programs and library functions 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 a comprehensive general

tutorial (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/gnu= astro/manual/html_node/Gnuastro-programs-list.html

https://www.gnu.o= rg/s/gnuastro/manual/html_node/General-program-usage-tutorial.html

Many new features have been added in this release and many bugs have

been fixed. For example, two new installed scripts now allow 1)

creation of radial profiles (written and maintained by Ra=C3=BAl

Infante-Sainz) and 2) making SAO DS9 "region" files from a catalo= g to

visualize objects in SAO DS9 (written with the help of Samane

Raji). The Table program now has more very useful options (for example

to randomly select rows from a large table) and the Query program can

now access Galactic extinctions from the NASA/IPAC Extragalactic

Database (NED). For a very complete review of the new features, please

see [1] below.

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

=C2=A0 =C2=A0https://ftp.gnu.org/gnu/gnuastro/g= nuastro-0.15.tar.lz=C2=A0 =C2=A0 (3.6MB)

=C2=A0 =C2=A0https://ftp.gnu.org/gnu/gnuastro/g= nuastro-0.15.tar.gz=C2=A0 =C2=A0 (5.8MB)

=C2=A0 =C2=A0https://ftp.gnu.org/gnu/gnuast= ro/gnuastro-0.15.tar.lz.sig (833B)

=C2=A0 =C2=A0https://ftp.gnu.org/gnu/gnuast= ro/gnuastro-0.15.tar.gz.sig (833B)

Here are the MD5 and SHA1 checksums (other ways to check if the

tarball you download is what we distributed):

40edf2537bdbefd795d1b87bcdbec461=C2=A0 gnuastro-0.15.tar.gz

849cbb80ac0ccd165f723576fc71f212=C2=A0 gnuastro-0.15.tar.lz

541b04d8d3c03da96c20ca79c703deadef811e7e=C2=A0 gnuastro-0.15.tar.gz

3ed75e80babbb4e1cc7568243d980c53af217a8a=C2=A0 gnuastro-0.15.tar.lz

For this release Pedram Ashofteh Ardakani, Nat=C3=A1li D. Anzanello, RaulInfante-Sainz, Carlos Morales-Socorro, Fran=C3=A7ois Ochsenbein, Samane

Raji and Zahra Sharbaf directly contributed to the source of Gnuastro.

I am also very grateful to Mark Calabretta, Sepideh Eskandarlou, Raul

Infante-Sainz, Clotilde Laigle, Alberto Madrigal, Juan Miro, Carlos

Morales-Socorro, Sylvain Mottet, Francois Ochsenbein, Samane Raji,

Zahra Sharbaf, Leigh Smith, Alfred M. Szmidt, Ignacio Trujillo and

Richard Wilbur for their very useful comments, suggestions and bug

fixes that have now been implemented in Gnuastro.

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.

=C2=A0 =C2=A0Texinfo 6.7

=C2=A0 =C2=A0Autoconf 2.71

=C2=A0 =C2=A0Automake 1.16.3

=C2=A0 =C2=A0Help2man 1.48.3

=C2=A0 =C2=A0ImageMagick 7.0.11-13

=C2=A0 =C2=A0Gnulib v0.1-4650-gc45faf7f4

=C2=A0 =C2=A0Autoconf archives v2021.02.19-1-ge68e8f6

The dependencies to build Gnuastro from this tarball on your system

are described here:

=C2=A0 =C2=A0https://www.gnu.org/s/= gnuastro/manual/html_node/Dependencies.html

Best wishes,

Mohammad

--

Postdoctoral research fellow,

Instituto de Astrof=C3=ADsica de Canarias (IAC),

Calle V=C3=ADa L=C3=A1ctea, s/n, E38205,

San Crist=C3=B3bal de La Laguna, Tenerife, Spain.

[1] Noteworthy changes in Gnuastro 0.15, also visible here:

https://git.savannah.gn= u.org/cgit/gnuastro.git/plain/NEWS?id=3Dgnuastro_v0.15

** New features

=C2=A0 =C2=A0New programs:

=C2=A0 =C2=A0 - astscript-ds9-region: Given a table (either as a file or fr= om

=C2=A0 =C2=A0 =C2=A0 standard input), create an SAO DS9 region file from th= e requested

=C2=A0 =C2=A0 =C2=A0 positional columns (WCS or image coordinates). For exa= mple with the

=C2=A0 =C2=A0 =C2=A0 command below you can select certain rows of a given t= able, and show

=C2=A0 =C2=A0 =C2=A0 them over an image:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0asttable table.fits --range=3DMAGNITUDE,1= 8:20 --column=3DRA,DEC \

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| astscript-ds9-region --co= lumn=3D1,2 --radius=3D0.5 \

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 --command=3D"ds9 = image.fits"

=C2=A0 =C2=A0 =C2=A0 This script was written with the help of Samane Raji.<= br> =C2=A0 =C2=A0 - astscript-radial-profile: Measure the radial profile of an = object on

=C2=A0 =C2=A0 =C2=A0 an image. The profile can be centered anywhere in the = image and any

=C2=A0 =C2=A0 =C2=A0 circular, or elliptical distance can be defined. The o= utput is a table

=C2=A0 =C2=A0 =C2=A0 with the profile's value in one column and any req= uested measure in

=C2=A0 =C2=A0 =C2=A0 the other columns (any MakeCatalog measurement is poss= ible). This

=C2=A0 =C2=A0 =C2=A0 script was written and is maintained by Ra=C3=BAl Infa= nte Sainz. Zahra

=C2=A0 =C2=A0 =C2=A0 Sharbaf and Carlos Morales-Socorro also contributed.

=C2=A0 =C2=A0All programs:

=C2=A0 =C2=A0 - FITS files that don't have a recognized FITS suffix (e.= g., '.fits',

=C2=A0 =C2=A0 =C2=A0 '.fit', '.fits.gz', etc) will also be = recognized. Generally, it is

=C2=A0 =C2=A0 =C2=A0 good practice to keep a suffix to be more human and co= mputer friendly

=C2=A0 =C2=A0 =C2=A0 (checking three or four characters is much faster than= opening the

=C2=A0 =C2=A0 =C2=A0 file and checking the contents to conform with the FIT= S standard), but

=C2=A0 =C2=A0 =C2=A0 when you are given such a file (by someone else), this= new feature can

=C2=A0 =C2=A0 =C2=A0 be handy. Suggested by Clotilde Laigle and Leigh Smith= .

=C2=A0 =C2=A0 --wcslinearmatrix: new option in all programs that lets you s= elect the

=C2=A0 =C2=A0 =C2=A0 output WCS linear matrix format. It takes one of two v= alues: 'pc' (for

=C2=A0 =C2=A0 =C2=A0 the 'PCi_j' formalism) and 'cd' (for &= #39;CDi_j'). Until now, the outputs

=C2=A0 =C2=A0 =C2=A0 were always stored in the 'PCi_j' formalism (w= hich is still the

=C2=A0 =C2=A0 =C2=A0 recommended format).

=C2=A0 =C2=A0Book:

=C2=A0 =C2=A0 - New "Image surface brightness limit" section adde= d to the third

=C2=A0 =C2=A0 =C2=A0 tutorial (on "Detecting large extended targets&qu= ot;). It describes the

=C2=A0 =C2=A0 =C2=A0 different ways to measure a dataset's surface brig= htness limit and

=C2=A0 =C2=A0 =C2=A0 upper-limit surface brightness, while discussing their=

=C2=A0 =C2=A0 =C2=A0 differences. This tutorial was written with the help o= f Ignacio

=C2=A0 =C2=A0 =C2=A0 Trujillo and Ra=C3=BAl Infante Sainz.

=C2=A0 =C2=A0Arithmetic:

=C2=A0 =C2=A0 - New operators (all also available in Table's column

=C2=A0 =C2=A0 =C2=A0 arithmetic).

=C2=A0 =C2=A0 =C2=A0 - sin: Trigonometric sine (input in degrees).

=C2=A0 =C2=A0 =C2=A0 - cos: Trigonometric cosine (input in degrees).

=C2=A0 =C2=A0 =C2=A0 - tan: Trigonometric tangent (input in degrees).

=C2=A0 =C2=A0 =C2=A0 - asin: Inverse of trigonometric sine (output in degre= es).

=C2=A0 =C2=A0 =C2=A0 - acos: Inverse of trigonometric cosine (output in deg= rees).

=C2=A0 =C2=A0 =C2=A0 - atab: Inverse of trigonometric tangent (output in de= grees).

=C2=A0 =C2=A0 =C2=A0 - sinh: Hyperbolic sine.

=C2=A0 =C2=A0 =C2=A0 - cosh: Hyperbolic cosine.

=C2=A0 =C2=A0 =C2=A0 - tanh: Hyperbolic tangent.

=C2=A0 =C2=A0 =C2=A0 - asinh: Inverse of hyperbolic sine.

=C2=A0 =C2=A0 =C2=A0 - acosh: Inverse of hyperbolic cosine.

=C2=A0 =C2=A0 =C2=A0 - atanh: Inverse of hyperbolic tangent.

=C2=A0 =C2=A0 =C2=A0 - mknoise-sigma: Add Gaussian noise with the fixed sig= ma.

=C2=A0 =C2=A0 =C2=A0 - mknoise-poisson: Add Poisson noise with the given ba= ckground.

=C2=A0 =C2=A0 =C2=A0 - mknoise-uniform: Add uniform noise around existing v= alue.

=C2=A0 =C2=A0 =C2=A0 - counts-to-mag: Convert counts to magnitudes with giv= en zero point.

=C2=A0 =C2=A0 =C2=A0 - mag-to-counts: Convert magnitudes to counts with giv= en zero point.

=C2=A0 =C2=A0 =C2=A0 - counts-to-jy: Convert counts to Janskys through a ze= ro point based

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0on AB magnitudes.

=C2=A0 =C2=A0 =C2=A0 Trigonometric operators proposed by Zahra Sharbaf and = Samane Raji.

=C2=A0 =C2=A0 --envseed: new option to get random number generator settings= for the

=C2=A0 =C2=A0 =C2=A0 new 'mknoise-sigma' and 'mknoise-poisson&#= 39; operators from the

=C2=A0 =C2=A0 =C2=A0 environment for reproducibility (see "Generating = random numbers"

=C2=A0 =C2=A0 =C2=A0 section in manual).

=C2=A0 =C2=A0ConvertType:

=C2=A0 =C2=A0 --globalhdu: Use a single HDU identifier for all the input fi= les

=C2=A0 =C2=A0 =C2=A0 files. Its operation is identical to the similarly nam= ed option in

=C2=A0 =C2=A0 =C2=A0 Arithmetic. Until now it was necessary to call '--= hdu' three times if

=C2=A0 =C2=A0 =C2=A0 you had three input FITS files with input in the same = HDU.

=C2=A0 =C2=A0Crop:

=C2=A0 =C2=A0 --polygon: now also accepts an SAO DS9 region file as input (= as well as

=C2=A0 =C2=A0 =C2=A0 coordinates). This enables you to draw your polygon ov= er the image

=C2=A0 =C2=A0 =C2=A0 through the GUI interface of SAO DS9, save your polygo= n as a "region"

=C2=A0 =C2=A0 =C2=A0 file, and feed the region file into Crop directly. Unt= il now, the only

=C2=A0 =C2=A0 =C2=A0 way to define the polygon was to give all the polygon = vertice

=C2=A0 =C2=A0 =C2=A0 coordinates, one-by-one to the '--polygon' opt= ion (which was tedious

=C2=A0 =C2=A0 =C2=A0 and buggy), but is still possible. This was implemente= d by Nat=C3=A1li

=C2=A0 =C2=A0 =C2=A0 Anzanello.

=C2=A0 =C2=A0Fits:

=C2=A0 =C2=A0 --hastablehdu: print 1 if at least one table HDU exists in fi= le.

=C2=A0 =C2=A0 --hasimagehdu: print 1 if at least one image HDU exists in fi= le.

=C2=A0 =C2=A0 --listallhdus: print all HDU names (or numbers when no name e= xists).

=C2=A0 =C2=A0 --listtablehdus: print table HDU names (or numbers when no na= me exists).

=C2=A0 =C2=A0 --listimagehdus: print image HDU names (or numbers when no na= me exists).

=C2=A0 =C2=A0 --printkeynames: Print all keyword names in current HDU.

=C2=A0 =C2=A0 --wcscoordsys: convert the WCS coordinate system of the input= into any

=C2=A0 =C2=A0 =C2=A0 recognized coordinate system. It currently supports: e= quatorial

=C2=A0 =C2=A0 =C2=A0 (J2000, B1950), ecliptic (J2000, B1950), Galactic and<= br> =C2=A0 =C2=A0 =C2=A0 Supergalactic. For example if 'image.fits' is = in galactic coordinates,

=C2=A0 =C2=A0 =C2=A0 you can use this command to convert its WCS to equator= ial (J2000):

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0astfits image.fits --wcscoordsys= =3Deq-j2000

=C2=A0 =C2=A0 =C2=A0 This option only works with WCSLIB 7.5 and above (rele= ased in March

=C2=A0 =C2=A0 =C2=A0 2021), otherwise it will abort with an informative war= ning. This was

=C2=A0 =C2=A0 =C2=A0 done with the help of Mark Calabretta.

=C2=A0 =C2=A0 --keyvalue: Print only the values of the FITS keywords given = to this

=C2=A0 =C2=A0 =C2=A0 option in separate columns. This option can take multi= ple keyword

=C2=A0 =C2=A0 =C2=A0 names and many FITS files. Thus generating a table of = keyword values

=C2=A0 =C2=A0 =C2=A0 (with one row per file where the first column is the f= ile name). Its

=C2=A0 =C2=A0 =C2=A0 output can thus be written as a Table file or be piped= to the Table

=C2=A0 =C2=A0 =C2=A0 program for selecting a certain sub-set of your FITS f= iles based on

=C2=A0 =C2=A0 =C2=A0 key values, or sorting them for example. This was adde= d after a

=C2=A0 =C2=A0 =C2=A0 discussion with Alberto Madrigal.

=C2=A0 =C2=A0MakeCatalog:

=C2=A0 =C2=A0 - Newly added measurement columns:

=C2=A0 =C2=A0 =C2=A0 --upperlimitsb: upper-limit surface brightness for the= given label

=C2=A0 =C2=A0 =C2=A0 =C2=A0 (object or clump). This is useful for measuring= a dataset's

=C2=A0 =C2=A0 =C2=A0 =C2=A0 realistic surface brightness level for each lab= eled region by random

=C2=A0 =C2=A0 =C2=A0 =C2=A0 positioning of its footprint over undetected re= gions (not

=C2=A0 =C2=A0 =C2=A0 =C2=A0 extrapolated from the single-pixel noise level = like the "surface

=C2=A0 =C2=A0 =C2=A0 =C2=A0 brightness limit").

=C2=A0 =C2=A0NoiseChisel:

=C2=A0 =C2=A0 - Can now work on 3D datacubes. Since the configuration param= eters are

=C2=A0 =C2=A0 =C2=A0 different from images, it is recommended to manually s= et the 3D

=C2=A0 =C2=A0 =C2=A0 configuration (the '...' can be the input imag= e and options):

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 astnoisechisel --config=3D/usr/local/etc= /astnoisechisel-3d.conf ...

=C2=A0 =C2=A0 =C2=A0 Alternatively, you can set an 'astnoisechisel-3d&#= 39; alias like below and

=C2=A0 =C2=A0 =C2=A0 always easily run 'astnoisechisel-3d' on cubes= .

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 alias astnoisechisel-3d=3D"astnoise= chisel

--config=3D/usr/local/etc/astnoisechisel-3d.conf"

=C2=A0 =C2=A0Segment:

=C2=A0 =C2=A0 - Can now work on 3D datacubes. Similar to NoiseChisel, it re= quires a

=C2=A0 =C2=A0 =C2=A0 separate set of default configurations, so please see = the note under

=C2=A0 =C2=A0 =C2=A0 NoiseChisel above.

=C2=A0 =C2=A0Table:

=C2=A0 =C2=A0 - When given a value of '_all', the '--noblank= 9; option (that will remove

=C2=A0 =C2=A0 =C2=A0 all rows with a blank value in the given columns) will= check all

=C2=A0 =C2=A0 =C2=A0 columns of the final output table. This is handy when = you want a

=C2=A0 =C2=A0 =C2=A0 "clean" (no NaN values in any column) table,= but the table has many

=C2=A0 =C2=A0 =C2=A0 columns. Until now, '--noblank' needed the nam= e/number of each column

=C2=A0 =C2=A0 =C2=A0 to "clean".

=C2=A0 =C2=A0 --rowlimit: new option to specify the positional interval of = rows to

=C2=A0 =C2=A0 =C2=A0 show. Until now, the '--head' or '--tail&#= 39; options would just allow

=C2=A0 =C2=A0 =C2=A0 seeing the first or last few rows. You can use this ne= w option to view

=C2=A0 =C2=A0 =C2=A0 a contiguous set of rows in the middle of the table.=C2=A0 =C2=A0 --rowrandom: Make a random selection of the rows. This option= is useful

=C2=A0 =C2=A0 =C2=A0 when you have a large table and just want to see a ran= dom sub-set of

=C2=A0 =C2=A0 =C2=A0 the rows. It takes an integer, selects that many rows = from the input

=C2=A0 =C2=A0 =C2=A0 randomly.

=C2=A0 =C2=A0 --polygon: Similar to same option in Crop (mentioned above).<= br> =C2=A0 =C2=A0 - New column arithmetic operators:

=C2=A0 =C2=A0 =C2=A0 - 'set-AAA' operator (which allows storing the= popped operand into a

=C2=A0 =C2=A0 =C2=A0 =C2=A0 named variable for easy usage in complex operat= ions) is also usable

=C2=A0 =C2=A0 =C2=A0 =C2=A0 in Table's column arithmetic. Until now thi= s operator was only

=C2=A0 =C2=A0 =C2=A0 =C2=A0 available in the Arithmetic program (for operat= ion on images).

=C2=A0 =C2=A0 =C2=A0 - 'date-to-sec' Convert FITS date format ('= ;YYYY-MM-DDThh:mm:ss') into

=C2=A0 =C2=A0 =C2=A0 =C2=A0 seconds from the Unix epoch (1970-01-01,00:00:0= 0 UTC). This can be

=C2=A0 =C2=A0 =C2=A0 =C2=A0 very useful in combination with the new '--= keyvalue' option of the

=C2=A0 =C2=A0 =C2=A0 =C2=A0 Fits program to operate on FITS dates (for exam= ple sort your FITS

=C2=A0 =C2=A0 =C2=A0 =C2=A0 images based on observation time).

=C2=A0 =C2=A0Query:

=C2=A0 =C2=A0 - The Galactic extinction calculator of the NASA/IPAC Extraga= lactic

=C2=A0 =C2=A0 =C2=A0 Database (NED) is now available for any coordinate wit= h a command like

=C2=A0 =C2=A0 =C2=A0 below. For more, see the manual (the description of th= e 'extinction'

=C2=A0 =C2=A0 =C2=A0 dataset of NED in the "Available datasets" s= ection).

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 astquery ned --dataset=3Dextinction --ce= nter=3D49.9507,41.5116

=C2=A0 =C2=A0 =C2=A0 This feature was suggested by Ignacio Trujillo and imp= lemented with

=C2=A0 =C2=A0 =C2=A0 the help of Joseph Mazzarella.

=C2=A0 =C2=A0Library:

=C2=A0 =C2=A0 - New arithmetic operator macros (for the 'gal_arithmetic= ' function):

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_SIN: sine (input in deg).

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_COS: cosine (input in deg).

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_TAN: tangent (input in deg).

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_ASIN: Inverse sine (output in deg)= .

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_ACOS: Inverse cosine (output in de= g).

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_ATAN: Inverse tangent (output in d= eg)

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_ATAN2: Inverse tangent (with two i= nputs, out deg).

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_SINH: Hyperbolic sine.

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_COSH: Hyperbolic cosine.

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_TANH: Hyperbolic tangent.

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_ASINH: Inverse hyperbolic sine.

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_ACOSH: Inverse hyperbolic cosine.<= br> =C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_ATANH: Inverse hyperbolic tangent.=

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_MKNOISE_SIGMA: Add fixed-sigma noi= se.

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_MKNOISE_POISSON: Add Poisson noise= .

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_OP_COUNTS_TO_JY: Convert counts to Ja= nskys.

=C2=A0 =C2=A0 - New arithmetic flag macros:

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_FLAG_ENVSEED: read random number gene= rator seed

from env.

=C2=A0 =C2=A0 =C2=A0 - GAL_ARITHMETIC_FLAG_QUIET: don't print any warni= ngs by some

operators.

=C2=A0 =C2=A0 - WCS coordinate system macros:

=C2=A0 =C2=A0 =C2=A0 - GAL_WCS_COORDSYS_EQB1950: 1950.0 (Besselian-year) eq= uatorial coords.

=C2=A0 =C2=A0 =C2=A0 - GAL_WCS_COORDSYS_EQJ2000: 2000.0 (Julian-year) equat= orial coords.

=C2=A0 =C2=A0 =C2=A0 - GAL_WCS_COORDSYS_ECB1950: 1950.0 (Besselian-year) ec= liptic coords.

=C2=A0 =C2=A0 =C2=A0 - GAL_WCS_COORDSYS_ECJ2000: 2000.0 (Julian-year) eclip= tic coords.

=C2=A0 =C2=A0 =C2=A0 - GAL_WCS_COORDSYS_GALACTIC: Galactic coordinates.

=C2=A0 =C2=A0 =C2=A0 - GAL_WCS_COORDSYS_SUPERGALACTIC: Supergalactic coordi= nates.

=C2=A0 =C2=A0 - gal_array_file_recognized: For FITS images, check contents = also.

=C2=A0 =C2=A0 - gal_ds9_reg_read_polygon: Parse the polygon from an SAO DS9= region

file.

=C2=A0 =C2=A0 - gal_fits_file_recognized: Check the file contents when suff= ix

isn't FITS.

=C2=A0 =C2=A0 - gal_units_counts_to_mag: Convert counts to magnitudes.

=C2=A0 =C2=A0 - gal_units_mag_to_counts: Convert magnitudes to counts.

=C2=A0 =C2=A0 - gal_units_counts_to_jy: Convert counts to Janskys.

=C2=A0 =C2=A0 - gal_wcs_coordsys_from_string: WCS coordinate system from st= ring.

=C2=A0 =C2=A0 - gal_wcs_coordsys_identify: Parse WCS struct to find=C2=A0 c= oordinate

system.

=C2=A0 =C2=A0 - gal_wcs_coordsys_convert: Convert the coordinate system of = the WCS.

** Removed features

=C2=A0 =C2=A0 Nothing has been removed in this release.

** Changed features

=C2=A0 =C2=A0astscript-sort-by-night:

=C2=A0 =C2=A0 - Thanks to the new features in the Fits and Table programs (= described

=C2=A0 =C2=A0 =C2=A0 above), the efficiency of this script has improved dra= matically (from

=C2=A0 =C2=A0 =C2=A0 19 seconds to 0.42 seconds for about 650 FITS files us= ed in the

=C2=A0 =C2=A0 =C2=A0 test!).

=C2=A0 =C2=A0 - The default end to a "night" is set to 11:00a.m. = Until now it was

=C2=A0 =C2=A0 =C2=A0 9:00a.m. But in some cases, calibration images may be = taken after

=C2=A0 =C2=A0 =C2=A0 that. So to be safer in general it was incremented by = 2 hours.

=C2=A0 =C2=A0MakeCatalog:

=C2=A0 =C2=A0 - Surface brightness limit (SBL) calculations are now written= as

=C2=A0 =C2=A0 =C2=A0 standard FITS keywords in the output catalog/table. Un= til now, they

=C2=A0 =C2=A0 =C2=A0 were simply stored as 'COMMENT' keywords with = no name so it was hard

=C2=A0 =C2=A0 =C2=A0 to parse them automatically. From this version, the fo= llowing keywords

=C2=A0 =C2=A0 =C2=A0 are also written into the output table(s), see the &qu= ot;MakeCatalog

=C2=A0 =C2=A0 =C2=A0 output" section of the book for more: 'SBLSTD= ', 'SBLNSIG', 'SBLMAGPX',

=C2=A0 =C2=A0 =C2=A0 'SBLAREA', 'SBLMAG'.

=C2=A0 =C2=A0 - Upper-limit (UP) settings are also written into the output = tables as

=C2=A0 =C2=A0 =C2=A0 keywords (like surface brightness limit numbers above)= : 'UPNSIGMA',

=C2=A0 =C2=A0 =C2=A0 'UPNUMBER', 'UPRNGNAM', 'UPRNGSEE&= #39;, 'UPSCMLTP', 'UPSCTOL'.

=C2=A0 =C2=A0Library:

=C2=A0 =C2=A0 - GAL_ARITHMETIC_FLAG_FREE new name for GAL_ARITHMETIC_FREE.<= br> =C2=A0 =C2=A0 - GAL_ARITHMETIC_FLAG_NUMOK new name for GAL_ARITHMETIC_NUMOK= .

=C2=A0 =C2=A0 - GAL_ARITHMETIC_FLAG_INPLACE new name for GAL_ARITHMETIC_INP= LACE.

=C2=A0 =C2=A0 - GAL_ARITHMETIC_FLAGS_BASIC new name for GAL_ARITHMETIC_FLAG= S_ALL.

=C2=A0 =C2=A0 - gal_fits_key_write_wcsstr: also takes WCS structure as argu= ment.

=C2=A0 =C2=A0 - gal_fits_key_read_from_ptr: providing a numerical datatype = for the

=C2=A0 =C2=A0 =C2=A0 desired keyword's value is no longer mandatory. Wh= en not given, the

=C2=A0 =C2=A0 =C2=A0 smallest numeric datatype that can keep the value will= be found and

=C2=A0 =C2=A0 =C2=A0 used.

=C2=A0 =C2=A0 - gal_wcs_read: allows specifying the linear matrix of the WC= S.

=C2=A0 =C2=A0 - gal_wcs_read_fitsptr: allows specifying the linear matrix o= f the WCS.

** Bugs fixed

=C2=A0 =C2=A0bug #60082: Arithmetic library crash for integer operators lik= e modulo

=C2=A0 =C2=A0bug #60121: Arithmetic segfault when multi-operand output give= n to set-

=C2=A0 =C2=A0bug #60368: CosmicCalculator fails --setdirconf when redshift = isn't

given,

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0reported by Sepideh = Eskandarlou

=C2=A0 =C2=A0bug #60483: No warning when file given to '--config' d= oesn't exist,

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0reported by Sepideh = Eskandarlou

=C2=A0 =C2=A0bug #60484: Match crashes when called with --coord and --ccol2= (together)

=C2=A0 =C2=A0bug #60603: Table crashes with an empty input and --range,

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0reported by Sepideh = Eskandarlou.

=C2=A0 =C2=A0bug #60619: Crop crashes with differing image and WCS dimensio= n

=C2=A0 =C2=A0bug #60634: Crop's '--hstartwcs' and '--hendwc= s' wrong with comment keys

=C2=A0 =C2=A0bug #60644: MakeCatalog's Brightness error over-estimated = in images with

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0noise STD less than = 1. This was not an issue for S/N or

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Magnitude error on t= he same image (already corrected there).

[2] Lzip has better compression ratio and archival features compared

to the `.gz' or `.xz' formats. Therefore Gnuastro's alpha/test<= br> releases are only in this format, but for historical reasons we also

include `.gz' tarballs in the official releases. If you don't have<= br> Lzip (you can check with `lzip --version' command), download and

install it from its webpage:

=C2=A0 =C2=A0https://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:

=C2=A0 =C2=A0$ tar xf gnuastro-0.15.tar.lz

If the command above doesn't work, you have to un-compress and un-pack<= br> it with two separate commands (or use a pipe to feed the output of the

first into the second: `lzip -cd gnuastro-0.15.tar.lz | tar -xf -'):

=C2=A0 =C2=A0$ lzip -d gnuastro-0.15.tar.lz

=C2=A0 =C2=A0$ tar xf gnuastro-0.15.tar

[3] Use a .sig file to verify that the corresponding file (without the

.sig suffix) is intact.=C2=A0 First, be sure to download both the .sig file=

and the corresponding tarball.=C2=A0 Then, run a command like this:

=C2=A0 =C2=A0gpg --verify gnuastro-0.15.tar.gz.sig

If that command fails because you don't have the required public key,then run this command to import it:

=C2=A0 =C2=A0gpg --keyserver keys.gnupg.net --recv-keys 71E899012D174B66

and rerun the 'gpg --verify' command.