Dear all,
I am happy to announce the sixth release of GNU Astronomy Utilities
(Gnuastro 0.6).
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), respectively,
please see the links below:
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/General-program-usage-tutorial.html
Many new features have been added since the fifth release and almost
all bugs that were found have been fixed. For the full list of new
features, please see the NEWS file below [1].
The most important feature in this release is that NoiseChisel's
segmentation features were spun-off to a new program called
"Segment". This was done for improved modularity (creativity in using
Gnuastro). Therefore NoiseChisel is now ONLY in charge of detection
and will return a binary (0 or 1 valued) output marking detections. As
described in the tutorials, you can then feed this into Segment for
segmentation. As always, the book/manual is fully up to date with this
and all other changed/new features. Also, by popular demand, a new
tutorial has been added for detecting large objects to very low
surface brightness limits: 1/20th of the noise level in the case of
the data set used in the demonstration.
Here are the the compressed source files of this release. See [2] for
uncompressing Lzip tarballs.
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.6.tar.lz (3.2MB)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.6.tar.gz (4.8MB)
Here are the GPG detached signatures. See [3] for verifying the
integrity of this tarball with these signatures.
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.6.tar.lz.sig (833B)
https://ftp.gnu.org/gnu/gnuastro/gnuastro-0.6.tar.gz.sig (833B)
Use a mirror for higher download bandwidth:
https://ftpmirror.gnu.org/gnuastro
Here are the MD5 and SHA1 checksums:
8c34547c1d9707414c399d9f2dce78c8 gnuastro-0.6.tar.lz
2df272ff8225f0d5fee405dc0cf8eccb gnuastro-0.6.tar.gz
ca5d67f488168662078916d01615f2f1b60f4cd2 gnuastro-0.6.tar.lz
960f08572862332503e9428e5b3a438c9794d0aa gnuastro-0.6.tar.gz
I am very grateful to Leindert Boogaard and Thérèse Godefroy for
contributing to the source of this release. I would also like to thank
the following people who provided many great comments, suggestions
and/or bug reports to this release (in alphabetical order): Nushkia
Chamba, Nima Dehdilani, Antonio Diaz Diaz, Lee Kelvin, Brandon Kelly,
Alan Lefor, Guillaume Mahler, Bertrand Pain, Ole Streicher, Michel
Tallon, Juan C. Tello, Éric Thiébaut, David Valls-Gabaud, Aaron
Watkins, Sara Yousefi Taemeh, Johannes Zabl.
If any of Gnuastro's program are useful in your work, please run the
relevant programs with a `--cite' option (it can be different for
different programs). Citations are vital for the continued work on
Gnuastro, so please don't forget to support us by doing so.
This tarball was bootstrapped (initially built) with the tools
below. Note that these are not the tarball build dependencies.
Texinfo 6.5
Autoconf 2.69
Automake 1.15.1
Help2man 1.47.6
Gnulib v0.1-1943-g7ff7a27a8
Autoconf archives v2018.03.13-28-ga67f384
For tarball build dependencies, please see:
https://www.gnu.org/s/gnuastro/manual/html_node/Dependencies.html
Cheers,
Mohammad
--
Mohammad Akhlaghi
Postdoctoral research fellow,
Centre de Recherche Astrophysique de Lyon (CRAL),
Observatoire de Lyon. 9, Avenue Charles André,
Saint Genis Laval (69230), France.
[1] Noteworthy changes in release 0.6 (library 4.0.0) (2018-06-04) [stable]
** New features
Building:
- New optional dependency: The TIFF library (libtiff).
All programs:
- Input image dataset(s) can be in any of the formats recognized by
Gnuastro (e.g., FITS, TIFF, JPEG), provided that their libraries
(optional dependencies) were present at installation time.
New program:
- Segment: new program in charge of segmentation over detections. This
operation was previously done by NoiseChisel. NoiseChisel is now ONLY
in charge of detection.
Arithmetic:
- erode: Erode the foreground of a binary dataset.
- dilate: Dilate the foreground of a binary dataset.
- filter-sigclip-mean: sigma-clipped, mean filter operator.
- filter-sigclip-median: sigma-clipped, median filter operator.
- connected-components: label the connected elements of the input.
- invert: subtract the maximum of unsigned types (absorption to
emission).
- interpolate-medianngb: Interpolate (only blanks) with nearest
neighbors.
ConvertType:
- TIFF images can also be used as input.
MakeCatalog:
MakeCatalog will only read the datasets necessary for the requested
columns. Until now, it would read all the possible datasets and all the
intermediate measurements. This is thus major improvement in memory and
CPU usage. As a result, the input argument is no longer assumed to be
the values file, but the object labels file. Please see the
"MakeCatalog inputs and basic settings" section of the book for
more. Here is the summary of the new options:
--insky: Sky value as a single value or file (dataset).
--instd: Sky standard deviation as a single value or file (dataset).
--valuesfile: filename containing the values dataset.
--valueshdu: HDU/extension containing the values dataset.
--clumpscat: Make a clumps catalog also.
--noclumpsort: Don't sort the clumps catalog by host object ID.
--subtractsky: Subtract the given Sky from the values dataset.
--variance: input standard deviation image is actually variance.
--checkupperlimit: make a table for random positions and measurements.
--geoarea: the number of labeled pixels (irrespective of value).
--brightnesserr: error in estimating the brightness.
--mean: calculate the mean pixel value within an object or clump.
--median: calculate the median pixel value within an object or clump.
--upperlimitsigma: position in random distribution (in units of sigma).
--upperlimitquantile: position in random distribution (quantile).
--upperlimitonesigma: 1sigma value of the random distribution.
--upperlimitskew: (mean-median)/sigma or skewness of random
distribution.
NoiseChisel:
- New tutorial on detecting large and extended targets.
--rawoutput: only output the detection labels and Sky and its STD.
--ignoreblankinsky: don't set the pixels that are blank in the input to
blank in the Sky and Sky standard deviation outputs (when
`--oneelempertile' is not called).
--label: label the connected detections. Until now this was the default
behavior. However, from this release, NoiseChisel is only in charge
of detection. Segmentation is done by a new program (Segment). Since
detection is ultimately just a binary operator, the default output
now has an 8-bit unsigned integer type with values of 0 or 1. With
this option, you can ask for it to label/count the connected
detections instead of the default binary output.
Statistics:
--manualbinrange: histogram or CFP range can be outside of
distribution.
--ignoreblankinsky: similar to same option in NoiseChisel.
Libraries:
gal_array_read: read array from any of known formats (FITS, TIFF,
JPEG,...).
gal_array_read_to_type: similar to `gal_array_read', but to given type.
gal_array_read_one_ch: Read a dataset, abort if it has multiple
channels.
gal_array_read_one_ch_to_type: Make sure input is in one channel
and type.
gal_binary_label_holes: label the holes within the foreground.
gal_blank_is: check to see if argument is blank in its type or not.
gal_eps_name_is_eps: Returns 1 if given filename is EPS.
gal_eps_suffix_is_eps: Returns 1 if given suffix is EPS.
gal_eps_to_pt: Converts dataset size to PostScript points.
gal_eps_write: Writes a dataset into an EPS file.
gal_interpolate_1d_blank: Fill blank elements through interpolation.
gal_interpolate_1d_make_gsl_spline: Allocate and initalize
`gsl_spline'.
gal_jpeg_name_is_jpeg: Returns 1 if given filename is JPEG.
gal_jpeg_suffix_is_jpeg: Returns 1 if given suffix is JPEG.
gal_jpeg_read: Reads input JPEG image into `gal_data_t'.
gal_jpeg_write: Writes a `gal_data_t' into a JPEG file.
gal_label_grow_indexs: grow known indexs into desired areas.
gal_label_watershed: apply watershed algorithm on desired region.
gal_label_clump_significance: measure significance of all clumps in
region.
gal_pdf_name_is_pdf: Returns 1 if given filename is PDF.
gal_pdf_suffix_is_pdf: Returns 1 if given suffix is PDF.
gal_pdf_write: Writes a dataset into an PDF file.
gal_pointer_allocate_mmap: Allocate space in a file, not in RAM.
gal_qsort_index_single_d: Sort indexs of single array in decreasing
order.
gal_qsort_index_single_i: Sort indexs of single array in decreasing
order.
gal_qsort_index_multi_d: Sort indexs in multiple arrays (different
threads).
gal_qsort_index_multi_i: Sort indexs in multiple arrays (different
threads).
gal_tiff_name_is_tiff: check if name contains a TIFF suffix.
gal_tiff_suffix_is_tiff: check if suffix is a TIFF suffix.
gal_tiff_dir_string_read: convert a string to a TIFF directory number.
gal_tiff_read: Read the contents of a TIFF "directory" to `gal_data_t'.
** Removed features
NoiseChisel:
- Segmentation (and thus the options below) moved to the new Segment
program: --onlydetection, --segsnminarea, --checkclumpsn, --segquant,
--keepmaxnearriver, --gthresh, --minriverlength, --objbordersn,
--grownclumps, --checksegmentation.
--skysubtracted: no longer necessary, included in noise measuremnts.
MakeCatalog:
--skysubtracted: no longer necessary, included in noise measuremnts.
Library:
- The macros `GAL_STATISTICS_SORTED_NOT',
`GAL_STATISTICS_SORTED_INVALID', `GAL_STATISTICS_SORTED_INCREASING',
`GAL_STATISTICS_SORTED_DECREASING': these macros are removed because
we already have the `GAL_DATA_FLAG_SORT*'' bit-flags in `gal_data_t'.
** Changed features
Arithmetic:
- filter-mean: a blank value in the input can be non-blank in the
output when non-blank elements present in filter.
- filter-median: similar to filter-mean.
Fits:
--history: can be called/written multiple times in one run.
--comment: can be called/written multiple times in one run.
MakeCatalog:
- The `WCLUMPS' keyword in the objects labeled image is no longer used
to see if a clumps catalog should also be made. To build a clumps
catalog, you can now use the `--clumpscat' option.
- Estimation of noise-level is now done per-pixel over the whole
label. Until now the average noise level was used.
--objectsfile has been removed. The main input argument is now assumed
to be the objects file.
NoiseChisel:
From this release, NoiseChisel is only in charge of detection and won't
do segmentation any more. The new Segment program is in charge of
segmentation. Many of the changes below are due to this new limited
scope of NoiseChisel.
--kernel: value `none' will disable convolution.
- Renamed options:
--convolvedhdu ==> --chdu
--wkhdu ==> --whdu
--detsnminarea ==> --snminarea
--checkdetsn ==> --checksn
--detquant ==> --snquant
- By default the output detection map is a binary image (values of
0 or 1).
- With no output name, the output has a `_detected.fits' suffix.
Segment:
- [Previously in NoiseChisel]: For finding true clumps, the difference
in the peak of the clump and the highest valued river pixel, divided
by the noise standard deviation are used. Until now, the total
signal-to-noise ratio was used as a criteria. In initial tests, this
algorithm was much more promising in detecting clumps over strong
gradients and also on flatter gradients.
Table:
--column: multiple columns (comma separated) can be used in one
instance of this option (multiple instances of this option are
still acceptable also).
Libraries:
gal_binary_holes_fill: new name for `gal_binary_fill_holes'.
gal_dimension_is_different: new name for `gal_data_dsize_is_different'.
gal_fits_img_read: now only reads the data not the WCS, therefore it no
longer needs the last two arguments. A subsequent call to
`gal_wcs_read' can be used to read the WCS information in the file.
gal_pointer_increment: new name for `gal_data_ptr_increment'.
gal_pointer_num_between: new name for `gal_data_ptr_dist'.
gal_pointer_allocate: replaces `gal_data_malloc_array' and
`gal_data_calloc_array', through an argument you can ask for the
allocated memory to be cleared or not.
gal_qsort_TYPE_i: new name for gal_qsort_TYPE_increasing.
gal_qsort_TYPE_d: new name for gal_qsort_TYPE_decreasing.
gal_statistics_is_sorted: can now also update the bit-flags regarding
the sorted nature of the input (to optimize future calls to the
function).
gal_statistics_quantile_function: returns `inf' or `-inf' if the given
value is smaller than the minimum or larger than the maximum of the
input dataset's range. Until now, it would return blank in such
cases.
gal_statistics_number: the output dataset now has a `size_t' type.
Until
now it was `uint64_t'.
** Bug fixes
bug #50957: --version output not possible on Mac OS X.
bug #52979: Many unused result warnings for asprintf in some compilers.
bug #53122: Configure time CPPFLAGS and LDFLAGS don't pass to
BuildProgram.
bug #53142: Crash when printing values with the `--onlyversion' option.
bug #53147: NULL value of onlyversion option causing a crash.
bug #53226: Match output directory ignored when making multiple files.
bug #53230: Statistics program bad results on integer columns with
limits.
bug #53268: NoiseChisel crash when no growth is possible.
bug #53295: MakeCatalog parses area larger than clump.
bug #53304: NoiseChisel crash when there is no detection.
bug #53312: Fits crash on keyword editing (except --delete).
bug #53407: Instrumental noise in MakeNoise should be squared.
bug #53424: Sigma-clipping seg-faults when there are no more elements.
bug #53580: Warp crash when no WCS present.
bug #53825: NoiseChisel not accounting for fully zero-valued tiles.
[2] Lzip has better compression ratio and archival features compared
to the common `.gz' or `.xz' formats. Therefore Gnuastro's stable
releases are made in `.lz' along with `.gz' for historical
reasons. The alpha/test releases are only in `.lz'. If you don't have
Lzip, can download and install it from its webpage:
https://www.nongnu.org/lzip/lzip.html
If you have GNU Tar, then the single command below should uncompress and
un-pack the tarball:
$ tar xf gnuastro-0.6.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 -d gnuastro-0.6.tar.lz
$ tar xf gnuastro-0.6.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.6.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 1849814357EFB73A
and rerun the 'gpg --verify' command.
--
If you have a working or partly working program that you'd like
to offer to the GNU project as a GNU package,
see https://www.gnu.org/help/evaluation.html.