FTK is a library that scales, simplifies, and delivers feature tracking algorithms for scientific datasets. You may use FTK as ParaView plugins, Python bindings, or a command-line interface. See arXiv:2011.08697 for more details on our feature tracking algorithms.
See documentation for more details.
Installation
To install FTK, use spack install ftk, pip install pyftk, or build from source; see this page for more details on dependencies, compilation, and installation.
For Windows users only: this code has been developed and tested using MacOS and Linux environments; we have not tried porting functionalities to Windows. Windows users may use a Linux virtual machine to compile and use FTK; the use of WSL2 has not been tested yet. Stay tuned.
FTK command line interface
FTK provides one single executable ftk. See this page for mor details on the usage of FTK command line interface.
FTK for ParaView
Building ParaView plugins
FTK provides ParaView plugins to allow users track critical points (maxima, minima, and saddles) in scalar field data. In order to build the plugins, we recommend to build and use (ParaView version 5.8.0 and higher required)
$ git clone https://github.com/hguo/ftk $FTK_SOURCE_DIR $ mkdir $FTK_SOURCE_DIR/build && cd $FTK_SOURCE_DIR/build $ cmake .. -DFTK_BUILD_PARAVIEW=ON -DParaView_DIR=$YOUR_ParaView_Build $ make
If built successfully, you will see the plugins binary as lib/paraview-5.8/plugins/FTK/FTK.so. Open the "Plugin Manager" in ParaView, and load this binary with "Load New..." button, and then select and load FTK in the list. To check if ParaView plugins are correctly built by reproducing the results in the above figure, use "Sources-->FTK-->SpiralWoven2DSource", "Filters-->FTK-->CriticalPointTracker2D",followed by the "Tube" filter in ParaView.
Using ParaView plugins
We demonstrate the use the 2D critical point tracking filter (vtkCriticalPoint2DTracker) with a dataset. The input of this filter must be a 3D volumetric data that stacks 2D time-varying scalar fields in the Z direction. In this demo, we first add a synthetic 3D volume data by using Sources / FTK / Spiral2DSource. We then track the trajectories of 2D critical points with Filters / FTK / CriticalPoint2DTracker. The output trajectires can be visualized as tubes and color-coded by their types, scalar values, or IDs. In this demo, the time-varying scalar field is defined in closed form: