GNU Astronomy Utilities NEWS                          -*- outline -*-

* Noteworthy changes in release 0.2.28 (library 1.0.0) (2016-10-23) [alpha]

** Bug fixes

  Using `%zu' to print `size_t' variables for clean build on 32-bit
  systems.

  Crash in Table for some operating systems due to memory is now fixed (bug
  #49347).

  Table's man-page is now created and installed (bug #49418).

  Fixes in the documentation (sr #109170, bug #49419).

** New programs, functions, or macros

  `gal_wcs_pixel_scale_deg'
    Returns the pixel scale of the input WCS structure in degrees.

  `gal_wcs_angular_distance_deg'
    This has replaced `gal_wcs_angular_distance'. That function would take
    the angles in radians and also return its value in radians. Radians are
    very inconvenient and uncommon in celestial coordinates, so its input
    and output was modified to accept angles in degrees and also return the
    angular distance in degrees.

  `gnuastro/git.h'
    New header for wrappers on the Git library.

  `gal_git_describe'
    Bascially a wrapper on Git's describe functions to return the string
    for easy inclusion.

  `gal_fits_datatype_size
    Return the size (in bytes) of the given datatype.

  `GAL_GNUASTRO_HAVE_PTHREAD_BARRIER'
    This is a new name for the old `GAL_GNUASTRO_PTHREAD_BARRIER' to
    conform better with other such marcos.

  `GAL_GNUASTRO_HAVE_LIBGIT2'
    Has a value of 1 if the host system has the Git library (`libgit2').

** Removed programs, functions, macros

  `gal_wcs_angular_distance'
    See the explanation above for `gal_wcs_angular_distance_deg'.

  `GAL_GNUASTRO_PTHREAD_BARRIER'
    See the explanation above for `GAL_GNUASTRO_HAVE_PTHREAD_BARRIER'.

** New features

  ImageWarp can now align the image with the celestial coordiates using the
  `--align' option.

  ImageWarp can now warp without an input matrix, using the following
  options: `--shear', `--flip', `--project', `--rotate', `--scale',
  `--translate'. Any number of these transformations (along with the
  `--align' option) can be called at runtime and they will be applied in
  the same order to create one warping matrix. By default the FITS
  coordinates will also be corrected.

** Changes in behavior

  When a 2 by 2 matrix is given to ImageWarp, the FITS pixel positions
  (which define the center of a pixel as an integer) are automatically
  implemented internally, see "Invoking ImageWarp" in the manual for more.

  `gal_fits_write_keys_version' will now also write the Git commit
  description when the Git library is installed on the host system.


* Noteworthy changes in release 0.2 (library 0.0.0) (2016-10-03) [stable]

** Bug fixes

  Linker errors on some operating systems have been fixed (bug #48076).

  Several memory allocation, checks or redundancies have been fixed: bugs
  #48453, #48516, #48603, #48611, #48571, #48650, #48657, #48692, #48770,
  #47866, #48899, #49049, #49007.

  ImageCrop no longer crashes with very long output file names (bugs #46241
  and #45380).

** New programs or headers

  Table: a new utility to read and write FITS binary and ASCII tables. It
  can also print the column information or select columns using regular
  expressions (task #13579).

  Shared libraries and headers are now installed. The libraries can be used
  in C and C++ programs. This release includes the following headers:
  `gnuastro.h', `array.h', `box.h', `fits.h', `linkedlist.h', `mesh.h',
  `polygon.h', `qsort.h', `spatialconvolve.h', `statistics.h', `threads.h',
  `wcs.h', `txtarray.h' (task #13765).

  Gnuastro now comes with a script in its top source directory
  (`tmpfs-config-make') to configure and build it in the tmpfs (on the
  RAM), for those systems that have it. See the new "Configure and build in
  RAM" section in the book for more (task #14100).

** New features

  MakeProfiles also accepts WCS positions (task #13566).

  Flat profiles in MakeProfiles can be given a profile specific value. The
  new `--mforflatpix' option MakeProfile will use the value in the
  magnitude column as a fixed value for each pixel. This can be very useful
  in defining a mask, or creating segmentation maps or labeled images (task
  #14115).

  MakeProfiles can now use input image as canvas. Instead of specifying the
  WSC and image size paramteres manually. With the new `--inputascanvas'
  option, MakeProfiles will get this information (along with blank pixels)
  from an already existing image (task #14116).

  Type of output in MakeProfiles and Arithmetic can be specified with the
  `--type' option.

  Magnitude error column in MakeCatalog with the `--magnitudeerr' option.

  Arithmetic now has new conditional (task #13870) and logical operators
  (task #14153) along with an operator for actions only when conditions are
  true: `where'. The new `isblank' operator will also enable you to select
  blank, or masked, pixels (task #14146).

  The `--noerodequant' in NoiseChisel enables it to detect small and
  sharper profiles by disabling erosion on pixels above a certain quantile
  (task #14139).

  MakeCatalog can also calculate the upper limit magnitude for each given
  object in the image by randomly positioning the object's footprint over
  undetected regions of the image (task #14167).

  The source tarball is now also distributed with Lzip for a much better
  compression ratio and more robust archival file format.

** Changes in behavior

  The two MakeProfiles options `--setconsttonan', `--setconsttomin' have
  been removed (see `--mforflatpix' above for their alternative).

  MakeCatalog makes clump catalog only when asked (when the `WCLUMPS'
  header exists in the objects HDU). This can be very useful in cases like
  aperture photometry, when the object labels are not generated by
  NoiseChisel and so a clump image doesn't exist (task #14122).

  Default cosmological parameters in CosmiCalculator set to Plank 2015
  results: A&A (2016), 594, A13 (arXiv 1502.01589).

  The `--envseed' option (to read random number generator type and seed
  from the environment) to MakeProfiles and MakeNoise can also be given in
  the configuration files.


* Noteworthy changes in release 0.1 (2016-05-30) [stable]

** Bug fixes

  MakeCatalog's problem in checking the sizes of all input images is now
  fixed.

  NoiseChisel's problem with reading the `--kernel' option is now
  corrected (bug #46750).

  lib/mesh.c's problem in correctly calculating the mesh sizes was
  corrected (bug #47611).

  `make check' will not look into system utility configuration files. In
  the previous release, if Gnuastro was already installed, the
  configuration files already present on the system would also be read. Now
  only configuration files in the tested package are used (bug #47833).

  Ghostscript's version is now checked at configure time after its
  existence. ConvertType uses the `-dPDFFitPage' option to Ghostscript
  which was introduced in version 9.10, so older versions would pass
  configure but at `make check' time, the PDF test would fail. Now this
  test is skipped (bug #47868).

  Most tests would fail when `make check -jN' was run (to do the checks on
  N threads). A dependency structure has now been defined to fix this
  problem and greatly speed up the testing process (bug #47957).

** New utilities

  Arithmetic: For arithmetic operations on the pixels of input images. With
  this utility, it is now possible to add multiple images with each other,
  or easily calculate a median image. It as a large set of other arithmetic
  operations and some functions which can be done on the input image(s). An
  unlimited number of input images can be given, the images will only be
  loaded when necessary and will be freed as soon as they are no longer
  necessary.

  CosmicCalculator: For doing cosmological calculations at a given
  redshift.

** New features

  All the utilities that would produce a log file now have a `--nolog'
  option to avoid printing a log file.

  The tiled image compression convention (.fits.fz, created with `fpack')
  files can now be used as input in the utilities.

  ImageCrop can now also crop a polygon from the input image. The polygon
  vertices can be given in the world or image coordinates. The simple
  `--polygon' option will keep the insides of the polygon while the
  `--outpolygon' will keep the outside of the polygon.

  ImageCrop and ImageWarp can now read the WCS information of a FITS header
  from a specific region with the `--hstartwcs' and `--hendwcs'. In some
  older FITS images, when the WCS distortions were not as standardized as
  now, there were cases which would confuse WCSLIB.

  NoiseChisel can now save the grown clumps image instead of the original
  clumps image in the output with the `--grownclumps' option.

  Convolve can now do deconvolution with the `--makekernel' option.

  MakeProfiles now has a `--setconsttonan' option which will fill the
  contant profiles with a NaN (blank) value, not a number, allowing the
  creations of elliptical masked regions for example.

  Header can now import a keyword directly from a string with the `--asis'
  option.

  MakeCatalog can now output the geometric (average position independent of
  pixel flux value) positions of the objects too.

  MakeCatalog can now produce the object's elliptical parameters (for
  example semi-major axis, semi-minor axis, and position angle). This can
  also be done both in standard flux weighted and geometric methods too.

  MakeCatalog now has a `--threshold' function to only use pixels above a
  given threshold in each object or clump. This is useful to avoid diffuse
  regions in calculations.

  MakeCatalog now has a `--noriverbrightness' option. With this option it
  is possible to calculate the clump flux without subtracting the river
  pixels on its circumference.

  The number of CPU threads is no longer a configuration option, it is now
  determined at runtime for each program. Therefore it is now easily
  possible to built Gnuastro on one system to use on another (commonly done
  in the GNU/Linux package managers). Therefore ./configure no longer has a
  `--with-numthreads' option.

  Every commit in Gnuastro's history (after implementing this feature) can
  now be given a unique version number. Since the version number is printed
  in possible outputs, this feature can help reproducibility, even when the
  an official/stable release isn't used.

  The AUTHORS file is now automatically generated from the version
  controlled history. Also all the authors that have contributed to
  Gnuastro are included in the second (copyright) page of the PDF book.

  All the bootstrapped directories are now moved with a new `bootstrapped'
  directory in the top source directory. This significantly cleans up this
  directory, allowing users to more easily find the hand-written Gnuastro
  source files they like.

  A `bug-gnuastro' Info page was created so users can easily go to that
  page for information on how to submit bug reports. It is accessible on
  the command line with the command `info bug-gnuastro'.

** Changes in behavior

  The separate utilities no longer have a separate version number. With the
  introduction of unofficial version numbers generated from each commit in
  Gnuastro's history, the utility version numbers would cause confusion.

  MakeProfiles will now add a suffix to the individual images and put them
  in the output directory if specified.

  NoiseChisel and MakeCatalog now use the median mesh standard deviation to
  define the over-all depth of the image. Previously they used the maximum
  value (or the least depth).

  NoiseChisel no longer outputs a sky subtracted image. This job can now be
  done with the new Arithmetic utility.

  NoiseChisel's `--segsnhistnbins' option was renamed to
  `--clumpsnhistnbins'.

** Improvements

  NoiseChisel's default quantiles were changed to 0.95 from 0.99. Since the
  old value was too severe.

  NoiseChisel's S/N thresholds are now found from the distribution of
  pseudo-detections and clumps from the full image, not within each large
  mesh. This was done to increase the accuracy of the S/N threshold. There
  were commonly not enough points in large mesh sizes and this would add
  scatter. With ImageCrop's polygon capabilities, it is now easily possible
  to cut out the region that has uniform noise properties (depth and
  correlated noise). Therefore the old `--checkdetectionsn' and
  `checkclumpsn' options are no longer present.

  When building from the version controlled source, the whole bootstrapping
  process is done with one script. In the previous version, all the
  separate operations should have been done by hand (as instructed in the
  old manual).

  All the build steps now report what was done and suggest the next
  step. This feature can be disabled with the `--disable-guide-message' at
  configure time.
