gnuastro-commits
[Top][All Lists]
Advanced

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

[gnuastro-commits] master eb91303 042/113: Merged recent work in master,


From: Mohammad Akhlaghi
Subject: [gnuastro-commits] master eb91303 042/113: Merged recent work in master, conflicts fixed
Date: Fri, 16 Apr 2021 10:33:40 -0400 (EDT)

branch: master
commit eb91303fb1514f8e76da69cc1714552733ca10f0
Merge: 218a7db b441b03
Author: Mohammad Akhlaghi <akhlaghi@gnu.org>
Commit: Mohammad Akhlaghi <akhlaghi@gnu.org>

    Merged recent work in master, conflicts fixed
    
    Some small and simple conflicts existed, but they were easily corrected.
---
 NEWS                                |  11 +++-
 bin/noisechisel/args.h              |  64 +++++++++++++++++-----
 bin/noisechisel/astnoisechisel.conf |  11 ++--
 bin/noisechisel/main.h              |   2 +
 bin/noisechisel/noisechisel.c       |  36 +++++++-----
 bin/noisechisel/ui.c                |  57 ++++++++++++++-----
 bin/noisechisel/ui.h                |   2 +
 configure.ac                        |   8 +--
 doc/announce-acknowledge.txt        |   1 +
 doc/gnuastro.texi                   | 106 +++++++++++++++++++++++++++---------
 doc/release-checklist.txt           |  14 +++++
 11 files changed, 236 insertions(+), 76 deletions(-)

diff --git a/NEWS b/NEWS
index 23b3928..269a79a 100644
--- a/NEWS
+++ b/NEWS
@@ -45,11 +45,18 @@ GNU Astronomy Utilities NEWS                          -*- 
outline -*-
   `--geora', `--geodec', `--clumpsra', `--clumpsdec', `--clumpsgeora',
   `--clumpsgeodec'. No alias is currently defined for the latter group.
 
-  MakeCatalog: The new `--uprange' option allows you to specify a range for
+  MakeCatalog: the new `--uprange' option allows you to specify a range for
   the random values around each object. This is useful when the noise
   properties of the dataset vary gradually and sampling from the whole
   dataset might produce biased results.
 
+  NoiseChisel: with the new `--convolved' and `--convolvedhdu' options,
+  NoiseChisel will not convolve the input any more and use the given
+  dataset instead. In many cases, as the inputs get larger, convolution is
+  the most time consuming step of NoiseChisel. With this option, you can
+  greatly speed up your tests (to find the best parameters by varying them,
+  for a given analysis). See the book for more information and examples.
+
   NoiseChisel: with the new `--widekernel' option it is now possible to use
   a wider kernel to identify which tiles contain signal. The rest of the
   steps (identifying the quantile threshold on the selected tiles and etc)
@@ -143,7 +150,7 @@ GNU Astronomy Utilities NEWS                          -*- 
outline -*-
 
   MakeCatalog crash in upper-limit with full size label (bug #52281).
 
-  NoiseChisel leaving unlabeld regions after clump growth (bug #52327).
+  NoiseChisel leaving unlabeled regions after clump growth (bug #52327).
 
 
 
diff --git a/bin/noisechisel/args.h b/bin/noisechisel/args.h
index d672e28..e44efbd 100644
--- a/bin/noisechisel/args.h
+++ b/bin/noisechisel/args.h
@@ -60,6 +60,32 @@ struct argp_option program_options[] =
       GAL_OPTIONS_NOT_SET
     },
     {
+      "convolved",
+      UI_KEY_CONVOLVED,
+      "STR",
+      0,
+      "Convolved image file to avoid convolution.",
+      GAL_OPTIONS_GROUP_INPUT,
+      &p->convolvedname,
+      GAL_TYPE_STRING,
+      GAL_OPTIONS_RANGE_ANY,
+      GAL_OPTIONS_NOT_MANDATORY,
+      GAL_OPTIONS_NOT_SET
+    },
+    {
+      "convolvedhdu",
+      UI_KEY_CONVOLVEDHDU,
+      "STR",
+      0,
+      "HDU/extension of convolved image in file.",
+      GAL_OPTIONS_GROUP_INPUT,
+      &p->convolvedhdu,
+      GAL_TYPE_STRING,
+      GAL_OPTIONS_RANGE_ANY,
+      GAL_OPTIONS_NOT_MANDATORY,
+      GAL_OPTIONS_NOT_SET
+    },
+    {
       "widekernel",
       UI_KEY_WIDEKERNEL,
       "STR",
@@ -144,6 +170,8 @@ struct argp_option program_options[] =
 
 
 
+
+
     /* Output options. */
     {
       "onlydetection",
@@ -158,19 +186,7 @@ struct argp_option program_options[] =
       GAL_OPTIONS_NOT_MANDATORY,
       GAL_OPTIONS_NOT_SET
     },
-    {
-      "grownclumps",
-      UI_KEY_GROWNCLUMPS,
-      0,
-      0,
-      "Save grown clumps instead of original.",
-      GAL_OPTIONS_GROUP_OUTPUT,
-      &p->grownclumps,
-      GAL_OPTIONS_NO_ARG_TYPE,
-      GAL_OPTIONS_RANGE_0_OR_1,
-      GAL_OPTIONS_NOT_MANDATORY,
-      GAL_OPTIONS_NOT_SET
-    },
+
 
 
 
@@ -471,6 +487,8 @@ struct argp_option program_options[] =
 
 
 
+
+
     /* Segmentation */
     {
       0, 0, 0, 0,
@@ -569,6 +587,19 @@ struct argp_option program_options[] =
       GAL_OPTIONS_NOT_SET
     },
     {
+      "grownclumps",
+      UI_KEY_GROWNCLUMPS,
+      0,
+      0,
+      "Save grown clumps instead of original.",
+      UI_GROUP_SEGMENTATION,
+      &p->grownclumps,
+      GAL_OPTIONS_NO_ARG_TYPE,
+      GAL_OPTIONS_RANGE_0_OR_1,
+      GAL_OPTIONS_NOT_MANDATORY,
+      GAL_OPTIONS_NOT_SET
+    },
+    {
       "checksegmentation",
       UI_KEY_CHECKSEGMENTATION,
       0,
@@ -583,6 +614,10 @@ struct argp_option program_options[] =
     },
 
 
+
+
+
+    /* Operating mode options. */
     {
       "continueaftercheck",
       UI_KEY_CONTINUEAFTERCHECK,
@@ -599,6 +634,9 @@ struct argp_option program_options[] =
 
 
 
+
+
+    /* End of options. */
     {0}
   };
 
diff --git a/bin/noisechisel/astnoisechisel.conf 
b/bin/noisechisel/astnoisechisel.conf
index bf44ac6..71bdd47 100644
--- a/bin/noisechisel/astnoisechisel.conf
+++ b/bin/noisechisel/astnoisechisel.conf
@@ -18,13 +18,14 @@
 # warranty.
 
 # Input:
- khdu                1
- wkhdu               1
- minskyfrac        0.7
- minnumfalse       100
+ khdu                 1
+ wkhdu                1
+ convolvedhdu         1
+ minskyfrac         0.7
+ minnumfalse        100
 
 # Tessellation
- largetilesize 200,200
+ largetilesize  200,200
 
 # Detection:
  mirrordist         1.5
diff --git a/bin/noisechisel/main.h b/bin/noisechisel/main.h
index c994c4f..2f17f2f 100644
--- a/bin/noisechisel/main.h
+++ b/bin/noisechisel/main.h
@@ -48,6 +48,8 @@ struct noisechiselparams
   char             *inputname;  /* Input filename.                        */
   char            *kernelname;  /* Input kernel filename.                 */
   char        *widekernelname;  /* Name of wider kernel to be used.       */
+  char         *convolvedname;  /* Convolved image (to avoid convolution).*/
+  char          *convolvedhdu;  /* HDU of convolved image.                */
   char                  *khdu;  /* Kernel HDU.                            */
   char                 *wkhdu;  /* Wide kernel HDU.                       */
   uint8_t       skysubtracted;  /* Input has been Sky subtracted before.  */
diff --git a/bin/noisechisel/noisechisel.c b/bin/noisechisel/noisechisel.c
index 6ccf12f..f417454 100644
--- a/bin/noisechisel/noisechisel.c
+++ b/bin/noisechisel/noisechisel.c
@@ -59,20 +59,31 @@ noisechisel_convolve(struct noisechiselparams *p)
   struct gal_tile_two_layer_params *tl=&p->cp.tl;
 
   /* Convovle with sharper kernel. */
-  if(!p->cp.quiet) gettimeofday(&t1, NULL);
-  p->conv=gal_convolve_spatial(tl->tiles, p->kernel, p->cp.numthreads,
-                               1, tl->workoverch);
-  gal_checkset_allocate_copy(p->widekernel?"CONVOLVED-SHARPER":"CONVOLVED",
-                             &p->conv->name);
-
-  /* Report timing and write check image if necessary. */
-  if(!p->cp.quiet)
+  if(p->conv==NULL)
     {
-      if(p->widekernel)
-        gal_timing_report(&t1, "Convolved with sharper kernel.", 1);
-      else
-        gal_timing_report(&t1, "Convolved with given kernel.", 1);
+      /* Make the convolved image. */
+      if(!p->cp.quiet) gettimeofday(&t1, NULL);
+      p->conv = gal_convolve_spatial(tl->tiles, p->kernel, p->cp.numthreads,
+                                     1, tl->workoverch);
+
+      /* Report and write check images if necessary. */
+      if(!p->cp.quiet)
+        {
+          if(p->widekernel)
+            gal_timing_report(&t1, "Convolved with sharper kernel.", 1);
+          else
+            gal_timing_report(&t1, "Convolved with given kernel.", 1);
+        }
     }
+
+  /* Set a fixed name for the convolved image (since it will be used in
+     many check images). */
+  if(p->conv->name) free(p->conv->name);
+  gal_checkset_allocate_copy( ( p->widekernel
+                                ? "CONVOLVED-SHARPER"
+                                : "CONVOLVED" ), &p->conv->name);
+
+  /* Save the convolution step if necessary. */
   if(p->detectionname)
     {
       gal_fits_img_write(p->input, p->detectionname, NULL, PROGRAM_NAME);
@@ -87,7 +98,6 @@ noisechisel_convolve(struct noisechiselparams *p)
                                     p->cp.numthreads, 1, tl->workoverch);
       gal_checkset_allocate_copy("CONVOLVED-WIDER", &p->wconv->name);
 
-      /* Report the status: */
       if(!p->cp.quiet)
         gal_timing_report(&t1, "Convolved with wider kernel.", 1);
     }
diff --git a/bin/noisechisel/ui.c b/bin/noisechisel/ui.c
index 4f315ac..41c561a 100644
--- a/bin/noisechisel/ui.c
+++ b/bin/noisechisel/ui.c
@@ -119,6 +119,7 @@ ui_initialize_options(struct noisechiselparams *p,
       /* Select individually. */
       switch(cp->coptions[i].key)
         {
+        case GAL_OPTIONS_KEY_LOG:
         case GAL_OPTIONS_KEY_TYPE:
         case GAL_OPTIONS_KEY_SEARCHIN:
         case GAL_OPTIONS_KEY_IGNORECASE:
@@ -227,6 +228,14 @@ ui_ngb_check(size_t value, char *optionname)
 static void
 ui_read_check_only_options(struct noisechiselparams *p)
 {
+  /* If the convolved option is given, then the convolved HDU is also
+     mandatory. */
+  if(p->convolvedname && p->convolvedhdu==NULL)
+    error(EXIT_FAILURE, 0, "no value given to `--convolvedhdu'. When the "
+          "`--convolved' option is called (to specify a convolved image "
+          "and avoid convolution) it is mandatory to also specify a HDU "
+          "for it");
+
   /* A general check on the neighbor connectivity values. */
   ui_ngb_check(p->erodengb,   "erodengb");
   ui_ngb_check(p->openingngb, "openingngb");
@@ -712,12 +721,28 @@ ui_preparations(struct noisechiselparams *p)
   ui_preparations_read_input(p);
 
 
-  /* Check for blank values to help later processing.  */
-  gal_blank_present(p->input, 1);
+  /* If a convolved image was given, read it in. Otherwise, read the given
+     kernel. */
+  if(p->convolvedname)
+    {
+      /* Read the input convolved image. */
+      p->conv = gal_fits_img_read_to_type(p->convolvedname, p->convolvedhdu,
+                                          GAL_TYPE_FLOAT32, p->cp.minmapsize,
+                                          0, 0);
+
+      /* Make sure the convolved image is the same size as the input. */
+      if( gal_data_dsize_is_different(p->input, p->conv) )
+        error(EXIT_FAILURE, 0, "%s (hdu %s), given to `--convolved' and "
+              "`--convolvehdu', is not the same size as NoiseChisel's "
+              "input: %s (hdu: %s)", p->convolvedname, p->convolvedhdu,
+              p->inputname, p->cp.hdu);
+    }
+  else
+    ui_prepare_kernel(p);
 
 
-  /* Read in the kernel for convolution. */
-  ui_prepare_kernel(p);
+  /* Check for blank values to help later processing.  */
+  gal_blank_present(p->input, 1);
 
 
   /* Prepare the tessellation. */
@@ -815,16 +840,22 @@ ui_read_check_inputs_setup(int argc, char *argv[],
       printf("  - Using %zu CPU thread%s\n", p->cp.numthreads,
              p->cp.numthreads==1 ? "." : "s.");
       printf("  - Input: %s (hdu: %s)\n", p->inputname, p->cp.hdu);
-      if(p->kernelname)
-        printf("  - %s: %s (hdu: %s)\n",
-               p->widekernelname ? "Sharp Kernel" : "Kernel",
-               p->kernelname, p->khdu);
+      if(p->convolvedname)
+        printf("  - Convolved input: %s (hdu: %s)\n",
+               p->convolvedname, p->convolvedhdu);
       else
-        printf(p->kernel->ndim==2
-               ? "  - %s: FWHM=2 pixel Gaussian.\n"
-               : "  - %s: FWHM=1.5 pixel Gaussian (half extent in "
-               "3rd dimension).\n",
-               p->widekernelname ? "Sharp Kernel" : "Kernel");
+        {
+          if(p->kernelname)
+            printf("  - %s: %s (hdu: %s)\n",
+                   p->widekernelname ? "Sharp Kernel" : "Kernel",
+                   p->kernelname, p->khdu);
+          else
+            printf(p->kernel->ndim==2
+                   ? "  - %s: FWHM=2 pixel Gaussian.\n"
+                   : "  - %s: FWHM=1.5 pixel Gaussian (half extent in "
+                   "3rd dimension).\n",
+                   p->widekernelname ? "Sharp Kernel" : "Kernel");
+        }
       if(p->widekernelname)
         printf("  - Wide Kernel: %s (hdu: %s)\n", p->widekernelname,
                p->wkhdu);
diff --git a/bin/noisechisel/ui.h b/bin/noisechisel/ui.h
index 9481981..ec3fe82 100644
--- a/bin/noisechisel/ui.h
+++ b/bin/noisechisel/ui.h
@@ -76,6 +76,8 @@ enum option_keys_enum
   /* Only with long version (start with a value 1000, the rest will be set
      automatically). */
   UI_KEY_KHDU               = 1000,
+  UI_KEY_CONVOLVED,
+  UI_KEY_CONVOLVEDHDU,
   UI_KEY_WKHDU,
   UI_KEY_MINNUMFALSE,
   UI_KEY_ONLYDETECTION,
diff --git a/configure.ac b/configure.ac
index 9bb1e44..b2b1946 100644
--- a/configure.ac
+++ b/configure.ac
@@ -93,7 +93,7 @@ AC_DEFINE([IN_GNUASTRO_BUILD], [1], [In building, not usage])
 
 
 
-# Generic compiler flags for all subdirectories.
+# Generic compiler flags for all sub-directories.
 CFLAGS="-Wall -O3 $CFLAGS"
 LDFLAGS="-L\$(top_builddir)/lib $LDFLAGS"
 CPPFLAGS="-I\$(top_srcdir)/lib $CPPFLAGS"
@@ -596,7 +596,7 @@ AC_ARG_ENABLE([warp],
 
 # If we had a "ayes" variable to be "true" if there was a `yes'. So any
 # program that is not explicitly requested must be ignored and vice versa
-# (if no programs were explicly requested, the enable all that weren't
+# (if no programs were explicitly requested, then enable all that weren't
 # disabled).
 AS_IF([test $ayes = true ],
       [
@@ -757,12 +757,12 @@ AS_IF([test x$enable_guide_message = xyes],
               [AS_ECHO(["  - GNU Libtool, could not be found in your search 
path."])
                AS_ECHO(["    Gnuastro's BuildProgram uses GNU libtool to link 
your source code"])
                AS_ECHO(["    with the various libraries (Gnuastro's 
dependencies). Therefore"])
-               AS_ECHO(["    BuildProgarm will not be built or installed. 
Please note that"])
+               AS_ECHO(["    BuildProgram will not be built or installed. 
Please note that"])
                AS_ECHO(["    not having GNU libtool in your search path will 
not harm the rest"])
                AS_ECHO(["    of Gnuastro's building and installation. Gnuastro 
has its own"])
                AS_ECHO(["    internal implementation of GNU Libtool to build 
its self. This"])
                AS_ECHO(["    warning is only to let you know that BuildProgram 
will not be"])
-               AS_ECHO(["    built and installed. The executable names 
searched were \`libtool'"])
+               AS_ECHO(["    part of this build. The executable names searched 
were \`libtool'"])
                AS_ECHO(["    and \`glibtool'."])
                AS_ECHO([]) ])
         AS_IF([test "x$has_ghostscript" = "xno"],
diff --git a/doc/announce-acknowledge.txt b/doc/announce-acknowledge.txt
index a2f766a..c3d8955 100644
--- a/doc/announce-acknowledge.txt
+++ b/doc/announce-acknowledge.txt
@@ -2,6 +2,7 @@ This file is meant to keep the names of the people who's help 
must be
 acknowledged in the next release.
 
 Leindert Boogaard
+Nicolas Bouché
 Aurélien Jarno
 Takashi Ichikawa
 Alan Lefor
diff --git a/doc/gnuastro.texi b/doc/gnuastro.texi
index 3250609..b3e14a1 100644
--- a/doc/gnuastro.texi
+++ b/doc/gnuastro.texi
@@ -12585,6 +12585,58 @@ a wider FWHM in the spatial directions, see 
@ref{Sampling theorem}.
 HDU containing the kernel in the file given to the @option{--kernel}
 option.
 
+@item --convolved=STR
+Use this file as the convolved image and don't do convolution and ignore
+@option{--kernel}. NoiseChisel will just check the size of the given
+dataset is the same as the input's size. If a wrong image (with the same
+size) is given to this option, the results (errors, bugs, and etc) are
+un-predictable. So please use this option with care and in a highly
+controlled environment. On such scenario is discussed below.
+
+In almost all situations, as the input gets larger, the single most CPU and
+time consuming step in NoiseChisel is convolution (the first step in its
+processing). The process of testing NoiseChisel for the best parameters in
+a given analysis will involve running NoiseChisel multiple times: to see
+the effect of each new option value. Therefore, once the kernel is
+finalized, re-convolving the input will greatly hinder fast testing of
+higher-level parameters. With this option, you can convolve the input image
+with your chosen kernel once before running NoiseChisel, then feed it to
+NoiseChisel on each test run and thus save valuable time for better/more
+tests.
+
+To build your desired convolution kernel, you can use
+@ref{MakeProfiles}. To convolve the image with a given kernel you can use
+@ref{Convolve}. Spatial domain convolution is mandatory. In the frequency
+domain, blank pixels (if present) will cover the whole image and gradients
+will appear on the edges, see @ref{Spatial vs. Frequency domain}.
+
+Below you can see an example of such a scenario: you want to see how
+variation of the growth level (through the @option{--detgrowquant} option)
+will affect the final result. Recall that you can ignore all the extra
+spaces, new lines, and `@code{\}' if you are typing in the terminal (in a
+shell script, remove the @code{$} signs at the start of the lines).
+
+@example
+## Make the kernel to convolve with.
+$ astmkprof --oversample=1 --kernel=gaussian,2,5
+
+## Convolve the input with the given kernel.
+$ astconvolve input.fits --kernel=kernel.fits                \
+              --domain=spatial --output=convolved.fits
+
+## Run NoiseChisel with seven growth quantile values.
+$ for g in 60 65 70 75 80 85 90; do                          \
+    astnoisechisel input.fits --convolved=convolved.fits     \
+                   --detgrowquant=0.$g --output=$g.fits;     \
+  done
+@end example
+
+
+
+@item --convolvedhdu=STR
+The HDU/extension containing the convolved image in the file given to
+@option{--convolved}.
+
 @item -w STR
 @itemx --widekernel=STR
 File name of a wider kernel to use in estimating the difference of the mode
@@ -12689,13 +12741,6 @@ catalog). You can then run MakeCatalog on A normally, 
see
 clump labels images to those that NoiseChisel produced for A, see
 @ref{Invoking astmkcatalog}.
 
-@item --grownclumps
-In the output (see @ref{NoiseChisel output}) store the grown clumps (or
-full detected region if only one clump was present in that detection). By
-default the original clumps are stored as the third extension of the
-output, if this option is called, it is replaced with the grown clump
-labels.
-
 @item --continueaftercheck
 Continue NoiseChisel after any of the options starting with
 @option{--check}. NoiseChisel involves many steps and as a result, there
@@ -13141,6 +13186,13 @@ NoiseChisel. The `true' detections and clumps can be 
objectively
 identified from the noise characteristics of the image, so you don't
 have to give any hand input Signal to noise ratio.
 
+@item --grownclumps
+In the output (see @ref{NoiseChisel output}) store the grown clumps (or
+full detected region if only one clump was present in that detection). By
+default the original clumps are stored as the third extension of the
+output, if this option is called, it is replaced with the grown clump
+labels.
+
 @item --checksegmentation
 A file with the suffix @file{_seg.fits} will be created. This file keeps
 all the relevant steps in finding true clumps and segmenting the detections
@@ -20792,17 +20844,19 @@ formats, see @ref{Table input output}.
 Tables are a collection of one dimensional datasets that are packed
 together into one file. They are the single most common format to store
 high-level (processed) information, hence they play a very important role
-in Gnuastro. For a more thorough introduction, please see Gnuastro's
+in Gnuastro. For a more thorough introduction, please see
 @ref{Table}. Gnuastro's Table program, and all the other programs that can
-read from and write into tables, use the functions of this section. For a
-simple demonstration of using the constructs introduced here, see
-@ref{Library demo - reading and writing table columns}.
+read from and write into tables, use the functions of this section for
+reading and writing their input/output tables. For a simple demonstration
+of using the constructs introduced here, see @ref{Library demo - reading
+and writing table columns}.
 
 Currently only plain text (see @ref{Gnuastro text table format}) and FITS
-tables are supported by Gnuastro. However, the low-level table
-infra-structure is written such that for other formats are also possible
-and in future releases more formats will be supported, please let us know
-your priorities so they get higher priorities.
+(ASCII and binary) tables are supported by Gnuastro. However, the low-level
+table infra-structure is written such that accommodating other formats is
+also possible and in future releases more formats will hopefully be
+supported. Please don't hesitate to suggest your favorite format so it can
+be implemented when possible.
 
 @deffn  Macro GAL_TABLE_DEF_WIDTH_STR
 @deffnx Macro GAL_TABLE_DEF_WIDTH_INT
@@ -23081,24 +23135,24 @@ column selection is discussed in @ref{Selecting table 
columns}. The first
 and second columns can be any type, but this program will convert them to
 @code{int32_t} and @code{float} for its internal usage
 respectively. However, the third column must be double for this program. So
-if it isn't the program will abort with an error. Having the columns in
+if it isn't, the program will abort with an error. Having the columns in
 memory, it will print them out along with their sum (just a simple
 application, you can do what ever you want at this stage). Reading the
 table finishes here.
 
 The rest of the program is a demonstration of writing a table. While
 parsing the rows, this program will change the first column (to be
-counters) and multiply the second by 10 (to the output may be
+counters) and multiply the second by 10 (so the output will be
 different). Then it will define the order of the output columns by setting
 the @code{next} element (to create a @ref{List of gal_data_t}). Before
 writing, this function will also set names for the columns (units and
 comments can be defined in a similar manner). Writing the columns to a file
 is then done through a simple call to @code{gal_table_write}.
 
-The operations that are shows in this example program are not necessary all
+The operations that are shown in this example program are not necessary all
 the time. For example, in many cases, you know the numerical data type of
-the column before writing the program (see @ref{Numeric data types}), so
-type checking and copying won't be necessary.
+the column before writing your program (see @ref{Numeric data types}), so
+type checking and copying to a specific type won't be necessary.
 
 @example
 #include <stdio.h>
@@ -24757,12 +24811,12 @@ simplify the final merging of your work.
 @appendix Gnuastro programs list
 
 GNU Astronomy Utilities @value{VERSION}, contains the following
-programs. They are sorted in alphabetical order and followed by their
-version number. A short description is provided for each program which
-starts with the executable names in @file{thisfont} followed by a link to
-the respective section in parenthesis, see @ref{Naming
-convention}. Throughout this book, they are ordered based on their context,
-please see the book contents for contextual ordering.
+programs. They are sorted in alphabetical order and a short description is
+provided for each program. The description starts with the executable names
+in @file{thisfont} followed by a pointer to the respective section in
+parenthesis. Throughout this book, they are ordered based on their context,
+please see the top-level contents for contextual ordering (based on what
+they do).
 
 
 @table @asis
diff --git a/doc/release-checklist.txt b/doc/release-checklist.txt
index 0bc3241..76dcee7 100644
--- a/doc/release-checklist.txt
+++ b/doc/release-checklist.txt
@@ -157,6 +157,20 @@ Packaging in Debian
 
 Steps necessary to Package Gnuastro for Debian.
 
+ - It would help to use the most recent versions of packages in Debian. To
+   do that, you can update the `/etc/apt/sources.list' file. You can get
+   the current releases from this webpage:
+   http://ftp.debian.org/debian/. See which release is currently the
+   `testing' release and use replace its name with the one that is
+   currently present in that file. Afterwards, run these commands:
+
+     $ sudo apt-get update
+     $ sudo apt-get upgrade
+
+   A restart should help in making sure everything that has been updated is
+   being used.
+
+
  - If you don't already have the Git repository, clone it with the
    following command. A `gnuastro' directory will be built, for the moment
    don't go in it.



reply via email to

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