This is an Inviwo implementation for conducting Percolation Analysis on randomly sampled or loaded scalar data, as described in our paper:
Wiebke Köpp*, Anke Friederici*, Marco Atzori, Ricardo Vinuesa, Philipp Schlatter & Tino Weinkauf, "Notes on Percolation Analysis of Sampled Scalar Fields" (TopoInVis 2019). (*Both authors contributed equally)
Percolation analysis has been implemented in Inviwo with the help of some Python scripts. The setup instructions for Inviwo are briefly summarized below and can also be found in the Inviwo Github Wiki.
Dependency | Windows (64 bit) | Linux | OSX |
---|---|---|---|
Git | .exe | sudo apt-get install git |
.dmg |
CMake >= 3.12 | .msi | sudo apt-get install cmake cmake-qt-gui |
.dmg |
Qt >= 5.12 | .exe1 | Qt 5 Install instructions2 | .dmg1 |
C++(17) | Visual Studio Website | sudo apt-get install build-essential |
XCode Website |
1 Select the version for the correct C++ compiler.
2 The given download path is outdated. Use a newer version number, e.g. 5.12.4.
- Install the dependencies above.
- Clone this repository and the Inviwo repository
- Run
git submodule sync --recursive
andgit submodule update --init --recursive
within both the local Inviwo copy and the Inviwo modules copy. - Generate project files using CMake:
- Set source and binary destination path.
- Set all Qt variables.
- Set MergeTreeMaps as an external module (see below).
- Open the resulting project in Visual Studio/XCode/Shell and build it.
The contents of this repository need to be integrated in Inviwo as an external module.
- Add the path to the modules folder of this repository (percAnalysis/modules) to IVW_EXTERNAL_MODULES in CMake.
- Select the module IVW_MODULE_PERCOLATION.
This will enable some other modules our module depends on as well.
Workspaces to recreate the visualizations from the paper are located under modules/percolation/data/workspaces and are additionally accessible through the Inviwo user interface under File → Example Workspaces → Percolation.
For some of our results, we make use of Python scripts for additional processing (e.g. iterating over parameter settings in the optimization or simplification, repeating the analysis for recording timings) is necessary. These can be found in modules/kxpython/data/scripts
Please cite our paper if you use this code in your own work:
@InProceedings{KoeppEtAl2021_NotesPercolationAnalysis,
author = {K{\"o}pp, Wiebke and Friederici, Anke and Atzori, Marco and Vinuesa, Ricardo and Schlatter, Philipp and Weinkauf, Tino},
booktitle = {Topological Methods in Data Analysis and Visualization VI},
date = {2021},
title = {Notes on Percolation Analysis of Sampled Scalar Fields},
booksubtitle = {Theory, Applications, and Software},
doi = {10.1007/978-3-030-83500-2_3},
editor = {Hotz, Ingrid and Masood, Talha Bin and Sadlo, Filip and Tierny, Julien},
eprint = {diva2:1660119},
eprinttype = {DiVA},
eventdate = {2019-06-17/2019-06-19},
eventtitle = {Topology-Based Methods in Visualization (TopoInVis)},
eventtitleaddon = {Software and Applications},
pages = {39--54},
publisher = {Springer International Publishing},
series = {Mathematics and Visualization},
url = {https://github.com/KTHVisualization/percAnalysis},
venue = {Norrköping, Sweden},
}