A CLI application for Large Scale Particle Image Velocimetry (LSPIV).
Project description
RIVeR: Rectification of Image Velocity Results
RIVeR (Rectification of Image Velocity Results) is a modern, open-source toolkit for Large Scale Particle Image Velocimetry (LSPIV). Built with Python and React, it provides a user-friendly interface for water-surface velocity analysis and flow discharge measurements in rivers and large-scale hydraulic models.
๐ง Overview
RIVeR is a specialized tool for applying Large Scale Particle Image Velocimetry (LSPIV) techniques as a non-contact method to estimate discharge in rivers and channels from video footage. The software guides the process through intuitive defaults and pre-configured settings, enabling users to generate discharge calculations without extensive prior knowledge of the technique. The workflow guides users through a series of straightforward steps culminating in comprehensive visual reports.
Originally developed in MATLAB in 2015 and well-received by the hydrology community, RIVeR has now been reimplemented in Python and JavaScript to improve accessibility, performance, and cross-platform compatibility.
โจ Key Features
-
Process footage from multiple sources:
- UAV/drone aerial imagery
- Oblique view camera (from riverbank)
- Fixed station cameras (contiunous monitoring)
-
Frame extraction from videos with customizable parameters
-
FFT-based PIV analysis with multi-pass support for increased accuracy
-
Interactive result visualization with customizable vector fields
-
Georeferencing and coordinate transformations
-
Multi Cross-sectional flow analysis
-
Automated beautiful report generation (like this one !)
-
Multi-platform support (Windows, macOS, Linux)
๐ Getting Started
Prerequisites
- Python 3.12+
- pip package manager
- Git (for cloning the repository)
CLI Installation
pip install river-cli
๐ Project Structure
river/
.
โโโ LICENSE
โโโ examples # Jupyter examples
โ โโโ 00_introduction.ipynb
โ โโโ 01_video_to_frames.ipynb
โ โโโ 02a_nadir_transformation.ipynb
โ โโโ 02b_oblique_transformation.ipynb
โ โโโ 02c_fixed_station_transformation.ipynb
โ โโโ 03_cross_sections.ipynb
โ โโโ 04_piv_analysis.ipynb
โ โโโ 05_discharge_calculation.ipynb
โ โโโ data
โ โโโ results
โ โโโ utils
โโโ gui
โโโ pyproject.toml
โโโ readme.md
โโโ requirements.txt
โโโ river
โโโ cli
โโโ core
โ โโโ compute_section.py # Section computation utilities
โ โโโ coordinate_transform.py # Coordinate system transformations
โ โโโ define_roi_masks.py # ROI and mask definitions
โ โโโ exceptions.py # Custom exceptions
โ โโโ image_preprocessing.py # Image preparation tools
โ โโโ matlab_smoothn.py # Smoothing algorithms
โ โโโ piv_fftmulti.py # FFT-based PIV processing
โ โโโ piv_loop.py # PIV processing loop
โ โโโ piv_pipeline.py # Main PIV pipeline
โ โโโ video_to_frames.py # Video frame extraction
โโโ docs
๐ Jupyter Examples
Browse through our collection of Jupyter Notebook examples to learn how to use RIVeR for various analyses:
- Introduction to RIVeR
- Video Frame Extraction
- UAV/Drone Transformations
- Oblique View Transformations
- Fixed Station Transformations
- Cross Section Analysis
- PIV Analysis Workflow
- Discharge Calculation
These interactive examples provide step-by-step guidance for common RIVeR workflows.
๐ฌ Citation
If you use RIVeR in your research, please cite:
@article{patalano2017river,
title={Rectification of Image Velocity Results (RIVeR): A simple and user-friendly toolbox
for large scale water surface Particle Image Velocimetry (PIV) and
Particle Tracking Velocimetry (PTV)},
author={Patalano, Antoine and Garcรญa, Carlos Marcelo and Rodrรญguez, Andrรฉs},
journal={Computers \& Geosciences},
volume={105},
pages={103--114},
year={2017},
publisher={Elsevier}
}
๐ฅ Authors
Core Team
- Antoine Patalano - Project Lead, Feature Development - [UNC/ORUS]
- Leandro Massรณ - Feature Development - [UNC/ORUS]
Development Team
- Nicolas Stefani - CLI & Backend Development
- Tomas Stefani - Frontend Development
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
๐ License
RIVeR is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
๐ญAcknowledgments
- Original MATLAB version (2017)
- UNC/ORUS research team
- Contributing organizations: UNC, ORUS, INA, CONICET
- PIVlab project: The pioneering PIV analysis tool that inspired aspects of RIVeR's development
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 Distribution
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 river_cli-3.0.0.tar.gz.
File metadata
- Download URL: river_cli-3.0.0.tar.gz
- Upload date:
- Size: 66.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d70e9a99ad4382646147c245592babc032bb5bc7bdcf816ffc13a312d2527bf1
|
|
| MD5 |
2a82af2cda288ec3863469eea64bde21
|
|
| BLAKE2b-256 |
1ffea7d7c554d9e690ff192d86eb4b832f0592ce272538cf65fba758287cca32
|
File details
Details for the file river_cli-3.0.0-py3-none-any.whl.
File metadata
- Download URL: river_cli-3.0.0-py3-none-any.whl
- Upload date:
- Size: 70.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc32bb5cbd5d20d9e510724bb73dde15f735f431805593b4868cf94070c07ffa
|
|
| MD5 |
f25764845a52ab7cf5316d8a792d3768
|
|
| BLAKE2b-256 |
158c25142af6cf4514290aeb703bffc4453a53c78b501f0b945791b7f38165e8
|