gnuastro-commits
[Top][All Lists]
Advanced

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

[gnuastro-commits] master 516e67d: Spell-check in book


From: Mohammad Akhlaghi
Subject: [gnuastro-commits] master 516e67d: Spell-check in book
Date: Fri, 2 Jun 2017 10:55:05 -0400 (EDT)

branch: master
commit 516e67d18799a60df8bf9748b6c641977ba467c2
Author: Mohammad Akhlaghi <address@hidden>
Commit: Mohammad Akhlaghi <address@hidden>

    Spell-check in book
    
    Before the 0.3 release, I had forgot to run a spell-check! Emacs's `ispell'
    was ran over the whole book and many typos were corrected. I also included
    spell-checking (both in the book and in the announcement) in the list of
    things to do before distribution.
    
    Also, the Fits and BuildProgram executable files were not in the list of
    files to ignore by Git. So they are added.
---
 .gitignore                |   2 +
 doc/gnuastro.texi         | 482 +++++++++++++++++++++++-----------------------
 doc/release-checklist.txt |  31 +--
 3 files changed, 263 insertions(+), 252 deletions(-)

diff --git a/.gitignore b/.gitignore
index 40a612f..9c71165 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,6 +71,7 @@ AUTHORS
 snippet
 astcrop
 astwarp
+astfits
 .version
 config.h
 stamp-h1
@@ -99,6 +100,7 @@ config.guess
 version.texi
 authors.texi
 doc/fdl.texi
+astbuildprog
 config.status
 doc/stamp-vti
 astarithmetic
diff --git a/doc/gnuastro.texi b/doc/gnuastro.texi
index 2310b32..0b14079 100644
--- a/doc/gnuastro.texi
+++ b/doc/gnuastro.texi
@@ -261,7 +261,7 @@ Downloading the source
 
 Version controlled source
 
-* Bootstrapping::               Adding all the automaticly generated files.
+* Bootstrapping::               Adding all the automatically generated files.
 * Synchronizing::               Keep your local clone up to date.
 
 Build and install
@@ -1500,7 +1500,7 @@ command is in a separate line and next line @code{is also 
in the code type
 face}, but doesn't have any of the @command{$} or @command{#} signs, then
 it is the output of the command after it is run. As a user, you don't need
 to type those lines. A line that starts with @command{##} is just a comment
-for explaning the command to a human reader and must not be typed.
+for explaining the command to a human reader and must not be typed.
 
 @item
 If the command becomes larger than the page width a @key{\} is
@@ -2316,7 +2316,7 @@ the following URL:
 @url{http://ftpmirror.gnu.org/gnuastro/gnuastro-latest.tar.gz}
 
 @noindent
address@hidden start} discribes the commands necessary to configure, build, and
address@hidden start} describes the commands necessary to configure, build, and
 install Gnuastro on your system. This chapter will be useful in cases where
 the simple procedure above is not sufficient, for example your system lacks
 a mandatory/optional dependency (in other words, you can't pass the
@@ -2941,7 +2941,7 @@ with the main repository see @ref{Synchronizing}.
 
 
 @menu
-* Bootstrapping::               Adding all the automaticly generated files.
+* Bootstrapping::               Adding all the automatically generated files.
 * Synchronizing::               Keep your local clone up to date.
 @end menu
 
@@ -4127,7 +4127,7 @@ command-line.
 
 All the programs in Gnuastro are customized through the standard GNU style
 command-line options. Thus, we'll start by defining this general style that
-is very common in many command-line tools on unix-like operating
+is very common in many command-line tools on Unix-like operating
 systems. Finally, the options that are common to all the programs in
 Gnuastro are discussed.
 
@@ -4174,7 +4174,7 @@ commonly the input file names containing your data. 
Options start with one
 or two hyphens, followed by an identifier for the option (the option's
 name) and its value (see @ref{Options}). Through options you tell the
 program how to interpret the data. In this example, we are running
address@hidden to crop a region of width 10 arcseconds centered at the given RA
address@hidden to crop a region of width 10 arc-seconds centered at the given RA
 and Dec from the input Hubble Ultra-Deep Field (UDF) FITS image. So options
 come with an identifier (the option name which is separate from their
 value).
@@ -4620,7 +4620,7 @@ going to have the (same) size of one data-element. Hence, 
in such cases,
 the image proportions are going to be slightly different with this
 option.
 
-If your input image is not exaclty divisible by the tile size and you want
+If your input image is not exactly divisible by the tile size and you want
 one value per tile for some higher-level processing, all is not lost
 though. You can see how many pixels were within each tile (for example to
 weight the values or discard some for later processing) with Gnuastro's
@@ -4791,7 +4791,7 @@ wide}. Like all on/off options, on the command-line, this 
option doesn't
 take any values. But in a configuration file, it takes the values of
 @option{0} or @option{1}, see @ref{Configuration file format}. If it is
 present in a configuration file with a value of @option{0}, then all later
-occurances of this option will be ignored.
+occurrences of this option will be ignored.
 
 
 @item --onlyversion=STR
@@ -4799,7 +4799,7 @@ Only run the program if Gnuastro's version is exactly 
equal to @option{STR}
 (see @ref{Version numbering}). Note that it is not compared as a number,
 but as a string of characters, so @option{0}, or @option{0.0} and
 @option{0.00} are different. If the running Gnuastro version is different,
-then thiss option will report an error and abort as soon as it is
+then this option will report an error and abort as soon as it is
 confronted on the command-line or in a configuration file. If the running
 Gnuastro version is the same as @option{STR}, then the program will run as
 if this option was not called.
@@ -5286,7 +5286,7 @@ building your final output and updating it efficiently 
when the inputs
 change. It is the most common infra-structure to build software
 today.
 
-Scientific research methodology is very similar to software developement:
+Scientific research methodology is very similar to software development:
 you start by testing a hypothesis on a small sample of objects/targets with
 a simple set of steps. As you are able to get promising results, you
 improve the method and use it on a larger, more general, sample. In the
@@ -5344,7 +5344,7 @@ At the lowest level, the computer stores everything in 
terms of @code{1} or
 @code{0}. For example, each program in Gnuastro, or each astronomical image
 you take with the telescope is actually a string of millions of these zeros
 and ones. The space required to keep a zero or one is the smallest unit of
-storage, and is known as a @emph{bit}. However, nderstanding and
+storage, and is known as a @emph{bit}. However, understanding and
 manipulating this string of bits is extremely hard for most
 people. Therefore, we define packages of these bits along with a standard
 on how to interpret the bits in each package as a @emph{type}.
@@ -5441,7 +5441,7 @@ are inclusive.
 32-bit (single-precision) floating point types. The maximum (minimum is its
 negative) possible value is
 @mymath{3.402823\times10^{38}}. Single-precision floating points can
-accurately represent a floating point number upto @mymath{\sim7.2}
+accurately represent a floating point number up to @mymath{\sim7.2}
 significant decimals. Given the heavy noise in astronomical data, this is
 usually more than sufficient for storing results.
 
@@ -5491,7 +5491,7 @@ As a summary, for each labeled region (or, galaxy) we 
have one @emph{row}
 and for each measured property we have one @emph{column}. This high-level
 structure is usually the first step for higher-level analysis, for example
 finding the stellar mass or photometric redshift from magnitudes in
-multiple colors. Thus, tables are not just outputs of programs, infact it
+multiple colors. Thus, tables are not just outputs of programs, in fact it
 is much more common for tables to be inputs of programs. For example, to
 make a mock galaxy image, you need to feed in the properties of each galaxy
 into @ref{MakeProfiles} for it do the inverse of the process above and make
@@ -5529,7 +5529,7 @@ table. They are thoroughly discussed in @ref{Selecting 
table columns}.
 @subsection Recognized table formats
 
 The list of table formats that Gnuastro can currently read from and write
-to are decribed below. Each has their own advantage and disadvantages, so a
+to are described below. Each has their own advantage and disadvantages, so a
 short review of the format is also provided to help you make the best
 choice based on how you want to define your input tables or later use your
 output tables.
@@ -5582,7 +5582,7 @@ file. In such cases, you can also consider header 
keywords (see
 The FITS binary table is the FITS standard's solution to the issues
 discussed with keeping numbers in ASCII format as described under the FITS
 ASCII table title above. Only columns defined as a string type (a string of
-ASCII characters) are readable in a text editor. The protability problem
+ASCII characters) are readable in a text editor. The portability problem
 with binary formats discussed above is mostly solved thanks to the
 portability of CFITSIO (see @ref{CFITSIO}) and the very long history of the
 FITS format which has been widely used since the 1970s.
@@ -5635,8 +5635,8 @@ of columns.
 
 The columns don't have to be exactly under each other and the rows can be
 arbitrarily long with different lengths. For example the following contents
-in a file would be interpretted as a table with 4 columns and 2 rows, with
-each element interpretted as a @code{double} type (see @ref{Numeric data
+in a file would be interpreted as a table with 4 columns and 2 rows, with
+each element interpreted as a @code{double} type (see @ref{Numeric data
 types}).
 
 @example
@@ -5669,7 +5669,7 @@ includes non-numerical characters. In the absence of any 
information, only
 numbers can be read robustly. Assuming we read columns with non-numerical
 characters as string, there would still be the problem that the strings
 might contain space (or any delimiter) character for some rows. So, each
-`word' in the string will be interpretted as a column and the program will
+`word' in the string will be interpreted as a column and the program will
 abort with an error that the rows don't have the same number of columns.
 
 To correct for these limitations, Gnuastro defines the following convention
@@ -5681,7 +5681,7 @@ When the first non-white character in a line is @key{#}, 
or there are no
 non-white characters in it, then the line will not be considered as a row
 of data in the table (this is a pretty standard convention in many
 programs, and higher level languages). In the former case, the line is
-interpretted as a @emph{comment}. If the comment line starts with 
address@hidden
+interpreted as a @emph{comment}. If the comment line starts with address@hidden
 Column N:}', then it is assumed to contain information about column
 @code{N} (a number, counting from 1). Comment lines that don't start with
 this pattern are ignored and you can use them to include any further
@@ -5695,13 +5695,13 @@ information comment is assumed to have the following 
format:
 @cindex NaN
 @noindent
 Any sequence of characters between address@hidden:}' and address@hidden' will 
be
-interpretted as the column name (so it can contain anything except the
+interpreted as the column name (so it can contain anything except the
 address@hidden' character). Anything between the address@hidden' and the end 
of the
 line is defined as a comment. Within the brackets, anything before the
 first address@hidden,}' is the units (physical units, for example km/s, or 
erg/s),
 anything before the second address@hidden,}' is the short type identifier (see
 below, and @ref{Numeric data types}). Finally (still within the brackets),
-any non-white characters after the second address@hidden,}' are interpretted 
as the
+any non-white characters after the second address@hidden,}' are interpreted as 
the
 blank value for that column (see @ref{Blank pixels}). Note that blank
 values will be stored in the same type as the column, not as a
 address@hidden floating point types, the @code{nan}, or @code{inf}
@@ -5734,7 +5734,7 @@ optional and the column information comments don't have 
to be in order. In
 other words, the information for column @mymath{N+m} (@mymath{m>0}) can be
 given before column @mymath{N}. Also, you don't have to specify information
 for all columns. Those columns that don't have this information will be
-interpretted with the default settings (like the case above: values are
+interpreted with the default settings (like the case above: values are
 double precision floating point, and the column has no name, unit, or
 comment). So these lines are all acceptable for any table (the first one,
 with nothing but the column number is redundant):
@@ -5757,7 +5757,7 @@ recognized identifiers) described in @ref{Numeric data 
types}.
 address@hidden': for strings. The @code{N} value identifies the length of the
 string (how many characters it has). The start of the string on each row is
 the first non-delimiter character of the column that has the string
-type. The next @code{N} characters will be interpretted as a string and all
+type. The next @code{N} characters will be interpreted as a string and all
 leading and trailing white space will be removed.
 
 If the next column's characters, are closer than @code{N} characters to the
@@ -5838,7 +5838,7 @@ number), or string (metadata match/search) format.
 If the value can be parsed as a positive integer, it will be seen as the
 low-level column number. Note that column counting starts from 1, so if you
 ask for column 0, the respective program will abort with an error. When the
-value can't be interpretted as an a integer number, it will be seen as a
+value can't be interpreted as an a integer number, it will be seen as a
 string of characters which will be used to match/search in the table's
 meta-data. The meta-data field which the value will be compared with can be
 selected through the @option{--searchin} option, see @ref{Input output
@@ -5859,7 +5859,7 @@ reviewing this chapter for greatly improving the quality 
of your work in
 many cases, not just for searching column meta-data in Gnuastro.
 
 @item
-When the string isn't inclosed between address@hidden/}'s, any column that 
exactly
+When the string isn't enclosed between address@hidden/}'s, any column that 
exactly
 matches the given value in the given field will be selected.
 @end itemize
 
@@ -5880,7 +5880,7 @@ It is sometimes necessary to classify the elements in a 
dataset (for
 example pixels in an image) into a grid of individual, non-overlapping
 tiles. For example when background sky gradients are present in an image,
 you can define a tile grid over the image. When the tile sizes are set
-properly, the background's variation over each tile will be negligble,
+properly, the background's variation over each tile will be negligible,
 allowing you to measure (and subtract) it. In other cases (for example
 spatial domain convolution in Gnuastro, see @ref{Convolve}), it might
 simply be for speed of processing: each tile can be processed independently
@@ -5891,7 +5891,7 @@ tessellation}.
 The size of the regular tiles (in units of data-elements, or pixels in an
 image) can be defined with the @option{--tilesize} option. It takes
 multiple numbers (separated by a comma) which will be the length along the
-respective dimension (in Fortran/FITS dimension order). Divisions are also
+respective dimension (in FORTRAN/FITS dimension order). Divisions are also
 acceptable, but must result in an integer. For example
 @option{--tilesize=30,40} can be used for an image (a 2D dataset). The
 regular tile size along the first FITS axis (horizontal when viewed in SAO
@@ -5930,7 +5930,7 @@ statistics).
 @cindex Subaru Telescope
 @cindex Hyper Suprime-Cam
 @cindex Hubble Space Telescope
-For raw image processing, a single tesselation/grid is not sufficient. Raw
+For raw image processing, a single tessellation/grid is not sufficient. Raw
 images are the unprocessed outputs of the camera detectors. Modern
 detectors usually have multiple readout channels each with its own
 amplifier. For example the Hubble Space Telescope Advanced Camera for
@@ -5951,17 +5951,17 @@ systematic biases will then propagate to all subsequent 
measurements we do
 on the data (for example photometry and subsequent stellar mass and star
 formation rate measurements in the case of galaxies).
 
-Therefore an accurate analysis requires a two layer tesselation: the top
+Therefore an accurate analysis requires a two layer tessellation: the top
 layer contains larger tiles, each covering one amplifier channel. For
 clarity we'll call these larger tiles ``channels''. The number of channels
 along each dimension is defined through the @option{--numchannels}. Each
 channel is then covered by its own individual smaller tessellation (with
 tile sizes determined by the @option{--tilesize} option). This will allow
-independent analyis of two adjacent pixels from different channels if
+independent analysis of two adjacent pixels from different channels if
 necessary. If the image is processed or the detector only has one
 amplifier, you can set the number of channels in both dimension to 1.
 
-The final tesselation can be inspected on the image with the
+The final tessellation can be inspected on the image with the
 @option{--checktiles} option that is available to all programs which use
 tessellation for localized operations. When this option is called, a FITS
 file with a @file{_tiled.fits} suffix will be created along with the
@@ -6460,7 +6460,7 @@ END
 The most low-level and basic property of a dataset is how it is stored. To
 process, archive and transmit the data, you need a container to store it
 first. From the start of the computer age, different formats have been
-defined to store data, optimized for pariticular applications. One
+defined to store data, optimized for particular applications. One
 format/container can never be useful for all applications: the storage
 defines the application and vice-versa. In astronomy, the Flexible Image
 Transport System (FITS) standard has become the most common format of data
@@ -6488,7 +6488,7 @@ unlike images (where all elements/pixels have one data 
type), tables
 contain multiple columns and each column can have different properties:
 independent data types (see @ref{Numeric data types}) and meta-data. In
 practice, each column can be viewed as a separate container that is grouped
-with others in the table. The only shared property of the colums in a table
+with others in the table. The only shared property of the columns in a table
 is thus the number of elements they contain. To allow easy
 inspection/manipulation of table columns, Gnuastro has the Table program
 (see @ref{Table}). It can be used to select certain table columns in a FITS
@@ -6540,7 +6540,7 @@ different colors (filters).
 As discussed above, the extensions in a FITS file can be completely
 independent. To keep some information (meta-data) about the group of
 extensions in the FITS file, the community has adopted the following
-convension: put no data in the first extension, so it is just
+convention: put no data in the first extension, so it is just
 meta-data. This extension can thus be used to store Meta-data regarding the
 whole file (grouping of extensions). Subsequent extensions may contain data
 along with their own separate meta-data. All of Gnuastro's programs also
@@ -6638,7 +6638,7 @@ columns). You can use this to get a general idea of the 
contents of the
 FITS file and what HDU to use for further processing, either with the Fits
 program or any other Gnuastro program.
 
-Here is one example of information about a FITS file with four exensions:
+Here is one example of information about a FITS file with four extensions:
 the first extension has no data, it is a purely meta-data HDU (commonly
 used to keep meta-data about the whole file, or grouping of extensions, see
 @ref{Fits}). The second extension is an image with name @code{IMAGE} and
@@ -7019,7 +7019,7 @@ formats. Its major advantage is the compression algorithm 
that is
 defined by the standard. Like the FITS standard, this is a raster
 graphics format, which means that it is pixelated.
 
-A JPEG file can have 1 (for grayscale), 3 (for RGB) and 4 (for CMYK)
+A JPEG file can have 1 (for gray-scale), 3 (for RGB) and 4 (for CMYK)
 color channels. If you only want to convert one JPEG image into other
 formats, there is no problem, however, if you want to use it in
 combination with other input files, make sure that the final number of
@@ -7082,7 +7082,7 @@ explained below) is a binary image or only has two colors 
of black and
 white (in segmentation maps for example), then PostScript has another
 great advantage compared to other formats. It allows for 1 bit pixels
 (pixels with a value of 0 or 1), this can decrease the output file
-size by 8 times. So if a grayscale image is binary, ConvertType will
+size by 8 times. So if a gray-scale image is binary, ConvertType will
 exploit this property in the EPS and PDF (see below) outputs.
 
 @cindex Suffixes, EPS format
@@ -7126,7 +7126,7 @@ output. Just note that when the suffix is not recognized, 
automatic output
 will not be preformed.
 
 The basic input/output on plain text images is very similar to how tables
-are read/written as discribed in @ref{Gnuastro text table format}. Simply
+are read/written as described in @ref{Gnuastro text table format}. Simply
 put, the restrictions are very loose, and there is a convention to define a
 name, units, data type (see @ref{Numeric data types}), and comments for the
 data in a commented line. The only difference is that as a table, a text
@@ -7163,12 +7163,12 @@ comment line). To print to the standard output, set the 
output name to
 @cindex Grayscale
 @cindex Colorspace
 @cindex Primary colors
address@hidden Colorspace, grayscale
address@hidden Colorspace, gray-scale
 An image is a two dimensional array of 2 dimensional elements called
 pixels. If each pixel only has one value, the image is known as a
-grayscale image and no color is defined. The range of values in the
+gray-scale image and no color is defined. The range of values in the
 image can be interpreted as shades of any color, it is customary to
-use shades of black or grayscale. However, to produce the color
+use shades of black or gray-scale. However, to produce the color
 spectrum in the digital world, several primary colors must be
 mixed. Therefore in a color image, each pixel has several values
 depending on how many primary colors were chosen. For example on the
@@ -7185,10 +7185,10 @@ to the intrinsic faintness of most of the targets, the 
collecting area
 of the pixel is very important for us. Hence the full area of the
 pixel is used and one value is stored for that pixel in the end. One
 color filter is used for the whole image. Thus a FITS image is
-inherently a grayscale image and no color can be defined for it.
+inherently a gray-scale image and no color can be defined for it.
 
 @cindex Colorspace, transformation
-One way to represent a grayscale image in different color spaces is to
+One way to represent a gray-scale image in different color spaces is to
 use the same proportions of the primary colors in each pixel. This is
 the common way most FITS image converters work: they fill all the
 channels with the same values. The downside is two fold:
@@ -7218,7 +7218,7 @@ The JPEG and EPS standards set two sizes for the number 
of bits in
 each channel: 8-bit and 12-bit. The former is by far the most common
 and is what is used in ConvertType. Therefore, each channel should
 have values between 0 to @math{2^8-1=255}. From this we see how each
-pixel in a grayscale image is one byte (8 bits) long, in an RGB image,
+pixel in a gray-scale image is one byte (8 bits) long, in an RGB image,
 it is 3bytes long and in CMYK it is 4bytes long. But thanks to the
 JPEG compression algorithms, when all the pixels of one channel have
 the same value, that channel is compressed to one pixel. Therefore a
@@ -7267,7 +7267,7 @@ input file(s) the number of color channels in all the 
inputs will be
 used to define which color space is being used for the outputs and how
 each color channel is interpreted. Note that one file might have more
 than one color channel (for example in the JPEG format). If there is
-one color channel the output is grayscale, if three input color
+one color channel the output is gray-scale, if three input color
 channels are given they are respectively considered to be the red,
 green and blue color channels and if there are four color channels
 they are respectively considered to be cyan, magenta, yellow and
@@ -7360,7 +7360,7 @@ compression ratio (nearly 40 percent) compared to 
Hexadecimal encoding.
 @cindex Quality of compression in JPEG
 The quality (compression) of the output JPEG file with values from 0 to 100
 (inclusive). For other formats the value to this option is ignored. Note
-that only in grayscale (when one input color channel is given) will this
+that only in gray-scale (when one input color channel is given) will this
 actually be the exact quality (each pixel will correspond to one input
 value). If it is in color mode, some degradation will occur. While the JPEG
 standard does support loss-less graphics, it is not commonly supported.
@@ -7450,7 +7450,7 @@ For 8-bit output types (JPEG, EPS, and PDF for example) 
the final value
 that is stored is inverted so white becomes black and vice versa. The
 reason for this is that astronomical images usually have a very large area
 of blank sky in them. The result will be that a large are of the image will
-be black. Note that this behaviour is ideal for grayscale images, if you
+be black. Note that this behavior is ideal for gray-scale images, if you
 want a color image, the colors are going to be mixed up.
 
 @end table
@@ -7485,7 +7485,7 @@ within a FITS file. The acceptable table formats are 
fully described in
 @cindex AWK
 @cindex GNU AWK
 Binary tables are not easily readable by human eyes. There is no
-fixed/unified standard on how the zero and ones should be interpretted. The
+fixed/unified standard on how the zero and ones should be interpreted. The
 Unix-like operating systems have flourished because of a simple fact:
 communication between the various tools is based on human readable
 address@hidden ``The art of Unix programming'', Eric Raymond makes
@@ -7594,7 +7594,7 @@ last command with all the previously typed columns 
present, delete
 @item -c STR/INT
 @itemx --column=STR/INT
 Specify the columns to output, see @ref{Selecting table columns} for a
-thorough explanation on how the value to this option is interpretted. To
+thorough explanation on how the value to this option is interpreted. To
 select several output columns, this option can also be called any number
 times in one call to Table. The order of the output columns will be the
 same call order on the command-line.
@@ -7816,7 +7816,7 @@ input image with these coordinates, see @ref{Warp}.
 As a summary, if you don't specify a catalog, you have to define the
 cropped region manually on the command-line. Other than the
 @option{--polygon} option, the other methods to define a single crop are
-uniqe to each mode, so the mode (@option{--mode}) will be ignored. When
+unique to each mode, so the mode (@option{--mode}) will be ignored. When
 using a catalog to define the crop centers, if the columns to only one mode
 are given (for example only @option{--xcol} and @option{--ycol}, not the
 WCS columns) then the mode is irrelevant. However, when all image and WCS
@@ -8102,11 +8102,11 @@ modes, see @ref{Crop modes}. The cropped image will be 
the size of the
 rectangular region that completely encompasses the polygon. By default all
 the pixels that are outside of the polygon will be set as blank values (see
 @ref{Blank pixels}). However, if @option{--outpolygon} is called all pixels
-interal to the vertices will be set to blank.
+internal to the vertices will be set to blank.
 
 The syntax for the polygon vertices is similar to, and simpler than, that
 for @option{--section}. In short, the dimensions of each coordinate are
-separated by a comma (@key{,}) and each vertice is separated by a colon
+separated by a comma (@key{,}) and each vertex is separated by a colon
 (@key{:}). You can define as many vertices as you like. If you would like
 to use space characters between the dimensions and vertices to make them
 more human-readable, then you have to put the value to this option in
@@ -8141,7 +8141,7 @@ $ astcrop --mode=wcs desired-filter-image(s).fits         
  \
 @cindex SAO ds9
 In other cases, you have an image and want to define the polygon yourself
 (it isn't already published like the example above). As the number of
-vertices increases, checking the vertice coordinates on a FITS viewer (for
+vertices increases, checking the vertex coordinates on a FITS viewer (for
 example SAO ds9) and typing them in one by one can be very tedious and
 prone to typo errors.
 
@@ -8152,7 +8152,7 @@ with @address@hidden@click{}Polygon}. Click on the
 approximate center of the region you want and a small square will
 appear. By clicking on the vertices of the square you can shrink or expand
 it, clicking and dragging anywhere on the edges will enable you to define a
-new vertice. After the region has been nicely defined, save it as a file
+new vertex. After the region has been nicely defined, save it as a file
 with @address@hidden Regions}. You can then select the
 name and address of the output file, keep the format as @command{REG} and
 press ``OK''. In the next window, keep format as ``ds9'' and ``Coordinate
@@ -8307,7 +8307,7 @@ were created, see @ref{Crop modes}:
 @item
 When a catalog is given, the value of the @option{--output} (see
 @ref{Common options}) will be read as the directory to store the output
-cropped images. Hence if it doesn't alread exist, Crop will abort with an
+cropped images. Hence if it doesn't already exist, Crop will abort with an
 error of a ``No such file or directory'' error. The crop file names will
 consist of two parts: a variable part (the row number of each target
 starting from 1) along with a fixed string which you can set with the
@@ -8388,7 +8388,7 @@ using Warp for example, see @ref{Warp}), the images are 
co-added (the
 output pixel grid is the average of the pixels of the individual input
 images). Arithmetic is Gnuastro's program for such operations on your
 datasets directly from the command-line. It currently uses the reverse
-polish or postfix notation, see @ref{Reverse polish notation} and will work
+polish or post-fix notation, see @ref{Reverse polish notation} and will work
 on the native data types of the input images/data to reduce CPU and RAM
 resources, see @ref{Numeric data types}. For more information on how to run
 Arithmetic, please see @ref{Invoking astarithmetic}.
@@ -8403,7 +8403,7 @@ Arithmetic, please see @ref{Invoking astarithmetic}.
 @node Reverse polish notation, Arithmetic operators, Arithmetic, Arithmetic
 @subsection Reverse polish notation
 
address@hidden Postfix notation
address@hidden Post-fix notation
 @cindex Reverse Polish Notation
 The most common notation for arithmetic operations is the
 @url{https://en.wikipedia.org/wiki/Infix_notation, infix notation} where
@@ -8414,13 +8414,13 @@ which can complicate the implementation of the code. In 
the near future we
 do plan to adopt this
 address@hidden@url{https://savannah.gnu.org/task/index.php?13867}}, but
 for the time being (due to time constraints on the developers), Arithmetic
-uses the postfix or
+uses the post-fix or
 @url{https://en.wikipedia.org/wiki/Reverse_Polish_notation, reverse polish
 notation}. The Wikipedia article provides some excellent explanation on
 this notation but here we will give a short summary here for
 self-sufficiency.
 
-In the postfix notation, the operator is placed after the operands, as we
+In the post-fix notation, the operator is placed after the operands, as we
 will see below this removes the need to define parenthesis for most
 ordinary operators. For example, instead of writing @command{5+6}, we write
 @command{5 6 +}. To easily understand how this notation works, you can
@@ -8452,7 +8452,7 @@ In the Arithmetic program, the operands can be FITS 
images or numbers. As
 you can see, very complicated procedures can be created without the need
 for parenthesis or worrying about precedence. Even functions which take an
 arbitrary number of arguments can be defined in this notation. This is a
-very powerfull notation and is used in languages like Postscript
+very powerful notation and is used in languages like Postscript
 @footnote{See the EPS and PDF part of @ref{Recognized file formats} for a
 little more on the Postscript language.}  (the programming language in
 Postscript and compiled into PDF files) uses this notation.
@@ -8740,7 +8740,7 @@ numbers can be written as bit strings on the 
command-line): @code{00101000
 only work on integer type datasets.
 
 @item bitor
-Bitwise inclusive OR operator: The bits where atleast one of the two popped
+Bitwise inclusive OR operator: The bits where at least one of the two popped
 operands has a 1 value get a value of 1, the others 0. For example
 (assuming numbers can be written as bit strings on the command-line):
 @code{00101000 00100010 bitand} will give @code{00101010}. Note that the
@@ -8942,13 +8942,14 @@ force a number to be read as float, add a @code{f} 
after it, so
 polish notation}).
 
 Unless otherwise stated (in @ref{Arithmetic operators}), the operators can
-deal with multiple datatypes. For example in address@hidden b.fits +}'',
-the image types can be @code{long} and @code{float}. In such cases, C's
-internal type conversion will be used. The output type will be set to the
-higher-ranking type of the two inputs. Unsigned integer types have smaller
-ranking than their signed counterparts and floating point types have higher
-ranking than the integer types. So the internal C type conversions done in
-the example above are equivalent to this piece of C:
+deal with numeric multiple data types (see @ref{Numeric data types}). For
+example in address@hidden b.fits +}'', the image types can be
address@hidden and @code{float}. In such cases, C's internal type conversion
+will be used. The output type will be set to the higher-ranking type of the
+two inputs. Unsigned integer types have smaller ranking than their signed
+counterparts and floating point types have higher ranking than the integer
+types. So the internal C type conversions done in the example above are
+equivalent to this piece of C:
 
 @example
 size_t i;
@@ -8963,7 +8964,7 @@ processing and also requires less RAM (when using very 
large
 images). However this great advantage comes at the cost of preparing for
 all the combinations of types while building/compiling Gnuastro. With the
 full list of CFITSIO types, compilation can take roughly half an
-hour. However, some types are not too common, therfore Gnuastro comes with
+hour. However, some types are not too common, therefore Gnuastro comes with
 a set of configure time options letting you enable certain types for native
 compilation. You can see the full list of @option{--enable-bin-op-XXXX}
 options in @ref{Gnuastro configure options}.
@@ -9390,7 +9391,7 @@ displayed as vectors on a plane. Euler's identity might 
seem counter
 intuitive at first, so we will try to explain it geometrically (for deeper
 physical insight). On the real-imaginary 2D plane (like the left hand plot
 in each box of @ref{iandtime}), multiplying a number by @mymath{i} can be
-interpretted as rotating the point by @mymath{90} degrees (for example the
+interpreted as rotating the point by @mymath{90} degrees (for example the
 value @mymath{3} on the real axis becomes @mymath{3i} on the imaginary
 axis). On the other hand,
 @mymath{e\equiv\lim_{n\rightarrow\infty}(1+{1\over n})^n}, therefore,
@@ -9416,7 +9417,7 @@ Wikipedia}. We see that 
@mymath{\lim_{m\rightarrow\infty}a(\pi)=-1}, while
 @mymath{-1}, however the distance of the polygon points traversed as
 @mymath{m\rightarrow\infty} is half the circumference of a circle or
 @mymath{\pi}, showing how @mymath{v} in the equation above can be
-interpretted as an angle in units of radians and therefore how
+interpreted as an angle in units of radians and therefore how
 @mymath{a(v)=cos(v)} and @mymath{b(v)=sin(v)}.
 
 Since @mymath{e^{iv}} is periodic (let's assume with a period of
@@ -10054,14 +10055,14 @@ dimension a different value should be used.
 \displaystyle\sum_{k=-\infty}^{\infty}
 \delta(l-jP, m-kP) }
 
-The Two dimensional Sampling theorem (see @ref{Sampling theorem}) is
-thus very easily derived as before since the frequencies in each
-dimension are independent. Let's take @mymath{\nu_m} as the maximum
-frequency along the second dimension. Therefore the two dimensional
-sampling theorem says that a 2D band-limited function can be recovered
-when the following conditions address@hidden the pixels are not a
-square, then each dimension has to use the respective pixel size, but
-since most imagers have square pixels, we assume so here too}:
+The Two dimensional Sampling theorem (see @ref{Sampling theorem}) is thus
+very easily derived as before since the frequencies in each dimension are
+independent. Let's take @mymath{\nu_m} as the maximum frequency along the
+second dimension. Therefore the two dimensional sampling theorem says that
+a 2D band-limited function can be recovered when the following conditions
address@hidden the pixels are not a square, then each dimension has to
+use the respective pixel size, but since most detectors have square pixels,
+we assume so here too}:
 
 @dispmath{ {2\pi\over P} > 2\omega_m \quad\quad\quad {\rm and}
 \quad\quad\quad {2\pi\over P} > 2\nu_m}
@@ -10433,7 +10434,7 @@ Image warping is the process of mapping the pixels of 
one image onto a new
 pixel grid. This process is sometimes known as transformation, however
 following the discussion of Heckbert address@hidden
 S. Heckbert. 1989. @emph{Fundamentals of Texture mapping and Image
-Warping}, Master's thesis at University of California, Berkely.} we will
+Warping}, Master's thesis at University of California, Berkeley.} we will
 not be using that term because it can be confused with only pixel value or
 flux transformations. Here we specifically mean the pixel grid
 transformation which is better conveyed with `warp'.
@@ -10652,18 +10653,18 @@ So the output coordinates can be calculated from:
 @dispmath{x={x' \over w}={au+bv+c \over gu+hv+1}\quad\quad\quad\quad
           y={y' \over w}={du+ev+f \over gu+hv+1}}
 
-Thus with homography we can change the sizes of the output pixels on
+Thus with Homography we can change the sizes of the output pixels on
 the input plane, giving a `perspective'-like visual impression. This
 can be quantitatively seen in the two equations above. When
 @mymath{g=h=0}, the denominator is independent of @mymath{u} or
 @mymath{v} and thus we have spatial invariance. Homography preserves
-lines at all orientations. A very useful fact about homography is that
-its inverse is also a homography. These two properties play a very
+lines at all orientations. A very useful fact about Homography is that
+its inverse is also a Homography. These two properties play a very
 important role in the implementation of this transformation. A short
 but instructive and illustrated review of affine, projective and also
 bi-linear mappings is provided in Heckbert address@hidden
 S. Heckbert. 1989. @emph{Fundamentals of Texture mapping and Image
-Warping}, Master's thesis at University of California, Berkely. Note
+Warping}, Master's thesis at University of California, Berkeley. Note
 that since points are defined as row vectors there, the matrix is the
 transpose of the one discussed here.}.
 
@@ -10856,9 +10857,9 @@ below.
 
 The values to the warping options (modular warpings as well as
 @option{--matrix}), are a sequence of at least one number. Each number in
-this seqence is separated from the next by a comma (@key{,}). Each number
+this sequence is separated from the next by a comma (@key{,}). Each number
 can also be written as a single fraction (with a forward-slash @key{/}
-between the numerator and denomiator). Space and Tab characters are
+between the numerator and denominator). Space and Tab characters are
 permitted between any two numbers, just don't forget to quote the whole
 value. Otherwise, the value will not be fully passed onto the option. See
 the examples above as a demonstration.
@@ -10867,12 +10868,12 @@ the examples above as a demonstration.
 Based on the FITS standard, integer values are assigned to the center of a
 pixel and the coordinate [1.0, 1.0] is the center of the first pixel
 (bottom left of the image when viewed in SAO ds9). So the coordinate center
-[0.0, 0.0] is half a pixel away (in each axis) from the bottom left vertice
+[0.0, 0.0] is half a pixel away (in each axis) from the bottom left vertex
 of the first pixel. The resampling that is done in Warp (see
address@hidden) is done on the coordinate axises and thus directly
address@hidden) is done on the coordinate axes and thus directly
 depends on the coordinate center. In some situations this if fine, for
 example when rotating/aligning a real image, all the edge pixels will be
-similiarly affected. But in other situations (for example when scaling an
+similarly affected. But in other situations (for example when scaling an
 over-sampled mock image to its intended resolution, this is not desired:
 you want the center of the coordinates to be on the corner of the pixel. In
 such cases, you can use the @option{--centeroncorner} option which will
@@ -10951,7 +10952,7 @@ command-line or in configuration files) as a fraction.
 @itemx --project=FLT[,FLT]
 Apply a projection to the input image by the given values(s): @mymath{g}
 and @mymath{h} in @ref{Warping basics}. If only one value is given, then
-projection will apply to both axises with the given value. When two values
+projection will apply to both axes with the given value. When two values
 are given (separated by a comma), the first will be used to project the
 first axis and the second will be used for the second axis. If you only
 need to project along one axis, use @option{0} for the axis that must be
@@ -10971,7 +10972,7 @@ into a 3 by 3 matrix (see @ref{Warping basics}).
 The determinant of the matrix has to be non-zero and it must not
 contain any non-number values (for example infinities or NaNs). The
 elements of the matrix have to be written row by row. So for the
-general homography matrix of @ref{Warping basics}, it should be called
+general Homography matrix of @ref{Warping basics}, it should be called
 with @command{--matrix=a,b,c,d,e,f,g,h,1}.
 
 The raw matrix takes precedence over all the modular warping options listed
@@ -11014,7 +11015,7 @@ acceptable covered fraction of such pixels (any value 
between 0 and 1). If
 you only want output pixels that are fully covered by the input image area
 (and are not blank), then you can set
 @option{--coveredfrac=1}. Alternatively, a value of @code{0} will keep
-output pixels that are even infinitesmially covered by the input(so the sum
+output pixels that are even infinitesimally covered by the input(so the sum
 of the pixels in the input and output images will be the same).
 
 @end table
@@ -11042,7 +11043,7 @@ of the pixels in the input and output images will be 
the same).
 @chapter Data analysis
 
 Astronomical datasets (images or tables) contain very valuable information,
-the tools in this section can help in analysing, extracting, and
+the tools in this section can help in analyzing, extracting, and
 quantifying that information. For example getting general or specific
 statistics of the dataset (with @ref{Statistics}), detecting signal within
 a noisy dataset (with @ref{NoiseChisel}), or creating a catalog from an
@@ -11071,7 +11072,7 @@ and we want to see how accurate it was, one method is 
to calculate the
 average of the undetected pixels and see how reasonable it is (if detection
 is done correctly, the average of undetected pixels should be approximately
 equal to the background value, see @ref{Sky value}). In a table, you might
-have calcuated the magnitudes of a certain class of objects and want to get
+have calculated the magnitudes of a certain class of objects and want to get
 some general characteristics of the distribution immediately on the
 command-line (very fast!), to possibly change some parameters. The
 Statistics program is designed for such situations.
@@ -11140,7 +11141,7 @@ a certain number of points (intervals) in the input 
range rather than the
 whole dataset, so you should determine the number of bins you want when
 asking for a cumulative frequency plot. In Gnuastro (and thus the
 Statistics program), the number reported for each bin is the total number
-of datapoints until the larger interval value for that bin. You can see an
+of data points until the larger interval value for that bin. You can see an
 example histogram and cumulative frequency plot of a single dataset under
 the @option{--asciihist} and @option{--asciicfp} options of @ref{Invoking
 aststatistics}.
@@ -11246,7 +11247,7 @@ appear to have a clear high signal to noise cutoff at 
all. Therefore
 @mymath{\sigma}-clipping will not be useful in removing their effect on the
 data.
 
-To guage if @mymath{\sigma}-clipping will be useful for your dataset, look
+To gauge if @mymath{\sigma}-clipping will be useful for your dataset, look
 at the histogram (see @ref{Histogram and Cumulative Frequency Plot}). The
 ASCII histogram that is printed on the command-line with
 @option{--asciihist} is good enough in most cases.
@@ -11505,7 +11506,7 @@ deviation.
 
 @cindex Cosmic rays
 The mean value of the tiles that have an approximately equal mode and
-median will be the Sky value. However there is one final hudle:
+median will be the Sky value. However there is one final hurdle:
 astronomical datasets are commonly plagued with Cosmic rays. Images of
 Cosmic rays aren't smoothed by the atmosphere or telescope aperture, so
 they have sharp boundaries. Also, since they don't occupy too many pixels,
@@ -11653,7 +11654,7 @@ When no operation is requested, Statistics will print 
some general basic
 properties of the input dataset on the command-line like the example below
 (ran on one of the output images of @command{make address@hidden can
 try it by running the command in the @file{tests} directory, open the image
-with a FITS viewer and have a look at it to get a sence of how these
+with a FITS viewer and have a look at it to get a sense of how these
 statistics relate to the input image/dataset.}). This default behavior is
 designed to help give you a general feeling of how the data are distributed
 and help in narrowing down your analysis.
@@ -11693,7 +11694,7 @@ Histogram:
 
 Gnuastro's Statistics is a very general purpose program, so to be able to
 easily understand this diversity in its operations (and how to possibly run
-them together), we'll devided the operations into two types: those that
+them together), we'll divided the operations into two types: those that
 don't respect the position of the elements and those that do (by
 tessellating the input on a tile grid, see @ref{Tessellation}). The former
 treat the whole dataset as one and can re-arrange all the elements (for
@@ -11922,7 +11923,7 @@ option. The mirror distribution is fully described in 
Appendix C of
 @url{https://arxiv.org/abs/1505.01664, Akhlaghi and Ichikawa 2015} and
 currently it is only used to calculate the mode (see @option{--mode}).
 
-Just note that the mirror distribtution is a discrete distribution like the
+Just note that the mirror distribution is a discrete distribution like the
 input, so while you may give any number as the value to this option, the
 actual mirror value is the closest number in the input dataset to this
 value. If the two numbers are different, Statistics will warn you of the
@@ -11999,7 +12000,7 @@ be ignored.
 
 
 All the options described until now were from the first class of operations
-discusssed above: those that treat the whole dataset as one. However. It
+discussed above: those that treat the whole dataset as one. However. It
 often happens that the relative position of the dataset elements over the
 dataset is significant. For example you don't want one median value for the
 whole input image, you want to know how the median changes over the
@@ -12012,7 +12013,7 @@ along with the options above in one run of Statistics.
 @item -t
 @itemx --ontile
 Do the respective single-valued calculation over one tile of the input
-dataset, not the whole dataset. This option must be called with atleast one
+dataset, not the whole dataset. This option must be called with at least one
 of the single valued options discussed above (for example @option{--mean}
 or @option{--quantile}). The output will be a file in the same format as
 the input. If the @option{--oneelempertile} option is called, then one
@@ -12068,7 +12069,7 @@ value can either be written as a single number or as a 
fraction of two
 numbers (for example @code{3,1/10}). The first value to this option is the
 multiple of @mymath{\sigma} that will be clipped (@mymath{\alpha} in that
 section). The second value is the exit criteria. If it is less than 1, then
-it is interpretted as tolerance and if it is larger than one it is a
+it is interpreted as tolerance and if it is larger than one it is a
 specific number. Hence, in the latter case the value must be an integer.
 
 @item --smoothwidth=INT
@@ -12141,7 +12142,7 @@ The name of NoiseChisel is derived from the first thing 
it does after
 thresholding the dataset: to erode it. In mathematical morphology, erosion
 on pixels can be pictured as carving off boundary pixels. Hence, what
 NoiseChisel does is similar to what a wood chisel or stone chisel do. It is
-just not a hardware, but a software. Infact looking at it as a chisel and
+just not a hardware, but a software. In fact looking at it as a chisel and
 your dataset as a solid cube of rock will greatly help in best using it:
 with NoiseChisel you literally carve the galaxies/stars/comets out of the
 noise. Try running it with the @option{--checkdetection} option to see each
@@ -12270,7 +12271,7 @@ on different threads. The tessellation related options 
are discussed in
 (with everything between them identical except the tile sizes): a
 fine-grained one with smaller tiles (mainly used in detection) and a more
 larger tiled one which is used for multi-threaded processing. The common
-Tessellation options discribed in @ref{Processing options} define all
+Tessellation options described in @ref{Processing options} define all
 parameters of both tessellations, only the large tile size for the latter
 tessellation is set through the @option{--largetilesize} option. To inspect
 the tessellations on your input dataset, run NoiseChisel with
@@ -12280,7 +12281,7 @@ the tessellations on your input dataset, run 
NoiseChisel with
 @noindent
 @strong{Usage TIP:} Frequently use the options starting with
 @option{--check}. Depending on what you want to detect in the data, you can
-often play with the paramters/options for a better result than the default
+often play with the parameters/options for a better result than the default
 parameters. You can start with @option{--checkdetection} and
 @option{--checksegmentation} for the main steps. For their full list please
 run:
@@ -12443,7 +12444,7 @@ any of the NoiseChisel options that start with 
@option{--check},
 NoiseChisel will abort once all the desired check file(s) is (are)
 completed. If you call the @option{--continueaftercheck} option, you can
 disable this behavior and ask NoiseChisel to continue with the rest of the
-processing after completeting the check file(s).
+processing after completing the check file(s).
 
 @end table
 
@@ -12577,7 +12578,7 @@ value can either be written as a single number or as a 
fraction of two
 numbers (for example @code{3,1/10}). The first value to this option is the
 multiple of @mymath{\sigma} that will be clipped (@mymath{\alpha} in that
 section). The second value is the exit criteria. If it is less than 1, then
-it is interpretted as tolerance and if it is larger than one it is assumed
+it is interpreted as tolerance and if it is larger than one it is assumed
 to be the fixed number of iterations. Hence, in the latter case the value
 must be an integer.
 
@@ -12596,7 +12597,7 @@ only one pixel will be used for each tile (see 
@ref{Processing options}).
 The detection threshold: a multiple of the initial sky standard deviation
 added with the initial sky approximation (which you can inspect with
 @option{--checkdetsky}). This flux threshold is applied to the initially
-undetected regions on the unconvolved image. The background pixels that are
+undetected regions on the un-convolved image. The background pixels that are
 completely engulfed in a 4-connected foreground region are converted to
 background (holes are filled) and one opening (depth of 1) is applied over
 both the initially detected and undetected regions. The Signal to noise
@@ -12873,10 +12874,10 @@ an image is a 2D dataset). Each data-element (pixel) 
just has two
 properties: its position (relative to the rest) and its value. The entire
 input dataset (a large image for example) is rarely treated as a singular
 entity for higher-level address@hidden low-level
-reduction/preparation of a dataset, you do infact treat a whole image as a
+reduction/preparation of a dataset, you do in fact treat a whole image as a
 single entity. You can derive the over-all properties of all the pixels in
 a dataset with Gnuastro's Statistics program (see @ref{Statistics})}. You
-want to know the properties of the scientifically intresting targets that
+want to know the properties of the scientifically interesting targets that
 are embedded in it. For example the magnitudes, positions and elliptical
 properties of the galaxies that are in the image. MakeCatalog is Gnuastro's
 program to derive higher-level information for @emph{pre-defined} regions
@@ -12911,7 +12912,7 @@ words, the number of rows of the output catalog will be 
determined from the
 labeled image.
 
 The labeled image maybe created with any address@hidden example, you can
-even use a graphic user interfase image editing tool like the GNU Image
+even use a graphic user interface image editing tool like the GNU Image
 Manipulation Program (or GIMP) and use Gnuastro's ConvertType to convert it
 to a FITS file.}. Within Gnuastro you can use these two solutions depending
 on a-priori/parametric knowledge of the targets you want to study:
@@ -12925,7 +12926,7 @@ generate a labeled image from another catalog. This is 
also known as
 aperture photometry (the apertures are defined a-priori).
 
 @item
-When the shape of your targets cannot be parametrized accurately (for
+When the shape of your targets cannot be parameterized accurately (for
 example galaxies), or if you don't know the number/shape of the targets in
 the image, you can use Gnuastro's NoiseChisel program to detect and segment
 (make labeled images of) the @emph{objects} and @emph{clumps} in the input
@@ -13247,7 +13248,7 @@ image separately. Not one value for the whole image.
 @subsection Measuring elliptical parameters
 
 The shape or morphology of a target is one of the most commonly desired
-paramters of a target. Here, we will review the derivation of the most
+parameters of a target. Here, we will review the derivation of the most
 basic/simple morphological parameters are estimated: the elliptical
 parameters for a set of labeled pixels. The elliptical parameters are: the
 (semi-)major axis, the (semi-)minor axis and the position angle along with
@@ -13346,7 +13347,7 @@ If an elliptical profile's major axis exactly lies 
along the @mymath{x}
 axis, then @mymath{\overline{x^2}} will be directly proportional with the
 profile's major axis, @mymath{\overline{y^2}} with its minor axis and
 @mymath{\overline{xy}=0}. However, in reality we are not that lucky and
-(assuming galaxies can be parametrized as an ellipse) the major axis of
+(assuming galaxies can be parameterized as an ellipse) the major axis of
 galaxies can be in any direction on the image (in fact this is one of the
 core principles behind weak-lensing by shear estimation). So the purpose of
 the remainder of this section is to define a strategy to measure the
@@ -13453,7 +13454,7 @@ near conceptually similar options.
 The @code{objectcols} and @code{clumpcols} enumerated variables
 (@code{enum}) define the raw/internal calculation columns. If your new
 column requires new raw calculations, add a row to the respective list. If
-your calculation requires any other settings paramters, you should add a
+your calculation requires any other settings parameters, you should add a
 variable to the @code{mkcatalogparams} structure.
 
 @item ui.h
@@ -13478,7 +13479,7 @@ sanity checks and preparations for it here. Otherwise, 
you can ignore this
 file.
 
 @item columns.c
-This file will contain the main defintion and high-level calculation of
+This file will contain the main definition and high-level calculation of
 your new column through the @code{columns_define_alloc} and
 @code{columns_fill} functions. In the first, you specify the basic
 information about the column: its name, units, comments, type (see
@@ -13610,7 +13611,7 @@ $ awk '!/^#/' out_c.txt | sort -g -k1,1 -k2,2
 @subsubsection MakeCatalog input files
 
 MakeCatalog needs multiple images as input: a values image, one (or two)
-labeled images and Sky and Sky standandard deviation images. The options
+labeled images and Sky and Sky standard deviation images. The options
 described in this section allow you to identify them. If you use the
 default output of NoiseChisel (see @ref{NoiseChisel output}) you don't have
 to worry about any of these options and just give NoiseChisel's output file
@@ -13628,7 +13629,7 @@ specify the extension/HDU with the 
@option{--objectshdu} option.
 The HDU/extension of the object labels image. Only pixels with values above
 zero will be considered. The objects label image has to be an integer data
 type (see @ref{Numeric data types}) and only pixels with a value larger
-than zero will be used. If this extension contains teh @code{WCLUMPS}
+than zero will be used. If this extension contains the @code{WCLUMPS}
 keyword with a value of @code{yes}, @code{1}, or @code{y} (not case
 sensitive), then MakeCatalog will also build a clumps catalog, see
 @ref{Invoking astmkcatalog}.
@@ -13668,7 +13669,7 @@ The HDU of the Sky value standard deviation image.
 @subsubsection MakeCatalog general settings
 
 Some of the columns require particular settings (for example the zero point
-magnitdue for measuring magnitudes), the options in this section can be
+magnitude for measuring magnitudes), the options in this section can be
 used for such configurations.
 
 @table @option
@@ -13714,7 +13715,7 @@ any lower-level configuration file and you want to 
ignore that value
 for this particular run or in a higher-level configuration file, then
 set it to NaN, for example @option{--threshold=nan}. Gnuastro uses the
 C library's @code{strtod} function to read floats, which is not
-case-sensative in reading NaN values. But to be consistent, it is good
+case-sensitive in reading NaN values. But to be consistent, it is good
 practice to only use @option{nan}.
 
 @item --nsigmag=FLT
@@ -13790,7 +13791,7 @@ The extension in the file specified by 
@option{--upmask}.
 
 @item --upnum=INT
 The number of random samples to take for all the objects. A larger value to
-this option will give a more accurate result (assymptotically), but it will
+this option will give a more accurate result (asymptotically), but it will
 also slow down the process. When a randomly positioned sample overlaps with
 a detected/masked pixel it is not counted and another random position is
 found until the object completely lies over an undetected region. So you
@@ -13809,9 +13810,9 @@ upper-limit magnitude, it will first be 
@mymath{\sigma}-clipped (see
 @ref{Sigma clipping}) to avoid outliers in the distribution (mainly the
 faint undetected wings of bright/large objects in the image). This option
 takes two values: the first is the multiple of @mymath{\sigma}, and the
-second is theh termination criteria. If the latter is larger than 1, it is
+second is the termination criteria. If the latter is larger than 1, it is
 read as an integer number and will be the number of times to clip. If it is
-smaller than 1, it is interpretted as the tollerance level to stop
+smaller than 1, it is interpretted as the tolerance level to stop
 clipping. See @ref{Sigma clipping} for a complete explanation.
 
 @item --upnsigma=FLT
@@ -13861,7 +13862,7 @@ if only object catalogs are required, it has the same 
effect as
 
 @item -a
 @itemx --area
-The raw area (number of pixels) in any clump or object independed of what
+The raw area (number of pixels) in any clump or object independent of what
 pixel it lies over (if it is NaN/blank or unused for example).
 
 @item --clumpsarea
@@ -14544,7 +14545,7 @@ the atmospheric and instrument PSF in a continuous 
space and then it
 is sampled on the discrete pixels of the camera.
 
 @cindex PSF over-sample
-In order to more accurately simulate this process, the unconvolved
+In order to more accurately simulate this process, the un-convolved
 image and the PSF are created on a finer pixel grid. In other words,
 the output image is a certain odd-integer multiple of the desired
 size, we can call this `oversampling'. The user can specify this
@@ -14739,15 +14740,15 @@ $ astmkprof --individual --oversample 3 -x500 -y500 
catalog.txt
 If mock images are to be made, a catalog (which stores the parameters for
 each mock profile) is mandatory. The catalog can be in the FITS ASCII, FITS
 binary format, or plain text formats (see @ref{Tables}). The
-columns related to each paramter can be determined both by number, or by
+columns related to each parameter can be determined both by number, or by
 match/search criteria using the column names, units, or comments. with the
 options ending in @option{col}, see below. Without any file given to the
address@hidden option, Makeprofiles will make the fully zero-valued
address@hidden option, MakeProfiles will make the fully zero-valued
 image and build the profiles on that (its size can be set with the
address@hidden and @option{--naxis2} options, and its main WCS paramters
address@hidden and @option{--naxis2} options, and its main WCS parameters
 can also be defined). Besides the main image containing all the profiles it
 is also possible to build on individual images (only enclosing one full
-profile to its trucation radius) with the @option{--individual}.
+profile to its truncation radius) with the @option{--individual}.
 
 If a data image file (see @ref{Arguments}) is given, the pixels of
 that image are used as the background value for every pixel. The flux
@@ -14802,7 +14803,7 @@ created image with. So by default, they will not be 
built in the output
 image but as separate files. The sum of pixels of these separate files will
 also be set to unity (1) so you are ready to convolve, see @ref{Convolution
 process}. As a summary, the position and magnitude of PSF profile will be
-ignored. This behaviour can be disabled with the @option{--psfinimg}
+ignored. This behavior can be disabled with the @option{--psfinimg}
 option. If you want to create all the profiles separately (with
 @option{--individual}) and you want the sum of the PSF profile pixels to be
 unity, you have to set their magnitudes in the catalog to the zero-point
@@ -15682,19 +15683,19 @@ the very basic concepts thoroughly for an easy 
transition to a
 universe we cannot visualize any more (a curved 3D space in 4D).
 
 To start, let's assume a static (not expanding or shrinking), flat 2D
-surface similar to @ref{flatplane} and that our 2D friend is observing
-its universe from point @mymath{A}. One of the most basic ways to
-parametrize this space is through the Cartesian coordinates
-(@mymath{x}, @mymath{y}). In @ref{flatplane}, the basic axes of
-these two coordinates are plotted. An infinitesimal change in the
-direction of each axis is written as @mymath{dx} and @mymath{dy}. For
-each point, the infinitesimal changes are parallel with the respective
-axes and are not shown for clarity. Another very useful way of
-parametrizing this space is through polar coordinates. For each point,
-we define a radius (@mymath{r}) and angle (@mymath{\phi}) from a fixed
-(but arbitrary) reference axis. In @ref{flatplane} the infinitesimal
-changes for each polar coordinate are plotted for a random point and a
-dashed circle is shown for all points with the same radius.
+surface similar to @ref{flatplane} and that our 2D friend is observing its
+universe from point @mymath{A}. One of the most basic ways to parametrize
+this space is through the Cartesian coordinates (@mymath{x},
address@hidden). In @ref{flatplane}, the basic axes of these two coordinates
+are plotted. An infinitesimal change in the direction of each axis is
+written as @mymath{dx} and @mymath{dy}. For each point, the infinitesimal
+changes are parallel with the respective axes and are not shown for
+clarity. Another very useful way of parameterizing this space is through
+polar coordinates. For each point, we define a radius (@mymath{r}) and
+angle (@mymath{\phi}) from a fixed (but arbitrary) reference axis. In
address@hidden the infinitesimal changes for each polar coordinate are
+plotted for a random point and a dashed circle is shown for all points with
+the same radius.
 
 @float Figure,flatplane
 @address@hidden/flatplane, 10cm, , }
@@ -15703,21 +15704,23 @@ dashed circle is shown for all points with the same 
radius.
 plane.}
 @end float
 
-Assuming a certain position, which can be parametrized as
address@hidden(x,y)}, or @mymath{(r,\phi)}, a general infinitesimal change
-change in its position will place it in the coordinates
address@hidden(x+dx,y+dy)} and @mymath{(r+dr,\phi+d\phi)}. The distance (on
-the flat 2D surface) that is covered by this infinitesimal change in
-the static universe (@mymath{ds_s}, the subscript signifies the static
-nature of this universe) can be written as
address@hidden main question is this:
-how can our 2D friend incorporate the (possible) curvature in its
-universe when it is calculating distances? The universe it lives in
-might equally be a locally flat but globally curved surface like
address@hidden The answer to this question but for a 3D being
-(us) is the whole purpose to this discussion. So here we want to give
-our 2D friend (and later, ourselves) the tools to measure distances if
-the space (that hosts the objects) is curved.
+Assuming a certain position, which can be parameterized as @mymath{(x,y)},
+or @mymath{(r,\phi)}, a general infinitesimal change change in its position
+will place it in the coordinates @mymath{(x+dx,y+dy)} and
address@hidden(r+dr,\phi+d\phi)}. The distance (on the flat 2D surface) that is
+covered by this infinitesimal change in the static universe (@mymath{ds_s},
+the subscript signifies the static nature of this universe) can be written
+as:
+
address@hidden
+
+The main question is this: how can our 2D friend incorporate the (possible)
+curvature in its universe when it is calculating distances? The universe it
+lives in might equally be a locally flat but globally curved surface like
address@hidden The answer to this question but for a 3D being (us)
+is the whole purpose to this discussion. So here we want to give our 2D
+friend (and later, ourselves) the tools to measure distances if the space
+(that hosts the objects) is curved.
 
 @ref{sphericalplane} assumes a spherical shell with radius @mymath{R}
 as the curved 2D plane for simplicity. The spherical shell is tangent
@@ -16415,7 +16418,7 @@ It should be around 4.2 Megabytes with this static 
linking. If you
 configure and build Gnuastro again with shared libraries enabled (which is
 the default), you will notice that it is roughly 100 Kilobytes! This huge
 difference would have been very significant in the old days, but with the
-roughly Terabyte storages commonly in use today, it is
+roughly Terabyte storage drives commonly in use today, it is
 negligible. Fortunately, output file size is not the only benefit of
 dynamic linking: since it links to the libraries at run-time (rather than
 build-time), you don't have to re-build a higher-level program or library
@@ -16743,7 +16746,7 @@ Compiler optimization level: 0 (for no optimization, 
good debugging), 1, 2,
 Collection (GCC) manual: ``Without any optimization option, the compiler's
 goal is to reduce the cost of compilation and to make debugging produce the
 expected results.  Statements are independent: if you stop the program with
-a breakpoint between statements, you can then assign a new value to any
+a break point between statements, you can then assign a new value to any
 variable or change the program counter to any other statement in the
 function and get exactly the results you expect from the source
 code. Turning on optimization flags makes the compiler attempt to improve
@@ -16826,7 +16829,7 @@ exciting science.
 initially created to be a collection of command-line programs. However, as
 the programs and their the shared functions grew, internal (not installed)
 libraries were added. Since the 0.2 release, the libraries are
-installable. Hence the libraries are currently under heavy development and
+install-able. Hence the libraries are currently under heavy development and
 will significantly evolve between releases and will become more mature and
 stable in due time. It will stabilize with the removal of this
 notice. Check the @file{NEWS} file for interface changes. If you use the
@@ -16926,9 +16929,9 @@ of @code{1}, otherwise it will have a value of 
@code{0}. see
 @deffnx Macro GAL_CONFIG_BIN_OP_INT64
 @deffnx Macro GAL_CONFIG_BIN_OP_FLOAT32
 @deffnx Macro GAL_CONFIG_BIN_OP_FLOAT64
-If biniary arithmetic operators were configured for any type, the
-respective macro will have a value of @code{1} (one), otherwise its value
-will be @code{0} (zero). Please see the similar configure-time options in
+If binary arithmetic operators were configured for any type, the respective
+macro will have a value of @code{1} (one), otherwise its value will be
address@hidden (zero). Please see the similar configure-time options in
 @ref{Gnuastro configure options} for a thorough explanation. These are only
 relevant for you if you intend to use the binary operators of
 @ref{Arithmetic on datasets}
@@ -17068,15 +17071,15 @@ strange and apparently random errors that are 
extremely hard to debug.
 The POSIX Threads functions offered in the C library are very low-level and
 offer a great range of control over the properties of the threads. So if
 you are interested in customizing your tools for complicated thread
-applications, it is strongly encouraged to get a nice familarity with
+applications, it is strongly encouraged to get a nice familiarity with
 them. Some resources were introduced in @ref{Multithreaded
 programming}.
 
 However, in many cases used in astronomical data analysis, you don't need
 communication between threads and each target operation can be done
-independently. Since such operations are very commen, Gnuastro provides the
+independently. Since such operations are very common, Gnuastro provides the
 tools below to facilitate the creation and management of jobs without any
-paritcular knowledge of POSIX Threads for such operations. The most
+particular knowledge of POSIX Threads for such operations. The most
 interesting high-level functions of this section are the
 @code{gal_threads_number} and @code{gal_threads_spin_off} that identify the
 number of threads on the system and spin-off threads. You can see a
@@ -17288,7 +17291,7 @@ above easier. In the functions below, the constants 
above can be used for
 the @code{type} input argument.
 
 @deftypefun size_t gal_type_sizeof (uint8_t @code{type})
-Return the number of bytes occurpied by @code{type}. Internally, this
+Return the number of bytes occupied by @code{type}. Internally, this
 function uses C's @code{sizeof} operator to measure the size of each type.
 @end deftypefun
 
@@ -17373,7 +17376,7 @@ which will produce:
 @end example
 
 As the example above shows, the bit-string is not the most efficient way to
-inspect bits. If you are familiar with hexademical notation, it is much
+inspect bits. If you are familiar with hexadecimal notation, it is much
 more compact, see @url{https://en.wikipedia.org/wiki/Hexadecimal}. You can
 use @code{printf}'s @code{%x} or @code{%X} to print integers in hexadecimal
 format.
@@ -17524,7 +17527,7 @@ value).
 @end deffn
 
 @deffn {Global integer}  GAL_BLANK_STRING
-Blank value for string types (this is itsself a string, it isn't the
+Blank value for string types (this is itself a string, it isn't the
 @code{NULL} pointer).
 @end deffn
 
@@ -17623,7 +17626,7 @@ types, units and higher-level structures), Gnuastro 
defines the
 @code{gal_data_t} type which is the input/output container of choice for
 many of Gnuastro library's functions. It is defined in
 @file{gnuastro/data.h}. If you will be using (address@hidden include}'ing) 
those
-libraries, you don't need to include this header explicity, it is already
+libraries, you don't need to include this header explicitly, it is already
 included by any library header that uses @code{gal_data_t}.
 
 @deftp {Type (C @code{struct})} gal_data_t
@@ -17699,7 +17702,7 @@ variable, please see @ref{Library data types}.
 The dataset's number of dimensions.
 
 
address@hidden Fortran
address@hidden FORTRAN
 @cindex FITS standard
 @cindex Standard, FITS
 @item size_t *dsize
@@ -17715,7 +17718,7 @@ It is important to remember that C's row-major ordering 
is the opposite of
 the FITS standard which is in column-major order: in the FITS standard the
 fastest dimension's size is specified by @code{NAXIS1}, and slower
 dimensions follow. The FITS standard was defined mainly based on the
-Fortran language which is the opposite of C's approach to multi-dimensional
+FORTRAN language which is the opposite of C's approach to multi-dimensional
 arrays (and also starts counting from 1 not 0). Hence if a FITS image has
 @code{NAXIS1==20} and @code{NAXIS2==50}, the @code{dsize} array must be
 filled with @code{dsize[0]==50} and @code{dsize[1]==20}.
@@ -17728,9 +17731,9 @@ an increment along that dimension becomes larger.
 @item size_t size
 The total number of elements in the dataset. This is actually a
 multiplication of all the values in the @code{dsize} array, so it is not an
-indepenent parameter. However, low-level operations with the dataset
+independent parameter. However, low-level operations with the dataset
 (irrespective of its dimensionality) commonly need this number, so this
-element is designed to avoid calculating it everytime.
+element is designed to avoid calculating it every time.
 
 @item char *mmapname
 Name of file hosting the @code{mmap}'d contents of @code{array}. If the
@@ -17747,7 +17750,7 @@ will be deleted.
 The minimum size of an array (in bytes) to store the contents of
 @code{array} as a file (on the non-volatile HDD/SSD), not in RAM. This can
 be very useful for large datasets which can be very memory intensive and
-the user's hardware RAM might not be sufficent to keep/process it. A random
+the user's hardware RAM might not be sufficient to keep/process it. A random
 filename is assigned to the array which is available in the @code{mmapname}
 element of @code{gal_data_t} (above), see there for more.
 
@@ -17763,7 +17766,7 @@ you will need for a given input). For example your 
processing might involve
 a copy of the the input (possibly to a wider data type which takes more
 bytes for each element), so take all such issues into
 consideration. @code{minmapsize} is actually stored in each
address@hidden, so it can be passed on to derivate datasets.
address@hidden, so it can be passed on to subsequent/derived datasets.
 
 @item nwcs
 The number of WCS coordinate representations (for WCSLIB).
@@ -17771,7 +17774,7 @@ The number of WCS coordinate representations (for 
WCSLIB).
 @item struct wcsprm *wcs
 The main WCSLIB structure keeping all the relevant information necessary
 for WCSLIB to do its processing and convert data-set positions into
-real-world positions. When it is given a @code{NULL} value, all posssible
+real-world positions. When it is given a @code{NULL} value, all possible
 WCS calculations/measurements will be ignored.
 
 @item uint8_t flag
@@ -17786,7 +17789,7 @@ these flags. The currently recognized bits are stored 
in these macros:
 @cindex Blank data
 @item GAL_DATA_FLAG_BLANK_CH
 Marking that the dataset has been checked for blank values. Therefore, the
-value of the bit in @code{GAL_DATA_FLAG_HASBLANK} is relibable. Without
+value of the bit in @code{GAL_DATA_FLAG_HASBLANK} is reliable. Without
 this bit, when a dataset doesn't have any blank values (and this has been
 checked), the @code{GAL_DATA_FLAG_HASBLANK} bit will be zero so a checker
 has no way to know if this zero is real or if no check has been done yet.
@@ -17989,7 +17992,7 @@ actual data structure.
 Gnuastro's generic data container (@code{gal_data_t}) is a very versatile
 structure that can be used in many higher-level contexts. One such
 higher-level construct is an array of @code{gal_data_t} structures to
-simplify the allocation (and later clearning) of several @code{gal_data_t}s
+simplify the allocation (and later cleaning) of several @code{gal_data_t}s
 that are related.
 
 For example, each column in a table is usually represented by one
@@ -18029,7 +18032,7 @@ container}.
 @subsubsection Copying datasets
 
 The functions in this section describes Gnuastro's facilities to copy a
-given datset into another. The new dataset can have a different type
+given dataset into another. The new dataset can have a different type
 (including a string), it can be already allocated (in which case only the
 values will be written into it). In all these cases, if the input dataset
 is a tile, only the data within the tile are copied.
@@ -18175,14 +18178,14 @@ macro are described below:
 Distance of this element from the first element in the array on a
 contiguous patch of memory (starting from 0), see the discussion above.
 @item ndim
-The number of dimensions associated with the contiugous patch of memory.
+The number of dimensions associated with the contiguous patch of memory.
 @item dsize
 The full array size along each dimension. This must be an array and is
 assumed to have the same number elements as @code{ndim}. See the discussion
 under the same element in @ref{Generic data container}.
 @item connectivity
 Most distant neighbors to consider. Depending on the number of dimensions,
-different neighbros may be defined for each element. This function-like
+different neighbors may be defined for each element. This function-like
 macro distinguish between these different neighbors with this argument. It
 has a value between @code{1} (one) and @code{ndim}. For example in a 2D
 dataset, 4-connected neighbors have a connectivity of @code{1} and
@@ -18200,7 +18203,7 @@ size_t *dinc=gal_dimension_increment(ndim, dsize);
 
 @code{dinc} depends on @code{ndim} and @code{dsize}, but it must be defined
 outside this function-like macro since it involves allocation to help in
-preformance.
+performance.
 
 @item operation
 Any C operation that you would like to do on the neighbor. This macro will
@@ -18241,7 +18244,7 @@ data-container of choice in such situations. As in a 
chain, each
 along with pointer(s) to its immediate neighbor(s). Below, you can see one
 simple linked list node structure along with an ASCII art schematic of how
 we can use the @code{next} pointer to add any number of elements to the
-list that we want. By convension, a list is terminated when @code{next} is
+list that we want. By convention, a list is terminated when @code{next} is
 the @code{NULL} pointer.
 
 @c The second and last lines lines are pushed line space forward, because
@@ -18404,7 +18407,7 @@ negative integers. The are generally useful in many 
contexts, for example
 when you want to keep the order of a series of states (each state stored as
 a given number in an @code{enum} for example). On many modern systems,
 @code{int32_t} is just an alias for @code{int}, so you can use them
-interchably. To make sure, check the size of @code{int} on your system:
+interchangeably. To make sure, check the size of @code{int} on your system:
 
 @deftp {Type (C @code{struct})} gal_list_i32_t
 A single node in a list containing a 32-bit signed integer (see
@@ -18677,7 +18680,7 @@ until 15.9 decimals and consume 8 bytes (64-bits) of 
memory, see
 @ref{Numeric data types}. This level of precision makes them very good for
 serious processing in the middle of a program's execution: in many cases,
 the propagation of errors will still be insignificant compared to actual
-obervational errors in a data set. But since they consume 8 bytes and more
+observational errors in a data set. But since they consume 8 bytes and more
 CPU processing power, they are often not the best choice for storing and
 transferring of data.
 
@@ -18769,12 +18772,12 @@ in memory actually contains). However, @code{void *} 
is just a raw address
 (pointer), it contains no information on the contents it points to.
 
 These properties make the @code{void *} very useful when you want to treat
-the contents of an address in differnt ways. You can use the @code{void *}
+the contents of an address in different ways. You can use the @code{void *}
 list defined in this section and its function on any kind of data: for
 example you can use it to keep a list of custom data structures that you
 have built for your own separate program. Each node in the list can keep
-anything and this gives you great versatily. But in using @code{void *},
-please beware that ``with great power comes great responsibilty''.
+anything and this gives you great versatility. But in using @code{void *},
+please beware that ``with great power comes great responsibility''.
 
 
 @deftp {Type (C @code{struct})} gal_list_void_t
@@ -18869,12 +18872,12 @@ this function, @code{list} will point to the next 
node (which has a larger
 @end deftypefun
 
 @deftypefun void gal_list_osizet_to_sizet_free (gal_list_osizet_t @code{*in}, 
gal_list_sizet_t @code{**out})
-Convert the orderd list of @code{size_t}s into an ordinary @code{size_t}
+Convert the ordered list of @code{size_t}s into an ordinary @code{size_t}
 linked list. This can be useful when all the elements have been added and
 you just need to pop-out elements and don't care about the sorting values
 any more. After the conversion is done, this function will free the input
 list. Note that the @code{out} list doesn't have to be empty. If it already
-contains some nodes, the new nodes will be added ontop of them.
+contains some nodes, the new nodes will be added on top of them.
 @end deftypefun
 
 
@@ -19096,7 +19099,7 @@ One important issue to consider is that CFITSIO's types 
are not fixed width
 systems). However, Gnuastro's types are defined by their width. These
 functions will use information on the host system to do the proper
 conversion, so it strongly recommended to use these functions for
-portability of your code and not to assume a fixed correspondance between
+portability of your code and not to assume a fixed correspondence between
 CFITSIO and Gnuastro's types.
 
 @deftypefun uint8_t gal_fits_bitpix_to_type (int @code{bitpix})
@@ -19225,7 +19228,7 @@ typedef struct gal_fits_list_key_t
 @end deftp
 
 @deftypefun void gal_fits_key_clean_str_value (char @code{*string})
-Remove the sigle quotes and possible extra spaces around the keyword values
+Remove the single quotes and possible extra spaces around the keyword values
 that CFITSIO returns when reading a string keyword. CFITSIO doesn't remove
 the two single quotes around the string value of a keyword. Hence the
 strings it reads are like: @code{'value '}, or
@@ -19297,7 +19300,7 @@ str    = strarray[0];
 
 If CFITSIO is unable to read a keyword for any reason the @code{status}
 element of the respective @code{gal_data_t} will be non-zero. If it is
-zero, then the keyword was found and succesfully read. Otherwise, it is a
+zero, then the keyword was found and successfully read. Otherwise, it is a
 CFITSIO status value. You can use CFITSIO's error reporting tools or
 @code{gal_fits_io_error} (see @ref{FITS macros errors filenames}) for
 reporting the reason of the failure. A tip: when the keyword doesn't exist,
@@ -19598,7 +19601,7 @@ library} for the definition of tiles. If @code{tile} 
already has a WCS
 structure, this function won't do anything.
 
 In many cases, tiles are created for internal/low-level processing. Hence
-for preformance reasons, when creating the tiles they don't have any WCS
+for performance reasons, when creating the tiles they don't have any WCS
 structure. When needed, this function can be used to add a WCS structure to
 each tile tile by copying the WCS structure of its block and correcting the
 reference point's coordinates within the tile.
@@ -19821,7 +19824,7 @@ directly used in C's @code{printf} command to write the 
number as a string.
 The display format used in C's @code{printf} to display data of different
 types. The @code{_STRING} and @code{_DECIMAL} are unique for printing
 strings and signed integers, they are mainly here for
-completeness. However, unsigned integers and flating points can be
+completeness. However, unsigned integers and floating points can be
 displayed in multiple formats:
 
 @table @asis
@@ -19956,7 +19959,7 @@ programming language (including C) provides some very 
good tools for
 various operations (including arithmetic operations like addition) on the
 dataset with a simple loop. However, as an author of a program, making
 assumptions about the type of data, its dimensionality and other basic
-characteristics will come with a large processing burdern.
+characteristics will come with a large processing burden.
 
 For example if you always read your data as double precision floating
 points for a simple operation like addition with an integer constant, you
@@ -20124,7 +20127,7 @@ under the @code{min} operator in @ref{Arithmetic 
operators}.
 
 @deffn Macro GAL_ARITHMETIC_OP_POW
 Binary operator to-power operator. When @code{gal_arithmetic} is called
-with any of these operators, it will expect two operands: rasing the first
+with any of these operators, it will expect two operands: raising the first
 by the second. This operator only accepts floating point inputs and the
 output is also floating point.
 @end deffn
@@ -20173,7 +20176,7 @@ requested type. Note that with these operators, 
@code{gal_arithmetic} is
 just a wrapper over the @code{gal_data_copy_to_new_type} or
 @code{gal_data_copy_to_new_type_free} that are discussed in @code{Copying
 datasets}. It accepts these operators only for completeness and easy usage
-in @ref{Arithmetic}. So in your programs, it might be preferrable to
+in @ref{Arithmetic}. So in your programs, it might be preferable to
 directly use those functions.
 @end deffn
 
@@ -20206,7 +20209,7 @@ each operator.
 In many contexts, it is desirable to slice the dataset into subsets or
 tiles (overlapping or not). In such a way that you can work on each tile
 independently. One method would be to copy that region to a separate
-allocated space, but in many contexts this isn't necessary and infact can
+allocated space, but in many contexts this isn't necessary and in fact can
 be a big burden on CPU/Memory usage. The @code{block} pointer in Gnuastro's
 @ref{Generic data container} is defined for such situations: where
 allocation is not necessary. You just want to read the data or write to it
@@ -20215,7 +20218,7 @@ with parallel processing, this can greatly improve the 
time/memory
 consumption.
 
 See the figure below for example: assume the @code{larger} dataset is a
-contiguous block of memory that you are interpretting as a 2D array. But
+contiguous block of memory that you are interpreting as a 2D array. But
 you only want to work on the smaller @code{tile} region.
 
 @example
@@ -20254,7 +20257,7 @@ designed to help in defining and working with tiles 
that are created in
 this manner.
 
 Since the block structure is defined as a pointer, arbitrary levels of
-tesselation/griding are possible (@code{tile->block} may itself be a tile
+tessellation/grid-ing are possible (@code{tile->block} may itself be a tile
 in an even larger allocated space). Therefore, just like a linked-list (see
 @ref{Linked lists}), it is important to have the @code{block} pointer of
 the largest (allocated) dataset set to @code{NULL}. Normally, you won't
@@ -20334,7 +20337,7 @@ element, so the output may also be treated as a list of 
datasets (see
 @ref{List of gal_data_t}) and passed onto the other functions described in
 this section.
 
-The array keeping the minmium and maximum coordinates for each tile must
+The array keeping the minimum and maximum coordinates for each tile must
 have the following format. So in total @code{minmax} must have
 @code{2*ndim*number} elements.
 
@@ -20423,7 +20426,7 @@ operation will be done on @code{numthreads} threads.
 @deffn {Function-like macro} GAL_TILE_PARSE_OPERATE (@code{IN}, @code{OTHER}, 
@code{PARSE_OTHER}, @code{CHECK_BLANK}, @code{OP})
 Parse over @code{IN} (which can be a tile or a fully allocated block of
 memory) and do the @code{OP} operation on it (can be any combination of C
-expresssions). If @code{OTHER!=NULL}, this macro will allow access to its
+expressions). If @code{OTHER!=NULL}, this macro will allow access to its
 element(s) and it can optionally be parsed while parsing over
 @code{IN}. You can use this to parse the same region over two arrays. The
 input arguments are (the expected types of each argument are also written
@@ -20451,7 +20454,7 @@ If it is non-zero, then the input will be checked for 
blank values and
 @code{OP} will only be called when we are not on a blank element.
 
 @item OP
-Operator: this can be any number of C experssions. This macro is going to
+Operator: this can be any number of C expressions. This macro is going to
 define a @code{itype *i} variable which will increment over each element of
 the input array/tile. @code{itype} will be replaced with the C type that
 corresponds to the type of @code{INPUT}. As an example, if @code{INPUT}'s
@@ -20614,11 +20617,11 @@ to fully cover every element of the input (depending 
on
 The output is an array with the same dimensions as @code{input} which
 contains the number of tiles along each dimension.  See @ref{Tessellation}
 for a description of its application in Gnuastro's programs and
address@hidden, just note that this function defines only onelayer of
address@hidden, just note that this function defines only one layer of
 tiles.
 
 This is a low-level function (independent of the
address@hidden strcuture defined above). If you want a
address@hidden structure defined above). If you want a
 two-layer tessellation, directly call @code{gal_tile_full_two_layers} that
 is described below. The input arguments to this function are:
 
@@ -20896,7 +20899,7 @@ exist!
 @end example
 
 This is because we are always going to be calculating the area of the
-overlap between a quadrilateral and the pixel grid or the quadrilaterral
+overlap between a quadrilateral and the pixel grid or the quadrilateral
 its self.
 
 The @code{GAL_POLYGON_MAX_CORNERS} macro is defined so there will be no
@@ -21005,7 +21008,7 @@ types}, for example @code{gal_qsort_int32_decreasing}, 
or
 Permutation is the technical name for re-ordering of values. The need for
 permutations occurs a lot during (mainly low-level) processing. To do
 permutation, you must provide two inputs: an array of values (that you want
-to re-order inplace) and a permutation array which contains the new index
+to re-order in place) and a permutation array which contains the new index
 of each element (let's call it @code{perm}). The diagram below shows the
 input array before and after the re-ordering.
 
@@ -21019,7 +21022,7 @@ The functions here are a re-implementation of the GNU 
Scientific Library's
 @code{gsl_permute} function. The reason we didn't use that function was
 that it uses system-specific types (like @code{long} and @code{int}) which
 can have different widths on different systems, hence are not easily
-convertable to Gnuastro's fixed width types (see @ref{Numeric data
+convertible to Gnuastro's fixed width types (see @ref{Numeric data
 types}). There is also a separate function for each type, heavily using
 macros to allow a @code{base} function to work on all the types. Thus it is
 hard to read/understand. Hence, Gnuastro contains a re-write of their steps
@@ -21243,7 +21246,7 @@ allocate a new copy of the dataset that is sorted and 
has no blank values.
 @deftypefun {gal_data_t *} gal_statistics_regular_bins (gal_data_t 
@code{*input}, gal_data_t @code{*inrange}, size_t @code{numbins}, double 
@code{onebinstart})
 Generate an array of regularly spaced elements as a 1D array (column) of
 type @code{double} (i.e., @code{float64}, it has to be double to account
-for small differences on the bin edges). The input arguments are discribed
+for small differences on the bin edges). The input arguments are described
 below
 
 @table @code
@@ -21323,7 +21326,7 @@ clipping.
 The role of @code{param} is determined based on its value. If @code{param}
 is larger than @code{1} (one), it must be an integer and will be
 interpretted as the number clips to do. If it is less than @code{1} (one),
-it is interpretted as the tollerance level to stop the iteration.
+it is interpretted as the tolerance level to stop the iteration.
 
 The output dataset has the following elements:
 @example
@@ -21344,7 +21347,7 @@ array[3]: Standard deviation.
 @cindex Dataset: binary
 Binary datasets only have two (usable) values: 0 (also known as background)
 or 1 (also known as foreground). They are created after some binary
-classificataion is applied to the dataset. The most common is thresholding:
+classification is applied to the dataset. The most common is thresholding:
 for example in an image, pixels with a value above the threshold are given
 a value of 1 and those with a value less than the threshold are assigned a
 value of 0.
@@ -21353,7 +21356,7 @@ value of 0.
 @cindex Immediate neighbors
 @cindex Neighbors, immediate
 Since there is only two values, in the processing of binary images, you are
-usually concered with the positioning of an element and its vicinity
+usually concerned with the positioning of an element and its vicinity
 (neighbors). When a dataset has more than one dimension, multiple classes
 of immediate neighbors (that are touching the element) can be defined for
 each data-element. To separate these different classes of immediate
@@ -21403,7 +21406,7 @@ contain blank elements.
 
 @deftypefun {gal_data_t *} gal_binary_erode (gal_data_t @code{*input}, size_t 
@code{num}, int @code{connectivity}, int @code{inplace})
 Do @code{num} erosions on the @code{connectivity}-connected neighbors of
address@hidden (see above for the defintion of connectivity).
address@hidden (see above for the definition of connectivity).
 
 If @code{inplace} is non-zero @emph{and} the input's type is
 @code{GAL_TYPE_UINT8}, then the erosion will be done within the input
@@ -21419,12 +21422,12 @@ Erosion (inverse of dilation) is an operation in 
mathematical morphology
 where each foreground pixel that is touching a background pixel is flipped
 (changed to background). The @code{connectivity} value determines the
 definition of ``touching''. Erosion will thus decrease the area of the
-foregound regions by one layer of pixels.
+foreground regions by one layer of pixels.
 @end deftypefun
 
 @deftypefun {gal_data_t *} gal_binary_dilate (gal_data_t @code{*input}, size_t 
@code{num}, int @code{connectivity}, int @code{inplace})
 Do @code{num} dilations on the @code{connectivity}-connected neighbors of
address@hidden (see above for the defintion of connectivity). For more on
address@hidden (see above for the definition of connectivity). For more on
 @code{inplace} and the output, see @code{gal_binary_erode}.
 
 @cindex Dilation
@@ -21432,12 +21435,12 @@ Dilation (inverse of erosion) is an operation in 
mathematical morphology
 where each background pixel that is touching a foreground pixel is flipped
 (changed to foreground). The @code{connectivity} value determines the
 definition of ``touching''. Dilation will thus increase the area of the
-foregound regions by one layer of pixels.
+foreground regions by one layer of pixels.
 @end deftypefun
 
 @deftypefun {gal_data_t *} gal_binary_open (gal_data_t @code{*input}, size_t 
@code{num}, int @code{connectivity}, int @code{inplace})
 Do @code{num} openings on the @code{connectivity}-connected neighbors of
address@hidden (see above for the defintion of connectivity). For more on
address@hidden (see above for the definition of connectivity). For more on
 @code{inplace} and the output, see @code{gal_binary_erode}.
 
 @cindex Opening (Mathematical morphology)
@@ -21570,7 +21573,7 @@ is much faster.
 @node Interpolation, Git wrappers, Convolution functions, Gnuastro library
 @subsection Interpolation (@file{interpolate.h})
 
-During data anlysis, it often happens that parts of the data cannot be
+During data analysis, it often happens that parts of the data cannot be
 given a value. For example your image was saturated due to a very bright
 start and you have to mask that star's footprint. One other common
 situation in Gnuastro is when we do processing on tiles (for example to
@@ -21609,7 +21612,7 @@ If several datasets have the same set of blank values, 
you don't need to
 call this function multiple times. When @code{aslinkedlist} is non-zero,
 then @code{input} will be seen as a @ref{List of gal_data_t} and for all
 the same neighbor position checking will be done for all the datasets in
-the list. Ofcourse, the values for each dataset will be different, so a
+the list. Of course, the values for each dataset will be different, so a
 different value will be written in the each dataset, but the neighbor
 checking that is the most CPU intensive part will only be done once.
 @end deftypefun
@@ -21739,8 +21742,9 @@ The following simple program shows how you can inspect 
the neighbors of a
 pixel using the @code{GAL_DIMENSION_NEIGHBOR_OP} function-like macro that
 was introduced in @ref{Dimensions}. For easy linking/compilation of this
 program along with a first run see @ref{BuildProgram}. Before running, also
-change the @code{filename} and @code{hdu} variable values to specify an
-existing FITS file and/or extension/HDU.
+change the file name and HDU (first and second arguments to
address@hidden) to specify an existing FITS file and/or
+extension/HDU.
 
 @example
 #include <stdio.h>
@@ -21793,13 +21797,13 @@ existing FITS file and/or extension/HDU.
 This is a very simple program to open a FITS image, distribute its pixels
 between different threads and print the value of each pixel and the thread
 it was assigned to. The actual operation is very simple (and would not
-usually be done with threads in a real-life program). It is intentially
+usually be done with threads in a real-life program). It is intentionally
 chosen to put more focus on the important steps in spinning of threads and
 how the worker function (which is called by each thread) can identify the
 job-IDs it should work on.
 
 For example, instead of an array of pixels, you can define an array of
-tiles or any other context-specific strcutures as separate targets. The
+tiles or any other context-specific structures as separate targets. The
 important thing is that each action should have its own unique ID (counting
 from zero, as is done in an array in C). You can then follow the process
 below and use each thread to work on all the targets that are assigned to
@@ -21844,7 +21848,7 @@ struct params
 
 /* This is the main worker function which will be called by the
  * different threads. `gal_threads_params' is defined in
- * `gnuastro/threads.h' and contains the pointer to the paramter we
+ * `gnuastro/threads.h' and contains the pointer to the parameter we
  * want. Note that the input argument and returned value of this
  * function always must have `void *' type. */
 void *
@@ -21860,7 +21864,7 @@ worker_on_thread(void *in_prm)
   size_t i, index, *dsize=p->image->dsize;
 
 
-  /* Go over all the actions(pixels in this case that were assigned
+  /* Go over all the actions (pixels in this case) that were assigned
    * to this thread. */
   for(i=0; tprm->indexs[i] != GAL_BLANK_SIZE_T; ++i)
     @{
@@ -21963,7 +21967,7 @@ 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 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
-the type checkings and copyings won't be necessary.
+type checking and copying won't be necessary.
 
 @example
 #include <stdio.h>
@@ -22177,7 +22181,7 @@ community, mostly on large data sets (like astronomical 
images), using
 Python will waste a lot of valuable research-hours. It is possible to wrap
 C or C++ functions with Python to fix the speed issue. But this adds to
 complexity, because the interested scientist will now have to master two
-programming languages and their connection (which is not trival).
+programming languages and their connection (which is not trivial).
 
 Like C++, Python is object oriented, so as explained above, it needs a high
 level of experience with that particular program to fully understand its
@@ -22263,7 +22267,7 @@ check your results. If you want to include the plots in 
a document, you can
 use the PGFplots package within @LaTeX{}, no attempt is made to include
 such operations in Gnuastro. In short, Bash can act as a glue to connect
 the inputs and outputs of all these various Gnuastro programs (and other
-programs) in any fashion you please. Ofcourse, Gnuastro's programs are just
+programs) in any fashion you please. Of course, Gnuastro's programs are just
 front-ends to the main workhorse (@ref{Gnuastro library}), allowing a user
 to create their own programs (for example with @ref{BuildProgram}). So once
 the functions within programs become mature enough, they will be moved
@@ -22435,7 +22439,7 @@ Note that the GSL convention for header file names is
 @code{#include <gsl/gsl_specialname.h>}, the header file names are not
 prefixed with a address@hidden'. However, Gnuastro doesn't follow this
 guideline because of the repeated @code{gsl} in the include directive
-(which canbe confusing and cause bugs). All Gnuastro (and GSL) headers must
+(which can be confusing and cause bugs). All Gnuastro (and GSL) headers must
 be located within a unique directory and will not be mixed with other
 headers. Therefore the address@hidden' prefix to the header file names is
 address@hidden GSL, this prefix has an internal technical
@@ -22644,7 +22648,7 @@ designed to be low-level, small and independent parts, 
so this structure
 should not get too large.
 
 @cindex @code{p}
-The main root structure of all programs contains atleast one instance of
+The main root structure of all programs contains at least one instance of
 the @code{gal_options_common_params} structure. This structure will keep
 the values to all common options in Gnuastro's programs (see @ref{Common
 options}). This top root structure is conveniently called @code{p} (short
@@ -22899,7 +22903,7 @@ few things (see the next step).
 
 @item
 After your work has been fully implemented, read the section documentation
-from teh start and see if you didn't miss any change in the coding and to
+from the start and see if you didn't miss any change in the coding and to
 see if the context is fairly continuous for a first time reader (who hasn't
 seen the book or had known Gnuastro before you made your change).
 @end enumerate
@@ -23465,7 +23469,7 @@ as an author in Gnuastro: in the @file{AUTHORS} file 
and at the start of
 the PDF book. These author lists are created automatically from the version
 controlled source.
 
-To receive full acknowledgement when submitting a patch, is thus advised to
+To receive full acknowledgment when submitting a patch, is thus advised to
 use Git's @code{format-patch} tool. See Pro Git's
 
@url{https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#Public-Project-over-Email,
 Public project over email} section for a nice explanation. If you would
@@ -23642,7 +23646,7 @@ operators (for example @command{+}, @command{-}, 
@command{*}, @command{/},
 (@file{astbuildprog}, see @ref{BuildProgram}) Compile, link and run
 programs that depend on the Gnuastro library (see @ref{Gnuastro
 library}). This program will automatically link with the libraries that
-Gnuastro depends on, so there is no need to explicily mention them every
+Gnuastro depends on, so there is no need to explicitly mention them every
 time you are compiling a Gnuastro library dependent program.
 
 @item ConvertType
@@ -23766,8 +23770,8 @@ export XPA_METHOD=local
 @node Viewing multiextension FITS,  , SAO ds9, SAO ds9
 @subsection Viewing multiextension FITS images
 
address@hidden Multiextention FITS
address@hidden Opening multiextention FITS
address@hidden Multiextension FITS
address@hidden Opening multiextension FITS
 The FITS definition allows for multiple extensions inside a FITS file,
 each extension can have a completely independent data set inside of
 it. If you ordinarily open a multi-extension FITS file with SAO ds9,
diff --git a/doc/release-checklist.txt b/doc/release-checklist.txt
index dde7809..8cc23d9 100644
--- a/doc/release-checklist.txt
+++ b/doc/release-checklist.txt
@@ -11,6 +11,7 @@ all the commits needed for this release have been completed.
    in `configure.ac'). See the `Updating library version information'
    section of the GNU Libtool manual as a guide.
 
+ - Run a spell-check (in emacs with `M-x ispell') on the whole book.
 
  - Update the NEWS file (use `git log --reverse gnuastro_vA.B..HEAD').
 
@@ -75,19 +76,8 @@ all the commits needed for this release have been completed.
                --replace --symlink-regex                                   \
                gnuastro-X.X.tar.gz gnuastro-X.X.tar.lz
 
- - Prepare the announcement, this command will calculate the checksums and
-   also make the links ready. You just have to add a starting and ending
-   similar to previous announcements in a text editor. In the `XXXX', put
-   `ftp' for a stable, and `alpha' for an alpha release.
-
-     $ /path/to/gnulib/build-aux/announce-gen --release-type=stable        \
-              --package-name=gnuastro --previous-version=0.1               \
-              --current-version=0.2 --gpg-key-id=16A8A4B2AEC42AFF          \
-              --url-directory=http://XXXX.gnu.org/gnu/gnuastro             \
-              --archive-suffix=tar.lz > announcement.txt
-
  - [ALPHA]: Now that you have the release number, update the link on the
-   main HTML.
+   main HTML on the webpage (`gnuastro-top.html').
 
  - Build the manual in all the formats and upload everything. Note that you
    will need to configure Gnuastro in the main source directory to build
@@ -97,11 +87,26 @@ all the commits needed for this release have been completed.
        $ cd doc
        $ ./forwebpage /path/to/local/copy/of/webpage
 
-
  - Push all the changes and tag to the main repo:
 
     $ git push --follow-tags
 
+ - Prepare the announcement, this command will calculate the checksums and
+   also make the links ready. You just have to add a starting and ending
+   similar to previous announcements in a text editor. In the `XXXX', put
+   `ftp' for a stable, and `alpha' for an alpha release.
+
+     $ /path/to/gnulib/build-aux/announce-gen --release-type=stable        \
+              --package-name=gnuastro --previous-version=0.1               \
+              --current-version=0.2 --gpg-key-id=16A8A4B2AEC42AFF          \
+              --url-directory=http://XXXX.gnu.org/gnu/gnuastro             \
+              --archive-suffix=tar.lz > announcement.txt
+
+ - After finishing the announcement (adding an intro and NEWS file), run a
+   spell-check on it.
+
+ - IMPORTANT: double check the changes in the list of authors and the list
+   in THANKS and make sure everyone's contribution is correctly included.
 
  - Announce the release on address@hidden', address@hidden' and
    Savannah news.



reply via email to

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