This is an Inviwo implementation of Temporal Treemaps for visualizing trees whose topology and data change over time, as described in our paper:
Wiebke Köpp, Tino Weinkauf, "Temporal Treemaps: Static Visualization of Evolving Trees" (IEEE VIS 2018).
Temporal Treemaps 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 and the Inviwo repository.
- This code in this repository was last tested with Inviwo version v0.9.11 which can be selected with
git checkout v0.9.11
- Run
git submodule sync --recursive
andgit submodule update --init --recursive
within the local Inviwo copy. - Generate project files using CMake:
- Set source and binary destination path.
- Set all Qt variables.
- Set TemporalTreeMaps 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_TEMPORALTREEMAPS.
This will enable some other modules our module depends on as well.
Some temporal trees and their respective raw data can be found under modules/temporaltreemaps/data/.
Workspaces to compute trees from raw data and to visualize them are located under modules/temporaltreemaps/data/workspaces and are additionally accessible through the Inviwo user interface under File → Example Workspaces → TemporalTreeMaps.
From a given time-varying scalar field, temporal trees are computed from tracking sub- or superlevel sets for selected iso values over time. The workspaces for this kind of data are:
- SimpleBubbles: Computation of the temporal tree and its visualization [Figures 4 and 6 in the paper].
- ViscousFingers: Visualization of the data set from the Nested Tracking Graphs paper3 [Figure 8 in the paper].
- Cylinder: Visualization of tracked sublevel sets for the vortex activity behind a square cylinder [Figure 9 in the paper].
3 Jonas Lukasczyk, Gunther Weber, Ross Maciejewski, Christoph Garth, and Heike Leitte, "Nested Tracking Graphs" (EuroVis 2017).
Extracting data from a Git repositories is done by checking out a given repository several times for a given time span and sampling type (e.g. every tag, every n'th commit). The workspaces for this kind of data are:
- TreeFromGitRepo: Temporal tree computation for a given repository.
- PythonRepo: Visualization of every 1000th commit of the CPython repository between August 1992 and March 2018 [Figure 14 in the paper].
A hierarchy for countries can be derived by grouping them into continents, regions and subregions. Any associated numerical data can be visualized. The workspaces for this kind of data are:
- WorldPopulation: Visualization of population estimates and projections from the World Population Prospects [Figure 12 in the paper]
- EuropePopulation: Visualization of the latest available data values from the UN Demographic Yearbooks between 1984 to 2018 (leading to values for 1975 to 2016) accounting for historical events such as the dissolution of the Soviet Union and Germany's reunification [Figure 13 in the paper]
Some simple examples such as full binary trees, temporal trees with a single merge or split and temporal trees for which no order that fulfills all constraints [Figure 5 in the paper] are included as well.
Please cite our paper if you use this code in your own work:
@article{koepp19a,
author = {Wiebke K\"{o}pp and Tino Weinkauf},
title = {Temporal Treemaps: Static Visualization of Evolving Trees},
journal = {IEEE Transactions on Visualization and Computer Graphics (Proc. IEEE VIS)},
year = {2019},
volume = {25},
number = {1},
month = jan,
}