@@ -141,46 +141,46 @@ The tools are organised as follows:

-`DIC`: toolkit for Digital Image/Volume Correlation. This toolkit provides tools to measure the deformation between two images/volumes. A robust registration tool based on the same-modality version of @tudisco2017extension is provided, as well as some cutting edge tools such as multi-modal registration that implements @roubin2019colours.

A version of Global-DVC as per @mendoza2019complete is in the process of being developed.

The `DIC` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html#image-correlation-deformation-toolkit), discussed in detail in tutorials covering [theory](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-02a-DIC-theory.html), [practice](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-02b-DIC-practice.html) and [discrete DIC](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-04-discreteDIC.html), and illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html#digital-image-correlation-examples)

The `DIC` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html), discussed in detail in tutorials covering [theory](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-02a-DIC-theory.html), [practice](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-02b-DIC-practice.html) and [discrete DIC](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-04-discreteDIC.html), and illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html)

-`deformation`: toolkit for manipulating deformation functions called $\Phi$ (expressed in homogeneous coordinates), as well as the more usual in continuum mechanics transformation gradient tensor $F$.

Tools are also provided to compute fields of $F$ from a displacement field measured on a regular grid (coming from a "local" correlation for example), either using square/cubic finite element shape functions, or the method proposed in @geers1996computing.

For a displacement field on an irregular grid (for example defined at particle centres coming from a "discrete" correlation), a Delaunay triangulation based method [@bagi1996stress; @zhang2015large; @catalano2014] is implemented.

Both finite (large) strain and infinitesimal (small) strain frameworks are implemented for both regular and irregular grids.

The `deformation` toolkit is presented (together with `DIC`) in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html#image-correlation-deformation-toolkit), discussed in detail in the [continuum mechanics refresher](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-00-refreshments.html), the start of [DIC theory](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-02a-DIC-theory.html) and [strain tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-07-strain.html), and is used throughout the DIC examples (see above)

The `deformation` toolkit is presented (together with `DIC`) in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html), discussed in detail in the [continuum mechanics refresher](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-00-refreshments.html), the start of [DIC theory](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-02a-DIC-theory.html) and [strain tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-07-strain.html), and is used throughout the DIC examples (see above)

-`excursions`: toolkit for the excursion set of correlated random fields theory [@adler2008new].

It includes functions that give the analytical predictions of the global descriptors (or Lipschitz-Killing curvatures) of excursions in spaces of arbitrary dimensions [@roubin2015meso; @roubin2016perco] along with the generation of correlated random fields using `RandomFields` in R through `rpy2` [@Ritself; @rpy2; @schlather2015randomfields].

The `excursions` toolkit is illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html#random-fields-and-excursion-sets)

The `excursions` toolkit is illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html)

-`filters`: toolkit of 3D filters that provide some functionality missing in `scipy.ndimage.filters` such as the computation of a local hessian, or functions which are slow.

For example, for the computation of a local variance, the spam-provided function is more than 100 times faster than using the generic filter with variance in `scipy.ndimage`.

The `filters` toolkit is used in the [projection tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-06-projection.html), and illustrated [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html#image-operations)

The `filters` toolkit is used in the [projection tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-06-projection.html), and illustrated [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html)

-`helpers`: toolkit of internal helper functions such as the parsers for the scripts, as well as tools for reading and writing TSV and VTK files.

The latter partially uses `meshio` [@meshio]

-`kalisphera`: wrapper for C++ version of `kalisphera` [@tengattini2015kalisphera] which generates analytically-correct partial-volume spheres which are useful for testing discrete analysis code (see `label` below).

The `kalisphera` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html#kalisphera), is used in the [contacts tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-08-contacts.html), and is illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html#kalisphera-sphere-generation)

The `kalisphera` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html), is used in the [contacts tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-08-contacts.html), and is illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html)

-`label`: toolkit to measure and manipulate "labelled" images, where discrete particles are labelled with integer voxel patches.

The computation of standard quantities such as the volume, centre of mass, and moment of inertia tensor of each particle can be done very conveniently and somewhat faster and with a smaller memory footprint than what is available in `scipy.ndimage`.

An estimation of an ellipse fitting of each particle is implemented with the algorithm from @ikeda:2000.

Tools for characterising inter-particle contacts based on the work of @wiebicke2017.

A wrapper for ITK's morphological watershed [@schroeder2003itk; @beare2006watershed] is also provided.

The `label` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html#label-toolkit), discussed in detail in tutorials covering [the base toolkit](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-03-labelToolkit.html) and [contacts](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-08-contacts.html), and illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html#labeltoolkit-examples)

The `label` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html), discussed in detail in tutorials covering [the base toolkit](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-03-labelToolkit.html) and [contacts](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-08-contacts.html), and illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html)

-`measurements`: toolkit implementing the measurement of covariance, porosity and global descriptors (volume, perimeter, surface area, and Euler characteristic).

The `measurements` toolkit is used in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html#random-fields-and-excursion-sets)

The `measurements` toolkit is used in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html)

-`mesh`: toolkit for the creation or manipulation of meshes -- in `spam` tetrahedral meshes are principally used. Meshers based on Gmsh [@geuzaine2009gmsh] are used through `pygmsh` and weighted Delaunay triangulation (Laguerre triangulation) is provided through an interface with CGAL [@cgal] -- alpha-shapes are also implemented to help clean up badly-shaped tetrahedra.

In addition, a set of projection functions creates meshes able to represent heterogeneities (phases and interfaces of a given meso/micro structure) based on binary or trinary images or continuous fields (level set) with outputs easily convertible to any FE software [@roubin2015multi; @stamati2018tensile].

The `mesh` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html#mesh-tools), at the heart of the [projection tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-06-projection.html), and illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html#mesh)

The `mesh` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html), at the heart of the [projection tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-06-projection.html), and illustrated in the [examples gallery](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/spam_examples/index.html)

-`plotting`: toolkit of plotting tools based on `matplotlib` [@matplotlib] for creating complex plots such as a 3D orientation plot.

The `plotting` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html#plotting-tools) and used throughout tutorials and examples

The `plotting` toolkit is presented in the [introduction](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/intro.html) and used throughout tutorials and examples

-`visual`: toolkit of graphical helper functions for scripts

...

...

@@ -189,11 +189,11 @@ A number of scripts are available to be called from the command line.

Currently, the most-used scripts are related to image correlation:

-`spam-ldic` and `spam-regularStrain`: A "local" image correlation script, working for series of greyscale 2D or 3D images where kinematics are measured on independent points spread on a regular grid, accompanied by a strain computation script.

`spam-ldic` is presented in the [scripts page](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/scripts.html#regular-grid-local-dic-script-spam-ldic) and is the subject of the [DIC practice](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-02b-DIC-practice.html).

`spam-regularStrain` is presented in the [scripts page](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/scripts.html#regular-strain-script-spam-regularstrain) and is used in the [strain tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-07-strain.html)

`spam-ldic` is presented in the [scripts page](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/scripts.html) and is the subject of the [DIC practice](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-02b-DIC-practice.html).

`spam-regularStrain` is presented in the [scripts page](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/scripts.html) and is used in the [strain tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-07-strain.html)

-`spam-ddic` and `spam-discreteStrain`: A "discrete" image correlation script [@hall2010discrete; @ando2012experimental], working on greyscale 3D images plus a "labelled" image of the reference configuration. This script also has its own strain calculation based on a triangulation of grain centres.

`spam-ddic` is presented in the [scripts page](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/scripts.html#discrete-local-dic-script-spam-ddic) and is the subject of the [discrete DIC tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-04-discreteDIC.html)

`spam-ddic` is presented in the [scripts page](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/scripts.html) and is the subject of the [discrete DIC tutorial](https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/tutorial-04-discreteDIC.html)

-`spam-gdic` (in beta test): A "global" image correlation script, where the displacement field between two 3D images is computed as a global problem expressed on a tetrahedral mesh