The implementation is described in "TopoSZ: Preserving Topology in Error-Bounded Lossy Compression".
- CMake
- Zstandard
- The Topology ToolKit (TTK) with Python bindings
TopoSZ has both Python and C++ components. The main executable is TopoSZ.py. In order to run TopoSZ, you will first need to build the C++ component. You can do this by running:
python3 TopoSZ.py -build
When building TopoSZ, you will be asked to provide an absolute file path to libzstd.so.
Once the C++ component is built, you can run TopoSZ using python3 TopoSZ.py. You can see the arguments required
by using python3 TopoSZ.py -h.
Note that TopoSZ is currently designed for running experiments, and does not work as a standalone compressor. Each time that
it is run, it will both compress and decompress that file specified by the user and report the results. You can write the results
of a compression experiment to a csv file by using the -csv flag. If the CSV file already exists, the results will be
appended to the end.
- Code comments are still in progress.
- Tested on Ubuntu 24.04.3 LTS with Python 3.12.3, cmake 3.28.3, Zstandard 1.5.8, and TTK 1.3.0