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.1.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.1-cp314-cp314-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.14Windows x86-64

pivtools-0.5.1-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.1-cp314-cp314-macosx_15_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

pivtools-0.5.1-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.1-cp313-cp313-macosx_15_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pivtools-0.5.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: pivtools-0.5.1.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.1.tar.gz
Algorithm Hash digest
SHA256 2392593d26892ff2dc6e78a9edac60b5410d22eb29776151893e533263643a59
MD5 e0d65d614b773c9d2ecf4bf477c54ac0
BLAKE2b-256 e8ef6a0634eb70689cb1d86e6360f397eea7b29777ad455b8084935324781e57

See more details on using hashes here.

File details

Details for the file pivtools-0.5.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pivtools-0.5.1-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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a18eab97e70aac993ef1d26c5fa2ece5e3d23a9bc09a2281da4e1f92b1c12d75
MD5 1d1ee22f0e8688acdf3bde9ae02de418
BLAKE2b-256 1b9df8b3ddb28d819cfeb7968816241c0f6a29bd36a1e15e58b9fb42889d93e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pivtools-0.5.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fd20c9a18f5248a492694fc60c74b4c4f9b2b8d7274e4d5eca804d74072cf15c
MD5 c53aad4ba56d6651b64e563bc7f3cbec
BLAKE2b-256 c91d89923fd17bce2247ad5dd4afe522a6a3dcb1501f76dd64ef76c6329ec60d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pivtools-0.5.1-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 3cbc48184ff4b4d8f7d2418d845efee39c9d34ad5684558f15881c0e34686518
MD5 b3831aec59b74b3c5d5b04eeac2ece1b
BLAKE2b-256 986e519bb8730078b5de03f3bbafedc6d6e08fcc835e7bdf74ab69f76c9a5bf4

See more details on using hashes here.

File details

Details for the file pivtools-0.5.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pivtools-0.5.1-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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c2f187acd0090d7a7719493fe3baed7b32b6bf907141028538b0437545859584
MD5 551cf2b78e4e7650642f5c1c9792098a
BLAKE2b-256 a43850abc2f0e80882fb3a19e9a4439a65c935c0e7c0e54ee69ddaa96f46c4fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pivtools-0.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 de4fff142c784230bc41ac2ef31958e86d153bb1f8012c438da6744d42e5577b
MD5 1340383bd69306b810bfeb9090a27b98
BLAKE2b-256 85dde0422c20268cad718e2d8a1d0d2af310d429155a42b4bc84cb433df24fde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pivtools-0.5.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 033c027f4a575a47f2f3bfff1305a19f7200a65179ac5df54971a7250519f362
MD5 a4538b37a9e251bc7c7431045ae9d1fb
BLAKE2b-256 b453649fd9c2d93f6a289d52e4a3be99bad1f139383973e58a2dc924448a28ce

See more details on using hashes here.

File details

Details for the file pivtools-0.5.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pivtools-0.5.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5d858dff67b4ed52aa0b741c9503f2c71a28a6d328f7fc2928bcc425cdbe4df4
MD5 b47232ad9827c7df35981a5706ad802a
BLAKE2b-256 6d974f6dae5efa310c630e141255e77256b384ca6344d3dd4d2fe4a1c3f70464

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pivtools-0.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9b48d08139381cb10f988e8b25cbc56fa7de70b18e94b5baa98118c0d351dd1d
MD5 9b7f846b9f4be43765b91d3258816fae
BLAKE2b-256 629d8920fd027860333f7a59e938d18f4aaf96d0e5d8826cdfd13659d1f41667

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pivtools-0.5.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 eee3cc4c309a77defb3570f1db34589f57c69e2d7884d9d60b57454d265bd9fd
MD5 550b8d8e10d0efdda51e6f75a55b6c24
BLAKE2b-256 7ce56fa779967ff7e60f411e57f4fe71ea6be3544669e5021023c74f45f1edc5

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