[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.
- [gnuastro-commits] master 0eaf0dc 091/113: Imported recent work in master, conflicts fixed, (continued)
- [gnuastro-commits] master 0eaf0dc 091/113: Imported recent work in master, conflicts fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master 9e2397a 094/113: Imported recent work in master, no conflicts, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master 9258f68 096/113: Imported recent work in master, minor conflict fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master d0d8d20 109/113: Imported recent work in master, minor conflicts fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master 6e11585 111/113: Imported recent work in master, minor conflicts fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master aa80ac4 112/113: Imported recent updates in master branch, minor conflict fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master dadb3f3 107/113: Imported recent work in master, minor conflicts fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master 313d522 099/113: Imported recent work in master, minor conflict fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master 536b056 110/113: Imported recent changes in master, conflicts in book fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master dd4d43e 113/113: NoiseChisel and Segment: now working on 3D data cubes, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master eb91303 042/113: Merged recent work in master, conflicts fixed,
Mohammad Akhlaghi <=
- [gnuastro-commits] master 2dba72f 101/113: Imported work in master, conflicts fixed, changes made, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master b3416de 102/113: Imported recent work in master, conflicts fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master 353c0c1 104/113: Imported recent work in master, conflict fixed, Mohammad Akhlaghi, 2021/04/16
- [gnuastro-commits] master f21c30f 105/113: Imported recent work in master, no conflicts, Mohammad Akhlaghi, 2021/04/16