Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pivtools-0.5.0.tar.gz (6.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pivtools-0.5.0-cp314-cp314-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.14Windows x86-64

pivtools-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pivtools-0.5.0-cp314-cp314-macosx_15_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pivtools-0.5.0-cp313-cp313-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.13Windows x86-64

pivtools-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pivtools-0.5.0-cp313-cp313-macosx_15_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pivtools-0.5.0-cp312-cp312-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.12Windows x86-64

pivtools-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pivtools-0.5.0-cp312-cp312-macosx_15_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Hashes for pivtools-0.5.0.tar.gz
Algorithm Hash digest
SHA256 55a02ee0b065288d8395a35dbb5d7485baa31c9aea527f9429518cd3f5f447f8
MD5 44cedb6d8cd3b17377cef108ed24a4d6
BLAKE2b-256 eb3e4ac4ee593f4ad6eeeecddcbfcfe1b807bdaabd9ad4c8b8b2f4e1ee641eb6

See more details on using hashes here.

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

Hashes for pivtools-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c4f94d8f944e18e5876226a253b6ebcd0683ed7166ca1ad25afb65abe663968b
MD5 c0a56f903693fc2ad0c8bdc24e979b6d
BLAKE2b-256 bd005780422e840f4e5a5300e613d84dce6731b00724b658f03e3451d77450fb

See more details on using hashes here.

File details

Details for the file pivtools-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pivtools-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 dd525ab0a5a9ed335719f85022f663861f135ce8d0e32a3f5541ec74e6c5bc8b
MD5 c2e64a615bfd1b3e738e8308d317a74d
BLAKE2b-256 89b5659a0746f0aa4dcf28b5dcf7242a65ded1d995b70f9bcbb842793cbdcad1

See more details on using hashes here.

File details

Details for the file pivtools-0.5.0-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pivtools-0.5.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 fff7934412e7697ba7ec4d11d490b110194a24e9258aacc1721989ce866477a7
MD5 ea38dd5f63ddc0562d17957a65b4415b
BLAKE2b-256 3729ed7eb8fecaad612b072519cbcb2e4ccad578addc1ef524c4f6038a1e1293

See more details on using hashes here.

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

Hashes for pivtools-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6496f9525eb30c984cefb125ff3c350ca7aa37099efff8b47e9dc01705ec6199
MD5 c23acf784db2905aa19e8f1ea54a2bf3
BLAKE2b-256 d1c5afc122ec1a943a1fe7c9e411674d6cdbde50262648d9c4b16cd21951fb8f

See more details on using hashes here.

File details

Details for the file pivtools-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pivtools-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 14fba55cc4fb807410bf70a53a6805b96a1e3eca83827cd18d86158a9d5b0591
MD5 5c4cb204f9c8096db3f7df7074d29767
BLAKE2b-256 03e4e5782b7d78c9847ae00f6ab3b24fb9fcc34b396b5221755333371778a716

See more details on using hashes here.

File details

Details for the file pivtools-0.5.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pivtools-0.5.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 847b422912cc41054edabe2b79311b80beea0a0f1b42961e0f5cc05d1cde040c
MD5 7e4746ba652e5fa540396620f6318d38
BLAKE2b-256 8c91e7ae54db2c08efb3c22b8a6a5cf2c6de1e3700123a73e115f0ffa7b27204

See more details on using hashes here.

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

Hashes for pivtools-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 93d9d69e1d016d5516db425b225097305d767324350c904a2ac51646e1c6ea4b
MD5 962bf43be1f0db2327c216109ae80901
BLAKE2b-256 c7c80bd4a84834b744403adc3e6937d31042dfaf6600f6d2389a3260a02a899d

See more details on using hashes here.

File details

Details for the file pivtools-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pivtools-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 942d859795082894b2c93e56fbacbfe541938c3c2b4c795c35e4feb642a56c41
MD5 e90feb738ce90cb4b4999b2543b78617
BLAKE2b-256 633163e3b679d3daf42e45bb76f32765377e7ef2eea689c76ecc8e4eed869ca4

See more details on using hashes here.

File details

Details for the file pivtools-0.5.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pivtools-0.5.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2f37b2eeed447313fd2962479c198875a6ec4150f6c459be036ddfa4041feb44
MD5 9549fc831acb2a573cf3d6fcf36e3762
BLAKE2b-256 152164d1b2d8f5dc9107b59069cff4d1391a5e5885dd398a1e1a44651454c8ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page