Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

piv2hdf

Tool for the conversion of PIV measurements into HDF5 files

Tests codecov pyvers

Installation

pip install git+https://github.com/matthiasprobst/piv2hdf

or for development:

pip install -e git+https://github.com/matthiasprobst/piv2hdf

The conversion of davis files requires the package lvpyio. This can be installed by running:

pip install git+https://github.com/matthiasprobst/piv2hdf[davis]

Note, that Davis files cannot be converted on MacOS!

TL;DR

Examples are provided as Jupyter Notebooks in the examples/ directory:

Introduction and Documentation

This package provides a simple interface to convert PIV data into HDF5 files. It is designed to be easily extendable for other PIV software. Currently, the following software is supported:

Workflow: You have processed your PIV images with one of the above software. Then you use piv2hdf to convert the result files into a single HDF5 file.

This file can then be used for further processing, sharing or archiving.

Click on the above links to jump to the individual README-files of the respective software, which give additional information, remarks and example codes.

Nomenclature:

Depending on the provided data, we distinguish between three PIV data cases, which all can be written into a single : HDF5 file:

  • Snapshot: A single PIV result (of an image pair)
  • Plane: A list of multiple snapshots, i.e. a PIV result for a time series at one z-coordinate
  • MultiPlane: A list of planes, i.e. the flow was traversed and the operation condition and PIV settings kept constant

Note, that in order to write a multiple planes into a single HDF file, the planes must have the grid and the time vectors must identical or similar within a given tolerance. This is checked automatically.

Examples

Say, your PIV files are located in "data/". The files are result files created by your favorite PIV-software. Say, they were generated by the commercial software PIVview. Then the file format is .nc. For this case, the following lines will convert those files into a single very handy HDF5 file:

from piv2hdf import PIVPlane
from piv2hdf.pivview import PIVViewStereoNcFile
from datetime import datetime

# time info can be either a list of datetime objects corresponding 
# to the files or 
# the start datetime and the recording frequency in Hz can be provided:
time_info = (datetime(2023, 11, 6, 12, 13, 4), 4000)

plane_data_dir = 'data'
plane = PIVPlane.from_plane(plane_directory=plane_data_dir,
                            time_info=time_info,
                            pivfile=PIVViewStereoNcFile)
plane.to_hdf()

The class PIVPlane is the interface class for PIV plane data. You have to provide the implemented PIV software class, in this case PIVViewStereoNcFile. Also, the time vector or the recording frequency must be provided (recording_time_or_frequency).

The module pivview provides the class PIVViewNcFile and PIVViewStereoNcFile which allows working with nc files either containing 2D2C or 3D3C (stereo) data.

Note: Single files (so-called snapshot files) can be converted using piv2hdf.PIVSnapshot. Multiple planes can be converted into a single HDF file by using piv2hdf.PIVMultiPlane.

Note: Currently, only the software PIVview (commercial), Davis (commercial) and OpenPIV (opensource) are supported.

Configuration

Configurations are associated with PIVSnaphsot, PIVPlane and PIVMultiPlane:

# Set the compression level to 9
plane.config['compression'] = 9

print(plane.config)

PIV Flags

Every software uses different flags. This package uses the following flags, which are taken from PIVview (PIVTec GmbH). For each software the flags must be converted which these flags:

Name Flag Description
INACTIVE 0 The data is not valid, e.g. because it is outside the interrogation area
ACTIVE 1 The data is unmodified
MASKED 2 The data is masked out
NORESULT 4 No result is available even after calculation
DISABLED 8 The data is disabled manually or by outlier detection
FILTERED 16 The data is modified through a filter operation
INTERPOLATED 32 The data is interpolated from neighboring data
REPLACED 64 The data is replaced by another correlation peak
MANUALEDIT 128 The data is manually modified

Troubleshooting

  • netCDF4-1.6.0 and pytest-7.1.3 don't work together! Raises bizarre error including "frozen_import..."
  • netCDF4-1.6.0 only works up to python 3.8 (info from 20.10.2022)

Metadata

Release files for piv2hdf 2.0.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for piv2hdf 2.0.0a1
File Size Uploaded
piv2hdf-2.0.0a1.tar.gz 58.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for piv2hdf 2.0.0a1
File Interpreter ABI Platform
piv2hdf-2.0.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 115.9 kB

Release files / piv2hdf-2.0.0a1.tar.gz

Download URL piv2hdf-2.0.0a1.tar.gz
Size 58.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3c31290ec26451e9faf35b1eeab4034d6a8facbd9681ceba76609b7352962296
BLAKE2b-256 checksum
How to use checksums
e7e058ba41586b20be317dcf46f6bf639bea799a3de9613fafe2b86d65b63b18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.0

Release files / piv2hdf-2.0.0a1-py3-none-any.whl

Download URL piv2hdf-2.0.0a1-py3-none-any.whl
Size 57.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44e3caf2971fdc63d782b13717fddf0e9e87b76c6b1ef3cb3ba4ec953a6b683b
BLAKE2b-256 checksum
How to use checksums
ff89916b1e2b9cbbc73dc77370a3e41f8b9c0c4a692f335649b5494eb542f381
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.0

Release history Release notifications | RSS feed

This release

2.0.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page