From fe381d1ffe037028a9704966ec26d19894f4f5b1 Mon Sep 17 00:00:00 2001 From: mcarrier Date: Mon, 9 Oct 2017 16:48:40 +0000 Subject: git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/Nerve_GIC@2771 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: cd87a5b72b67d27b21f765fac822ea69f9496019 --- src/Nerve_GIC/doc/Intro_graph_induced_complex.h | 96 ++++++++++++------------ src/Nerve_GIC/doc/coordGICvisu.pdf | Bin 0 -> 20745 bytes src/Nerve_GIC/doc/coordGICvisu2.jpg | Bin 0 -> 1259868 bytes src/Nerve_GIC/doc/funcGICvisu.jpg | Bin 0 -> 71647 bytes src/Nerve_GIC/doc/mapperdeltacoordvisu.pdf | Bin 20745 -> 0 bytes src/Nerve_GIC/doc/mapperdeltacoordvisu2.jpg | Bin 1259868 -> 0 bytes src/Nerve_GIC/doc/mapperdeltafuncvisu.jpg | Bin 71647 -> 0 bytes 7 files changed, 49 insertions(+), 47 deletions(-) create mode 100644 src/Nerve_GIC/doc/coordGICvisu.pdf create mode 100644 src/Nerve_GIC/doc/coordGICvisu2.jpg create mode 100644 src/Nerve_GIC/doc/funcGICvisu.jpg delete mode 100644 src/Nerve_GIC/doc/mapperdeltacoordvisu.pdf delete mode 100644 src/Nerve_GIC/doc/mapperdeltacoordvisu2.jpg delete mode 100644 src/Nerve_GIC/doc/mapperdeltafuncvisu.jpg (limited to 'src/Nerve_GIC/doc') diff --git a/src/Nerve_GIC/doc/Intro_graph_induced_complex.h b/src/Nerve_GIC/doc/Intro_graph_induced_complex.h index 89b7a1b4..339c1284 100644 --- a/src/Nerve_GIC/doc/Intro_graph_induced_complex.h +++ b/src/Nerve_GIC/doc/Intro_graph_induced_complex.h @@ -34,9 +34,10 @@ namespace graph_induced_complex { * @{ * * Visualizations of the simplicial complexes can be done with either - * neato (from graphviz ), - * geomview , or - * python + firefox . + * neato (from graphviz), + * geomview, + * KeplerMapper. + * Input point clouds are assumed to be OFF files. * * \section covers Covers * @@ -75,20 +76,15 @@ namespace graph_induced_complex { * * \include Nerve_GIC/Nerve.txt * - * The program also writes a file SC.txt. - * The first three lines in this file are requirements for visualization with Kepler-Mapper. + * The program also writes a file SC.txt. The first three lines in this file are the location of the input point cloud and the function used to compute the cover. * The fourth line contains the number of vertices nv and edges ne of the Nerve. * The next nv lines represent the vertices. Each line contains the vertex ID, * the number of data points it contains, and their average color function value. * Finally, the next ne lines represent the edges, characterized by the ID of their vertices. - * Using e.g. * - * \code $> python KeplerMapperVisuFromTxtFile.py && firefox SC.html - * \endcode - * - * one can obtain the following visualization: + * Using KeplerMapper, one can obtain the following visualization: * - * \image html "nervevisu.jpg" "Visualization with Kepler Mapper" + * \image html "nervevisu.jpg" "Visualization with KeplerMapper" * * \section gic Graph Induced Complexes (GIC) * @@ -98,31 +94,10 @@ namespace graph_induced_complex { * you are also given a graph G built on top of P. Then, for any clique in G * whose nodes all belong to different elements of C, the GIC includes a corresponding * simplex, whose dimension is the number of nodes in the clique minus one. - * See this article - * for more details. + * See \cite Dey13 for more details. * * \image html "GIC.jpg" "GIC of a point cloud." * - * \subsection gicexample Example with cover from function - * - * This example builds the GIC of a point cloud sampled on a 3D human shape (human.off). - * The cover C comes from the preimages of intervals (with length 0.075 and gain 0) - * covering the height function (coordinate 2), - * and the graph G comes from a Rips complex built with threshold 0.075. - * Note that if the gain is too big, the number of cliques increases a lot, - * which make the computation time much larger. - * - * \include Nerve_GIC/GIC.cpp - * - * When launching: - * - * \code $> ./GIC ../../../../data/points/human.off 0.075 2 0.075 0 --v - * \endcode - * - * the program outputs SC.txt, which can be visualized with python and firefox as before: - * - * \image html "gicvisu.jpg" "Visualization with Kepler Mapper" - * * \subsection gicexamplevor Example with cover from Voronoï * * This example builds the GIC of a point cloud sampled on a 3D human shape (human.off). @@ -132,11 +107,11 @@ namespace graph_induced_complex { * comes from the triangulation of the human shape. Note that the resulting simplicial complex is in dimension 3 * in this example. * - * \include Nerve_GIC/GICvoronoi.cpp + * \include Nerve_GIC/VoronoiGIC.cpp * * When launching: * - * \code $> ./GICvoronoi ../../../../data/points/human.off 700 --v + * \code $> ./VoronoiGIC ../../../../data/points/human.off 700 --v * \endcode * * the program outputs SC.off. Using e.g. @@ -148,29 +123,28 @@ namespace graph_induced_complex { * * \image html "gicvoronoivisu.jpg" "Visualization with Geomview" * - * \subsection mapperdeltadefinition Mapper Delta + * \subsection functionalGICdefinition Functional GIC * * If one restricts to the cliques in G whose nodes all belong to preimages of consecutive * intervals (assuming the cover of the height function is minimal, i.e. no more than * two intervals can intersect at a time), the GIC is of dimension one, i.e. a graph. - * We call this graph the Mapper Delta, since it is related to the usual Mapper. See - * this article for more details. + * We call this graph the functional GIC. See \cite Carriere16 for more details. * - * \subsection mapperdeltaexample Example + * \subsection functionalGICexample Example * - * Mapper Delta comes with optimal selection for the Rips threshold, + * Functional GIC comes with optimal selection for the Rips threshold, * the resolution and the gain of the function cover. In this example, - * we compute the Mapper Delta of a Klein bottle embedded in R^5, + * we compute the functional GIC of a Klein bottle embedded in R^5, * where the graph G comes from a Rips complex with optimal threshold, * and the cover C comes from the preimages of intervals covering the first coordinate, * with optimal resolution and gain. Note that optimal threshold, resolution and gain * can be computed as well for the Nerve. * - * \include Nerve_GIC/MapperDeltaCoord.cpp + * \include Nerve_GIC/CoordGIC.cpp * * When launching: * - * \code $> ./MapperDeltaCoord ../../../../data/points/KleinBottle5D.off 0 --v + * \code $> ./CoordGIC ../../../../data/points/KleinBottle5D.off 0 --v * \endcode * * the program outputs SC.dot. Using e.g. @@ -180,7 +154,7 @@ namespace graph_induced_complex { * * one can obtain the following visualization: * - * \image html "mapperdeltacoordvisu2.jpg" "Visualization with Neato" + * \image html "coordGICvisu2.jpg" "Visualization with Neato" * * where nodes are colored by the filter function values and, for each node, the first number is its ID * and the second is the number of data points that its contain. @@ -189,16 +163,16 @@ namespace graph_induced_complex { * The function is now the first eigenfunction given by PCA, whose values * are written in a file (lucky_cat_PCA1). Threshold, resolution and gain are automatically selected as before. * - * \include Nerve_GIC/MapperDeltaFunc.cpp + * \include Nerve_GIC/FuncGIC.cpp * * When launching: * - * \code $> ./MapperDeltaFunc ../../../../data/points/COIL_database/lucky_cat.off ../../../../data/points/COIL_database/lucky_cat_PCA1 --v + * \code $> ./FuncGIC ../../../../data/points/COIL_database/lucky_cat.off ../../../../data/points/COIL_database/lucky_cat_PCA1 --v * \endcode * * the program outputs again SC.dot which gives the following visualization after using neato: * - * \image html "mapperdeltafuncvisu.jpg" "Visualization with Neato" + * \image html "funcGICvisu.jpg" "Visualization with neato" * * \copyright GNU General Public License v3. * \verbatim Contact: gudhi-users@lists.gforge.inria.fr \endverbatim @@ -210,3 +184,31 @@ namespace graph_induced_complex { } // namespace Gudhi #endif // DOC_GRAPH_INDUCED_COMPLEX_INTRO_GRAPH_INDUCED_COMPLEX_H_ + + +/* * \subsection gicexample Example with cover from function + * + * This example builds the GIC of a point cloud sampled on a 3D human shape (human.off). + * The cover C comes from the preimages of intervals (with length 0.075 and gain 0) + * covering the height function (coordinate 2), + * and the graph G comes from a Rips complex built with threshold 0.075. + * Note that if the gain is too big, the number of cliques increases a lot, + * which make the computation time much larger. + * + * \include Nerve_GIC/GIC.cpp + * + * When launching: + * + * \code $> ./GIC ../../../../data/points/human.off 0.075 2 0.075 0 --v + * \endcode + * + * the program outputs SC.txt, which can be visualized with python and firefox as before: + * + * \image html "gicvisu.jpg" "Visualization with KeplerMapper" + * */ + + +/* * Using e.g. + * + * \code $> python KeplerMapperVisuFromTxtFile.py && firefox SC.html + * \endcode */ diff --git a/src/Nerve_GIC/doc/coordGICvisu.pdf b/src/Nerve_GIC/doc/coordGICvisu.pdf new file mode 100644 index 00000000..313aa1b5 Binary files /dev/null and b/src/Nerve_GIC/doc/coordGICvisu.pdf differ diff --git a/src/Nerve_GIC/doc/coordGICvisu2.jpg b/src/Nerve_GIC/doc/coordGICvisu2.jpg new file mode 100644 index 00000000..046feb2a Binary files /dev/null and b/src/Nerve_GIC/doc/coordGICvisu2.jpg differ diff --git a/src/Nerve_GIC/doc/funcGICvisu.jpg b/src/Nerve_GIC/doc/funcGICvisu.jpg new file mode 100644 index 00000000..f3da45ac Binary files /dev/null and b/src/Nerve_GIC/doc/funcGICvisu.jpg differ diff --git a/src/Nerve_GIC/doc/mapperdeltacoordvisu.pdf b/src/Nerve_GIC/doc/mapperdeltacoordvisu.pdf deleted file mode 100644 index 313aa1b5..00000000 Binary files a/src/Nerve_GIC/doc/mapperdeltacoordvisu.pdf and /dev/null differ diff --git a/src/Nerve_GIC/doc/mapperdeltacoordvisu2.jpg b/src/Nerve_GIC/doc/mapperdeltacoordvisu2.jpg deleted file mode 100644 index 046feb2a..00000000 Binary files a/src/Nerve_GIC/doc/mapperdeltacoordvisu2.jpg and /dev/null differ diff --git a/src/Nerve_GIC/doc/mapperdeltafuncvisu.jpg b/src/Nerve_GIC/doc/mapperdeltafuncvisu.jpg deleted file mode 100644 index f3da45ac..00000000 Binary files a/src/Nerve_GIC/doc/mapperdeltafuncvisu.jpg and /dev/null differ -- cgit v1.2.3