pivtools 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pivtools-0.1.2/MANIFEST.in +27 -0
- pivtools-0.1.2/PKG-INFO +222 -0
- pivtools-0.1.2/README.md +179 -0
- pivtools-0.1.2/config.yaml +135 -0
- pivtools-0.1.2/pivtools.egg-info/PKG-INFO +222 -0
- pivtools-0.1.2/pivtools.egg-info/SOURCES.txt +132 -0
- pivtools-0.1.2/pivtools.egg-info/dependency_links.txt +1 -0
- pivtools-0.1.2/pivtools.egg-info/entry_points.txt +3 -0
- pivtools-0.1.2/pivtools.egg-info/requires.txt +24 -0
- pivtools-0.1.2/pivtools.egg-info/top_level.txt +3 -0
- pivtools-0.1.2/pivtools_cli/__init__.py +5 -0
- pivtools-0.1.2/pivtools_cli/_build_marker.c +25 -0
- pivtools-0.1.2/pivtools_cli/cli.py +225 -0
- pivtools-0.1.2/pivtools_cli/example.py +139 -0
- pivtools-0.1.2/pivtools_cli/lib/PIV_2d_cross_correlate.c +334 -0
- pivtools-0.1.2/pivtools_cli/lib/PIV_2d_cross_correlate.h +22 -0
- pivtools-0.1.2/pivtools_cli/lib/common.h +36 -0
- pivtools-0.1.2/pivtools_cli/lib/interp2custom.c +146 -0
- pivtools-0.1.2/pivtools_cli/lib/interp2custom.h +48 -0
- pivtools-0.1.2/pivtools_cli/lib/peak_locate_gsl.c +711 -0
- pivtools-0.1.2/pivtools_cli/lib/peak_locate_gsl.h +40 -0
- pivtools-0.1.2/pivtools_cli/lib/peak_locate_gsl_print.c +736 -0
- pivtools-0.1.2/pivtools_cli/lib/peak_locate_lm.c +751 -0
- pivtools-0.1.2/pivtools_cli/lib/peak_locate_lm.h +27 -0
- pivtools-0.1.2/pivtools_cli/lib/xcorr.c +342 -0
- pivtools-0.1.2/pivtools_cli/lib/xcorr.h +31 -0
- pivtools-0.1.2/pivtools_cli/lib/xcorr_cache.c +78 -0
- pivtools-0.1.2/pivtools_cli/lib/xcorr_cache.h +26 -0
- pivtools-0.1.2/pivtools_cli/piv/interp2custom/interp2custom.py +69 -0
- pivtools-0.1.2/pivtools_cli/piv/piv.py +240 -0
- pivtools-0.1.2/pivtools_cli/piv/piv_backend/base.py +825 -0
- pivtools-0.1.2/pivtools_cli/piv/piv_backend/cpu_instantaneous.py +1005 -0
- pivtools-0.1.2/pivtools_cli/piv/piv_backend/factory.py +28 -0
- pivtools-0.1.2/pivtools_cli/piv/piv_backend/gpu_instantaneous.py +15 -0
- pivtools-0.1.2/pivtools_cli/piv/piv_backend/infilling.py +445 -0
- pivtools-0.1.2/pivtools_cli/piv/piv_backend/outlier_detection.py +306 -0
- pivtools-0.1.2/pivtools_cli/piv/piv_backend/profile_cpu_instantaneous.py +230 -0
- pivtools-0.1.2/pivtools_cli/piv/piv_result.py +40 -0
- pivtools-0.1.2/pivtools_cli/piv/save_results.py +342 -0
- pivtools-0.1.2/pivtools_cli/piv_cluster/cluster.py +108 -0
- pivtools-0.1.2/pivtools_cli/preprocessing/filters.py +399 -0
- pivtools-0.1.2/pivtools_cli/preprocessing/preprocess.py +79 -0
- pivtools-0.1.2/pivtools_cli/tests/helpers.py +107 -0
- pivtools-0.1.2/pivtools_cli/tests/instantaneous_piv/test_piv_integration.py +167 -0
- pivtools-0.1.2/pivtools_cli/tests/instantaneous_piv/test_piv_integration_multi.py +553 -0
- pivtools-0.1.2/pivtools_cli/tests/preprocessing/test_filters.py +41 -0
- pivtools-0.1.2/pivtools_core/__init__.py +5 -0
- pivtools-0.1.2/pivtools_core/config.py +674 -0
- pivtools-0.1.2/pivtools_core/image_handling/__init__.py +0 -0
- pivtools-0.1.2/pivtools_core/image_handling/load_images.py +464 -0
- pivtools-0.1.2/pivtools_core/image_handling/readers/__init__.py +53 -0
- pivtools-0.1.2/pivtools_core/image_handling/readers/generic_readers.py +50 -0
- pivtools-0.1.2/pivtools_core/image_handling/readers/lavision_reader.py +190 -0
- pivtools-0.1.2/pivtools_core/image_handling/readers/registry.py +24 -0
- pivtools-0.1.2/pivtools_core/paths.py +49 -0
- pivtools-0.1.2/pivtools_core/vector_loading.py +248 -0
- pivtools-0.1.2/pivtools_gui/__init__.py +3 -0
- pivtools-0.1.2/pivtools_gui/app.py +687 -0
- pivtools-0.1.2/pivtools_gui/calibration/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/calibration/app/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/calibration/app/views.py +1186 -0
- pivtools-0.1.2/pivtools_gui/calibration/calibration_planar/planar_calibration_production.py +570 -0
- pivtools-0.1.2/pivtools_gui/calibration/vector_calibration_production.py +544 -0
- pivtools-0.1.2/pivtools_gui/config.py +674 -0
- pivtools-0.1.2/pivtools_gui/image_handling/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/image_handling/load_images.py +464 -0
- pivtools-0.1.2/pivtools_gui/image_handling/readers/__init__.py +53 -0
- pivtools-0.1.2/pivtools_gui/image_handling/readers/generic_readers.py +50 -0
- pivtools-0.1.2/pivtools_gui/image_handling/readers/lavision_reader.py +190 -0
- pivtools-0.1.2/pivtools_gui/image_handling/readers/registry.py +24 -0
- pivtools-0.1.2/pivtools_gui/masking/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/masking/app/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/masking/app/views.py +123 -0
- pivtools-0.1.2/pivtools_gui/paths.py +49 -0
- pivtools-0.1.2/pivtools_gui/piv_runner.py +261 -0
- pivtools-0.1.2/pivtools_gui/pivtools.py +58 -0
- pivtools-0.1.2/pivtools_gui/plotting/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/plotting/app/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/plotting/app/views.py +1671 -0
- pivtools-0.1.2/pivtools_gui/plotting/plot_maker.py +220 -0
- pivtools-0.1.2/pivtools_gui/post_processing/POD/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/post_processing/POD/app/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/post_processing/POD/app/views.py +647 -0
- pivtools-0.1.2/pivtools_gui/post_processing/POD/pod_decompose.py +979 -0
- pivtools-0.1.2/pivtools_gui/post_processing/POD/views.py +1096 -0
- pivtools-0.1.2/pivtools_gui/post_processing/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/static/404.html +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/117-d5793c8e79de5511.js +2 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/484-cfa8b9348ce4f00e.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/869-320a6b9bdafbb6d3.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/app/_not-found/page-12f067ceb7415e55.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/app/layout-b907d5f31ac82e9d.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/app/page-334cc4e8444cde2f.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/fd9d1056-ad15f396ddf9b7e5.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/framework-f66176bb897dc684.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/main-a1b3ced4d5f6d998.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/main-app-8a63c6f5e7baee11.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/pages/_app-72b849fbd24ac258.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/pages/_error-7ba65e1336b92748.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/chunks/webpack-4a8ca7c99e9bb3d8.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/css/7d3f2337d7ea12a5.css +3 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/vQeR20OUdSSKlK4vukC4q/_buildManifest.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/_next/static/vQeR20OUdSSKlK4vukC4q/_ssgManifest.js +1 -0
- pivtools-0.1.2/pivtools_gui/static/file.svg +1 -0
- pivtools-0.1.2/pivtools_gui/static/globe.svg +1 -0
- pivtools-0.1.2/pivtools_gui/static/grid.svg +8 -0
- pivtools-0.1.2/pivtools_gui/static/index.html +1 -0
- pivtools-0.1.2/pivtools_gui/static/index.txt +8 -0
- pivtools-0.1.2/pivtools_gui/static/next.svg +1 -0
- pivtools-0.1.2/pivtools_gui/static/vercel.svg +1 -0
- pivtools-0.1.2/pivtools_gui/static/window.svg +1 -0
- pivtools-0.1.2/pivtools_gui/stereo_reconstruction/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/stereo_reconstruction/app/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/stereo_reconstruction/app/views.py +1985 -0
- pivtools-0.1.2/pivtools_gui/stereo_reconstruction/stereo_calibration_production.py +606 -0
- pivtools-0.1.2/pivtools_gui/stereo_reconstruction/stereo_reconstruction_production.py +544 -0
- pivtools-0.1.2/pivtools_gui/utils.py +63 -0
- pivtools-0.1.2/pivtools_gui/vector_loading.py +248 -0
- pivtools-0.1.2/pivtools_gui/vector_merging/__init__.py +1 -0
- pivtools-0.1.2/pivtools_gui/vector_merging/app/__init__.py +1 -0
- pivtools-0.1.2/pivtools_gui/vector_merging/app/views.py +759 -0
- pivtools-0.1.2/pivtools_gui/vector_statistics/app/__init__.py +1 -0
- pivtools-0.1.2/pivtools_gui/vector_statistics/app/views.py +710 -0
- pivtools-0.1.2/pivtools_gui/vector_statistics/ensemble_statistics.py +49 -0
- pivtools-0.1.2/pivtools_gui/vector_statistics/instantaneous_statistics.py +311 -0
- pivtools-0.1.2/pivtools_gui/video_maker/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/video_maker/app/__init__.py +0 -0
- pivtools-0.1.2/pivtools_gui/video_maker/app/views.py +436 -0
- pivtools-0.1.2/pivtools_gui/video_maker/video_maker.py +662 -0
- pivtools-0.1.2/pyproject.toml +74 -0
- pivtools-0.1.2/requirements.txt +24 -0
- pivtools-0.1.2/setup.cfg +4 -0
- pivtools-0.1.2/setup.py +195 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
include README.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
include requirements.txt
|
|
4
|
+
include config.yaml
|
|
5
|
+
|
|
6
|
+
# Include C library source files
|
|
7
|
+
recursive-include pivtools_cli/lib *.c *.h
|
|
8
|
+
|
|
9
|
+
# Include GUI static files and templates
|
|
10
|
+
recursive-include pivtools_gui/static *
|
|
11
|
+
recursive-include pivtools_gui/templates *
|
|
12
|
+
|
|
13
|
+
# Exclude unnecessary files
|
|
14
|
+
global-exclude __pycache__
|
|
15
|
+
global-exclude *.py[co]
|
|
16
|
+
global-exclude .DS_Store
|
|
17
|
+
global-exclude *.so
|
|
18
|
+
global-exclude *.dll
|
|
19
|
+
global-exclude *.dylib
|
|
20
|
+
|
|
21
|
+
# Exclude test and development files
|
|
22
|
+
prune tests
|
|
23
|
+
prune manual_tools
|
|
24
|
+
prune logs
|
|
25
|
+
prune env
|
|
26
|
+
prune .git
|
|
27
|
+
prune .github
|
pivtools-0.1.2/PKG-INFO
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pivtools
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: PIVTOOLs - Particle Image Velocimetry Tools with CLI and GUI
|
|
5
|
+
Author-email: Your Name <your.email@example.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/MTT69/python-PIVTOOLs
|
|
8
|
+
Project-URL: Repository, https://github.com/MTT69/python-PIVTOOLs
|
|
9
|
+
Project-URL: Issues, https://github.com/MTT69/python-PIVTOOLs/issues
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
18
|
+
Classifier: Framework :: Flask
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
Requires-Dist: dask[distributed]==2025.7.0
|
|
22
|
+
Requires-Dist: loguru==0.7.3
|
|
23
|
+
Requires-Dist: numpy==2.2.6
|
|
24
|
+
Requires-Dist: opencv-python==4.12.0.88
|
|
25
|
+
Requires-Dist: pandas==2.3.1
|
|
26
|
+
Requires-Dist: pillow==11.3.0
|
|
27
|
+
Requires-Dist: PyYAML==6.0.2
|
|
28
|
+
Requires-Dist: scipy==1.16.1
|
|
29
|
+
Requires-Dist: tifffile==2025.6.11
|
|
30
|
+
Requires-Dist: tqdm==4.67.1
|
|
31
|
+
Requires-Dist: numba==0.61.2
|
|
32
|
+
Requires-Dist: psutil==6.1.1
|
|
33
|
+
Requires-Dist: pytest==8.4.2
|
|
34
|
+
Requires-Dist: rawpy==0.25.1
|
|
35
|
+
Requires-Dist: scikit-image==0.25.2
|
|
36
|
+
Requires-Dist: lvpyio==1.3.1; sys_platform != "darwin"
|
|
37
|
+
Requires-Dist: bottleneck==1.6.0
|
|
38
|
+
Requires-Dist: scikit-learn==1.7.2
|
|
39
|
+
Requires-Dist: threadpoolctl==3.6.0
|
|
40
|
+
Requires-Dist: Flask==3.1.1
|
|
41
|
+
Requires-Dist: flask-cors==6.0.1
|
|
42
|
+
Requires-Dist: matplotlib==3.10.5
|
|
43
|
+
|
|
44
|
+
# PIVTOOLs
|
|
45
|
+
|
|
46
|
+
Particle Image Velocimetry Tools - A comprehensive toolkit for PIV analysis with both command-line and GUI interfaces.
|
|
47
|
+
|
|
48
|
+
## Installation
|
|
49
|
+
|
|
50
|
+
Install PIVTOOLs with a single command:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pip install pivtools
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This installs the complete toolkit including:
|
|
57
|
+
- **Core utilities** for image handling and vector processing
|
|
58
|
+
- **Command-line interface** (`pivtools-cli`) for automated workflows
|
|
59
|
+
- **Web-based GUI** (`pivtools-gui`) for interactive analysis
|
|
60
|
+
|
|
61
|
+
The package includes pre-compiled C extensions for optimal performance on Windows, macOS, and Linux.
|
|
62
|
+
|
|
63
|
+
## Quick Start
|
|
64
|
+
|
|
65
|
+
### Initialize a new PIVTOOLs workspace
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
pivtools-cli init
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
This creates a default `config.yaml` file in your current directory that you can edit to configure your PIV analysis.
|
|
72
|
+
|
|
73
|
+
### Run PIV analysis (command-line)
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pivtools-cli run
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
This runs the PIV analysis using the `config.yaml` in your current directory.
|
|
80
|
+
|
|
81
|
+
### Launch the GUI
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
pivtools-gui
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This starts the web-based GUI at http://localhost:5000 where you can interactively configure and run PIV analysis.
|
|
88
|
+
|
|
89
|
+
## Configuration
|
|
90
|
+
|
|
91
|
+
Edit the `config.yaml` file to configure:
|
|
92
|
+
|
|
93
|
+
- Input/output paths
|
|
94
|
+
- Image formats and processing parameters
|
|
95
|
+
- PIV algorithm settings
|
|
96
|
+
- Filtering and post-processing options
|
|
97
|
+
- Calibration parameters
|
|
98
|
+
|
|
99
|
+
See the example `config.yaml` for all available options.
|
|
100
|
+
|
|
101
|
+
## Requirements
|
|
102
|
+
|
|
103
|
+
- Python 3.8+
|
|
104
|
+
- FFTW library (automatically handled during installation)
|
|
105
|
+
- Camera calibration images (for accurate scaling)
|
|
106
|
+
|
|
107
|
+
## Development
|
|
108
|
+
|
|
109
|
+
For development installation with local C compilation:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Install FFTW first (platform-specific)
|
|
113
|
+
# Windows: vcpkg install fftw3[threads]:x64-windows-static
|
|
114
|
+
# macOS: brew install fftw gcc
|
|
115
|
+
# Linux: apt-get install libfftw3-dev
|
|
116
|
+
|
|
117
|
+
# Set environment variables
|
|
118
|
+
export FFTW_INC_PATH=/path/to/fftw/include
|
|
119
|
+
export FFTW_LIB_PATH=/path/to/fftw/lib
|
|
120
|
+
|
|
121
|
+
# Install in development mode
|
|
122
|
+
pip install -e .
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## License
|
|
126
|
+
|
|
127
|
+
MIT License
|
|
128
|
+
|
|
129
|
+
Particle Image Velocimetry Tools - A comprehensive toolkit for PIV analysis with both command-line and GUI interfaces.
|
|
130
|
+
|
|
131
|
+
## Installation
|
|
132
|
+
|
|
133
|
+
Install PIVTOOLs from PyPI:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
pip install PIVTOOLs
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
This will install the package with pre-compiled C extensions for your platform.
|
|
140
|
+
|
|
141
|
+
## Quick Start
|
|
142
|
+
|
|
143
|
+
### Initialize a new PIV workspace
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
pivtools-cli init
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
This creates a `config.yaml` file in your current directory with default settings.
|
|
150
|
+
|
|
151
|
+
### Run PIV analysis (command line)
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
pivtools-cli run
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Launch the GUI
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
pivtools-gui
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Then open http://localhost:5000 in your browser.
|
|
164
|
+
|
|
165
|
+
## Configuration
|
|
166
|
+
|
|
167
|
+
Edit the `config.yaml` file to configure:
|
|
168
|
+
|
|
169
|
+
- Input/output paths
|
|
170
|
+
- Image formats and processing parameters
|
|
171
|
+
- PIV algorithm settings
|
|
172
|
+
- Filtering and post-processing options
|
|
173
|
+
|
|
174
|
+
## Requirements
|
|
175
|
+
|
|
176
|
+
- Python 3.8+
|
|
177
|
+
- FFTW library (automatically handled during installation)
|
|
178
|
+
- See `requirements.txt` for full dependencies
|
|
179
|
+
|
|
180
|
+
## Development
|
|
181
|
+
|
|
182
|
+
For development installation:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
git clone https://github.com/MTT69/python-PIVTOOLs.git
|
|
186
|
+
cd python-PIVTOOLs
|
|
187
|
+
pip install -e .
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Building from Source
|
|
191
|
+
|
|
192
|
+
If building from source, ensure FFTW is installed:
|
|
193
|
+
|
|
194
|
+
### Linux (Ubuntu/Debian)
|
|
195
|
+
```bash
|
|
196
|
+
sudo apt-get install libfftw3-dev
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### macOS
|
|
200
|
+
```bash
|
|
201
|
+
brew install fftw
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Windows
|
|
205
|
+
Install FFTW via vcpkg:
|
|
206
|
+
```bash
|
|
207
|
+
vcpkg install fftw3[threads]:x64-windows-static
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Set environment variables:
|
|
211
|
+
```bash
|
|
212
|
+
set FFTW_INC_PATH=C:\path\to\fftw\include
|
|
213
|
+
set FFTW_LIB_PATH=C:\path\to\fftw\lib
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## License
|
|
217
|
+
|
|
218
|
+
MIT License
|
|
219
|
+
|
|
220
|
+
## Contributing
|
|
221
|
+
|
|
222
|
+
Contributions welcome! Please see the GitHub repository for issues and pull requests.
|
pivtools-0.1.2/README.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# PIVTOOLs
|
|
2
|
+
|
|
3
|
+
Particle Image Velocimetry Tools - A comprehensive toolkit for PIV analysis with both command-line and GUI interfaces.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Install PIVTOOLs with a single command:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install pivtools
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This installs the complete toolkit including:
|
|
14
|
+
- **Core utilities** for image handling and vector processing
|
|
15
|
+
- **Command-line interface** (`pivtools-cli`) for automated workflows
|
|
16
|
+
- **Web-based GUI** (`pivtools-gui`) for interactive analysis
|
|
17
|
+
|
|
18
|
+
The package includes pre-compiled C extensions for optimal performance on Windows, macOS, and Linux.
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
### Initialize a new PIVTOOLs workspace
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pivtools-cli init
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This creates a default `config.yaml` file in your current directory that you can edit to configure your PIV analysis.
|
|
29
|
+
|
|
30
|
+
### Run PIV analysis (command-line)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pivtools-cli run
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This runs the PIV analysis using the `config.yaml` in your current directory.
|
|
37
|
+
|
|
38
|
+
### Launch the GUI
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pivtools-gui
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
This starts the web-based GUI at http://localhost:5000 where you can interactively configure and run PIV analysis.
|
|
45
|
+
|
|
46
|
+
## Configuration
|
|
47
|
+
|
|
48
|
+
Edit the `config.yaml` file to configure:
|
|
49
|
+
|
|
50
|
+
- Input/output paths
|
|
51
|
+
- Image formats and processing parameters
|
|
52
|
+
- PIV algorithm settings
|
|
53
|
+
- Filtering and post-processing options
|
|
54
|
+
- Calibration parameters
|
|
55
|
+
|
|
56
|
+
See the example `config.yaml` for all available options.
|
|
57
|
+
|
|
58
|
+
## Requirements
|
|
59
|
+
|
|
60
|
+
- Python 3.8+
|
|
61
|
+
- FFTW library (automatically handled during installation)
|
|
62
|
+
- Camera calibration images (for accurate scaling)
|
|
63
|
+
|
|
64
|
+
## Development
|
|
65
|
+
|
|
66
|
+
For development installation with local C compilation:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Install FFTW first (platform-specific)
|
|
70
|
+
# Windows: vcpkg install fftw3[threads]:x64-windows-static
|
|
71
|
+
# macOS: brew install fftw gcc
|
|
72
|
+
# Linux: apt-get install libfftw3-dev
|
|
73
|
+
|
|
74
|
+
# Set environment variables
|
|
75
|
+
export FFTW_INC_PATH=/path/to/fftw/include
|
|
76
|
+
export FFTW_LIB_PATH=/path/to/fftw/lib
|
|
77
|
+
|
|
78
|
+
# Install in development mode
|
|
79
|
+
pip install -e .
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## License
|
|
83
|
+
|
|
84
|
+
MIT License
|
|
85
|
+
|
|
86
|
+
Particle Image Velocimetry Tools - A comprehensive toolkit for PIV analysis with both command-line and GUI interfaces.
|
|
87
|
+
|
|
88
|
+
## Installation
|
|
89
|
+
|
|
90
|
+
Install PIVTOOLs from PyPI:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
pip install PIVTOOLs
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
This will install the package with pre-compiled C extensions for your platform.
|
|
97
|
+
|
|
98
|
+
## Quick Start
|
|
99
|
+
|
|
100
|
+
### Initialize a new PIV workspace
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pivtools-cli init
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
This creates a `config.yaml` file in your current directory with default settings.
|
|
107
|
+
|
|
108
|
+
### Run PIV analysis (command line)
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
pivtools-cli run
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Launch the GUI
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
pivtools-gui
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Then open http://localhost:5000 in your browser.
|
|
121
|
+
|
|
122
|
+
## Configuration
|
|
123
|
+
|
|
124
|
+
Edit the `config.yaml` file to configure:
|
|
125
|
+
|
|
126
|
+
- Input/output paths
|
|
127
|
+
- Image formats and processing parameters
|
|
128
|
+
- PIV algorithm settings
|
|
129
|
+
- Filtering and post-processing options
|
|
130
|
+
|
|
131
|
+
## Requirements
|
|
132
|
+
|
|
133
|
+
- Python 3.8+
|
|
134
|
+
- FFTW library (automatically handled during installation)
|
|
135
|
+
- See `requirements.txt` for full dependencies
|
|
136
|
+
|
|
137
|
+
## Development
|
|
138
|
+
|
|
139
|
+
For development installation:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
git clone https://github.com/MTT69/python-PIVTOOLs.git
|
|
143
|
+
cd python-PIVTOOLs
|
|
144
|
+
pip install -e .
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Building from Source
|
|
148
|
+
|
|
149
|
+
If building from source, ensure FFTW is installed:
|
|
150
|
+
|
|
151
|
+
### Linux (Ubuntu/Debian)
|
|
152
|
+
```bash
|
|
153
|
+
sudo apt-get install libfftw3-dev
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### macOS
|
|
157
|
+
```bash
|
|
158
|
+
brew install fftw
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Windows
|
|
162
|
+
Install FFTW via vcpkg:
|
|
163
|
+
```bash
|
|
164
|
+
vcpkg install fftw3[threads]:x64-windows-static
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Set environment variables:
|
|
168
|
+
```bash
|
|
169
|
+
set FFTW_INC_PATH=C:\path\to\fftw\include
|
|
170
|
+
set FFTW_LIB_PATH=C:\path\to\fftw\lib
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## License
|
|
174
|
+
|
|
175
|
+
MIT License
|
|
176
|
+
|
|
177
|
+
## Contributing
|
|
178
|
+
|
|
179
|
+
Contributions welcome! Please see the GitHub repository for issues and pull requests.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
paths:
|
|
2
|
+
base_paths:
|
|
3
|
+
- C:\Users\mtt1e23\Downloads\calibrated_piv_morgan
|
|
4
|
+
source_paths:
|
|
5
|
+
- D:\DAVIS_BFS\gF_Ramp_experiment\BFS_1500_1
|
|
6
|
+
camera_numbers:
|
|
7
|
+
- 1
|
|
8
|
+
- 2
|
|
9
|
+
camera_count: 2
|
|
10
|
+
images:
|
|
11
|
+
num_images: 10
|
|
12
|
+
image_format:
|
|
13
|
+
- B%05d.im7
|
|
14
|
+
vector_format:
|
|
15
|
+
- '%05d.mat'
|
|
16
|
+
time_resolved: false
|
|
17
|
+
dtype: float32
|
|
18
|
+
batches:
|
|
19
|
+
size: 25
|
|
20
|
+
logging:
|
|
21
|
+
file: pypiv.log
|
|
22
|
+
level: INFO
|
|
23
|
+
console: true
|
|
24
|
+
processing:
|
|
25
|
+
instantaneous: true
|
|
26
|
+
ensemble: false
|
|
27
|
+
stereo: false
|
|
28
|
+
backend: cpu
|
|
29
|
+
debug: false
|
|
30
|
+
auto_compute_params: false
|
|
31
|
+
omp_threads: 4
|
|
32
|
+
dask_workers_per_node: 5
|
|
33
|
+
dask_threads_per_worker: 1
|
|
34
|
+
dask_memory_limit: 12GB
|
|
35
|
+
outlier_detection:
|
|
36
|
+
enabled: true
|
|
37
|
+
methods:
|
|
38
|
+
- threshold: 0.25
|
|
39
|
+
type: peak_mag
|
|
40
|
+
- epsilon: 0.2
|
|
41
|
+
threshold: 2
|
|
42
|
+
type: median_2d
|
|
43
|
+
infilling:
|
|
44
|
+
mid_pass:
|
|
45
|
+
method: biharmonic
|
|
46
|
+
parameters:
|
|
47
|
+
ksize: 3
|
|
48
|
+
final_pass:
|
|
49
|
+
enabled: true
|
|
50
|
+
method: biharmonic
|
|
51
|
+
parameters:
|
|
52
|
+
ksize: 3
|
|
53
|
+
plots:
|
|
54
|
+
save_extension: .png
|
|
55
|
+
save_pickle: true
|
|
56
|
+
fontsize: 14
|
|
57
|
+
title_fontsize: 16
|
|
58
|
+
videos:
|
|
59
|
+
- endpoint: ''
|
|
60
|
+
type: instantaneous
|
|
61
|
+
use_merged: false
|
|
62
|
+
variable: ux
|
|
63
|
+
video_length: 100
|
|
64
|
+
- endpoint: ''
|
|
65
|
+
type: gamma1
|
|
66
|
+
use_merged: false
|
|
67
|
+
variable: gamma1
|
|
68
|
+
video_length: 100
|
|
69
|
+
statistics_extraction: null
|
|
70
|
+
instantaneous_piv:
|
|
71
|
+
window_size:
|
|
72
|
+
- - 128
|
|
73
|
+
- 128
|
|
74
|
+
- - 64
|
|
75
|
+
- 64
|
|
76
|
+
- - 32
|
|
77
|
+
- 32
|
|
78
|
+
overlap:
|
|
79
|
+
- 50
|
|
80
|
+
- 50
|
|
81
|
+
- 50
|
|
82
|
+
runs:
|
|
83
|
+
- 3
|
|
84
|
+
time_resolved: false
|
|
85
|
+
window_type: gaussian
|
|
86
|
+
num_peaks: 1
|
|
87
|
+
peak_finder: gauss3
|
|
88
|
+
secondary_peak: false
|
|
89
|
+
calibration_format:
|
|
90
|
+
image_format: calib%05d.tif
|
|
91
|
+
calibration:
|
|
92
|
+
active: pinhole
|
|
93
|
+
scale_factor:
|
|
94
|
+
dt: 0.56
|
|
95
|
+
px_per_mm: 3.41
|
|
96
|
+
source_path_idx: 0
|
|
97
|
+
pinhole:
|
|
98
|
+
source_path_idx: 0
|
|
99
|
+
camera: 1
|
|
100
|
+
image_index: 0
|
|
101
|
+
file_pattern: calib%05d.tif
|
|
102
|
+
pattern_cols: 10
|
|
103
|
+
pattern_rows: 10
|
|
104
|
+
dot_spacing_mm: 28.89
|
|
105
|
+
enhance_dots: true
|
|
106
|
+
asymmetric: false
|
|
107
|
+
dot_distance_mm: 28.9
|
|
108
|
+
grid_tolerance: 0.5
|
|
109
|
+
ransac_threshold: 3
|
|
110
|
+
dt: 0.0275
|
|
111
|
+
stereo:
|
|
112
|
+
source_path_idx: 0
|
|
113
|
+
camera_pair:
|
|
114
|
+
- 1
|
|
115
|
+
- 2
|
|
116
|
+
file_pattern: planar_calibration_plate_*.tif
|
|
117
|
+
pattern_cols: 10
|
|
118
|
+
pattern_rows: 10
|
|
119
|
+
dot_spacing_mm: 28.89
|
|
120
|
+
enhance_dots: true
|
|
121
|
+
asymmetric: false
|
|
122
|
+
dt: 2
|
|
123
|
+
image_format: calib%05d.tiff
|
|
124
|
+
filters:
|
|
125
|
+
- type: pod
|
|
126
|
+
masking:
|
|
127
|
+
enabled: true
|
|
128
|
+
mask_file_pattern: mask_Cam%d.mat
|
|
129
|
+
mask_threshold: 0.01
|
|
130
|
+
mode: file
|
|
131
|
+
rectangular:
|
|
132
|
+
top: 64
|
|
133
|
+
bottom: 64
|
|
134
|
+
left: 0
|
|
135
|
+
right: 0
|