Skip to content

Latest commit

 

History

History
87 lines (59 loc) · 5.79 KB

README.md

File metadata and controls

87 lines (59 loc) · 5.79 KB

Temporal Treemaps

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).

Setup

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 and git 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.

External Module

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.

Examples

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.

Tracking of Sub- or Superlevel Sets

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).

Git Repository

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].

Demographic data

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]

Other

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.

Cite

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,
}