PIVTOOLs - Particle Image Velocimetry Tools with CLI and GUI
Project description
PIVtools
An open-source Python framework for particle image velocimetry (PIV) analysis, integrating planar, stereoscopic, and ensemble PIV pipelines with a React-based GUI and Dask-backed distributed processing.
PIVtools provides an end-to-end workflow: image loading, preprocessing, calibration, correlation, and visualisation driven from a single configuration file. Computationally intensive routines are implemented in C and parallelised with OpenMP and Dask, scaling from workstations to HPC clusters. Validation against synthetic channel flow at Re_τ = 1000 reproduces DNS mean velocity profiles to within 1% down to y⁺ ≈ 10 with instantaneous PIV, and y⁺ ≈ 1 with ensemble PIV.
Features
- Planar, stereoscopic, and ensemble PIV pipelines
- Direct Reynolds stress extraction from ensemble correlation maps
- React-based GUI for interactive analysis
- Optimised C extensions parallelised with OpenMP and Dask
- Scales from local workstations to HPC clusters
- Complete pipeline from raw image import to vector field visualisation
Installation
pip install pivtools
This installs the complete toolkit including:
- Core utilities for image handling and vector processing
- Command-line interface (
pivtools-cli) for automated workflows - React-based GUI (
pivtools-gui) for interactive analysis
Pre-compiled C extensions are included for Windows, macOS, and Linux.
Quick Start
Initialise a workspace
pivtools-cli init
Creates a default config.yaml in the current directory.
Run PIV analysis (command-line)
pivtools-cli run
Runs the PIV pipeline using config.yaml in the current directory.
Launch the GUI
pivtools-gui
Starts the React-based GUI for interactive configuration and execution.
Configuration
Both pivtools-cli and pivtools-gui use config.yaml in the current working directory. On first launch, a default config.yaml is copied from the package if none exists.
For detailed configuration options, see piv.tools/manual.
Reproducing the paper
Validation data, benchmark scripts, synthetic image generator configs, calibration images, and pre-computed figures are deposited in the University of Southampton Pure repository:
DOI: [pending]
This includes everything needed to reproduce the figures in the accompanying SoftwareX paper, including ground-truth statistics, CSV data for independent replotting, and scripts for end-to-end regeneration from PIVtools output.
Requirements
- Python 3.12+
Citation
If you use PIVtools in your research, please cite:
Taylor, M. T., Lawson, J. M., & Ganapathisubramani, B. (2026). PIVtools: A comprehensive open source software for particle image velocimetry. SoftwareX. [DOI pending]
License
BSD 3-Clause License — see LICENSE for details.
Note: Pre-built binaries link against GPL-licensed libraries (FFTW3, GSL). Binary distributions must comply with GPL terms unless these dependencies are replaced with alternatively-licensed implementations. See the LICENSE and NOTICE files for complete details.
Contributing
Contributions are welcome. Please see the GitHub repository for issues and pull requests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pivtools-0.5.0.tar.gz.
File metadata
- Download URL: pivtools-0.5.0.tar.gz
- Upload date:
- Size: 6.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55a02ee0b065288d8395a35dbb5d7485baa31c9aea527f9429518cd3f5f447f8
|
|
| MD5 |
44cedb6d8cd3b17377cef108ed24a4d6
|
|
| BLAKE2b-256 |
eb3e4ac4ee593f4ad6eeeecddcbfcfe1b807bdaabd9ad4c8b8b2f4e1ee641eb6
|
File details
Details for the file pivtools-0.5.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4f94d8f944e18e5876226a253b6ebcd0683ed7166ca1ad25afb65abe663968b
|
|
| MD5 |
c0a56f903693fc2ad0c8bdc24e979b6d
|
|
| BLAKE2b-256 |
bd005780422e840f4e5a5300e613d84dce6731b00724b658f03e3451d77450fb
|
File details
Details for the file pivtools-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd525ab0a5a9ed335719f85022f663861f135ce8d0e32a3f5541ec74e6c5bc8b
|
|
| MD5 |
c2e64a615bfd1b3e738e8308d317a74d
|
|
| BLAKE2b-256 |
89b5659a0746f0aa4dcf28b5dcf7242a65ded1d995b70f9bcbb842793cbdcad1
|
File details
Details for the file pivtools-0.5.0-cp314-cp314-macosx_15_0_arm64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp314-cp314-macosx_15_0_arm64.whl
- Upload date:
- Size: 2.8 MB
- Tags: CPython 3.14, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fff7934412e7697ba7ec4d11d490b110194a24e9258aacc1721989ce866477a7
|
|
| MD5 |
ea38dd5f63ddc0562d17957a65b4415b
|
|
| BLAKE2b-256 |
3729ed7eb8fecaad612b072519cbcb2e4ccad578addc1ef524c4f6038a1e1293
|
File details
Details for the file pivtools-0.5.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6496f9525eb30c984cefb125ff3c350ca7aa37099efff8b47e9dc01705ec6199
|
|
| MD5 |
c23acf784db2905aa19e8f1ea54a2bf3
|
|
| BLAKE2b-256 |
d1c5afc122ec1a943a1fe7c9e411674d6cdbde50262648d9c4b16cd21951fb8f
|
File details
Details for the file pivtools-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14fba55cc4fb807410bf70a53a6805b96a1e3eca83827cd18d86158a9d5b0591
|
|
| MD5 |
5c4cb204f9c8096db3f7df7074d29767
|
|
| BLAKE2b-256 |
03e4e5782b7d78c9847ae00f6ab3b24fb9fcc34b396b5221755333371778a716
|
File details
Details for the file pivtools-0.5.0-cp313-cp313-macosx_15_0_arm64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp313-cp313-macosx_15_0_arm64.whl
- Upload date:
- Size: 2.8 MB
- Tags: CPython 3.13, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
847b422912cc41054edabe2b79311b80beea0a0f1b42961e0f5cc05d1cde040c
|
|
| MD5 |
7e4746ba652e5fa540396620f6318d38
|
|
| BLAKE2b-256 |
8c91e7ae54db2c08efb3c22b8a6a5cf2c6de1e3700123a73e115f0ffa7b27204
|
File details
Details for the file pivtools-0.5.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93d9d69e1d016d5516db425b225097305d767324350c904a2ac51646e1c6ea4b
|
|
| MD5 |
962bf43be1f0db2327c216109ae80901
|
|
| BLAKE2b-256 |
c7c80bd4a84834b744403adc3e6937d31042dfaf6600f6d2389a3260a02a899d
|
File details
Details for the file pivtools-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
942d859795082894b2c93e56fbacbfe541938c3c2b4c795c35e4feb642a56c41
|
|
| MD5 |
e90feb738ce90cb4b4999b2543b78617
|
|
| BLAKE2b-256 |
633163e3b679d3daf42e45bb76f32765377e7ef2eea689c76ecc8e4eed869ca4
|
File details
Details for the file pivtools-0.5.0-cp312-cp312-macosx_15_0_arm64.whl.
File metadata
- Download URL: pivtools-0.5.0-cp312-cp312-macosx_15_0_arm64.whl
- Upload date:
- Size: 2.8 MB
- Tags: CPython 3.12, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f37b2eeed447313fd2962479c198875a6ec4150f6c459be036ddfa4041feb44
|
|
| MD5 |
9549fc831acb2a573cf3d6fcf36e3762
|
|
| BLAKE2b-256 |
152164d1b2d8f5dc9107b59069cff4d1391a5e5885dd398a1e1a44651454c8ba
|