This is an Inviwo implementation of Temporal Treemaps for statically visualization scalar fields with a feature-based linearization based on augmented merge trees optimized towards temporal stability, as described in our paper:
Wiebke Köpp, Tino Weinkauf, "Temporal Merge Tree Maps:A Topology-Based Static Visualization for Temporal Scalar Data" (IEEE VIS 2022).
Temporal Merge Tree Maps have been implemented in Inviwo. 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, the Inviwo repository, the Inviwo modules 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 (TemporalTreeMaps/modules) to IVW_EXTERNAL_MODULES in CMake.
- Select the module IVW_MODULE_MERGETREEMAPS.
This will enable some other modules our module depends on as well.
Some of the input scalar fields can be found under modules/mergetreemaps/data/, sources for the other data sets are listed in the paper.
Workspaces to recreate the visualizations from the paper are located under modules/mergetreemaps/data/workspaces and are additionally accessible through the Inviwo user interface under File → Example Workspaces → MergeTreeMaps.
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/mergetreemaps/data/scripts
Please cite our paper if you use this code in your own work:
@article{KoeppWeinkauf2022_TMTM,
author = {Wiebke K\"{o}pp and Tino Weinkauf},
title = {Temporal Merge Tree Maps: A Topology-Based Static Visualization for Temporal Scalar Data},
journal = {IEEE Transactions on Visualization and Computer Graphics (Proc. IEEE VIS)},
year = {2022},
volume = {29},
number = {1},
month = jan,
doi = {10.1109/TVCG.2022.3209387},
}