ProADV - Process Acoustic Doppler Velocimeter
Streamline Your ADV Data Analysis
ProADV is a comprehensive Python package designed to empower researchers and engineers working with acoustic Doppler velocimeter (ADV) data. It offers a comprehensive suite of tools for efficient cleaning, analysis, and visualization of ADV data, streamlining your workflow and extracting valuable insights from your measurements.
Key Features
- Despiking and Denoising: ProADV tackles the challenge of spikes and noise in ADV data, providing a variety of robust algorithms for effective data cleaning.
- Spike Detection:
- ACC (Acceleration Thresholding): Identifies spikes based on exceeding a user-defined acceleration threshold.
- PST (Phase-Space Thresholding): Utilizes a combination of velocity and its temporal derivative to detect spikes.
- mPST (Modified Phase-Space Thresholding): An enhanced version of PST with improved sensitivity.
- VC (Velocity Correlation): Detects spikes based on deviations from the correlation between neighboring data points.
- KDE (Kernel Density Estimation): Employs a statistical approach to identify outliers based on the probability density function.
- 3d-KDE (Three-dimensional Kernel Density Estimation): Extends KDE to three dimensions for more robust spike detection in complex data.
- m3d-KDE (Modified Three-dimensional Kernel Density Estimation): Further refines 3d-KDE for enhanced performance.
- Replacement Methods: ProADV offers several options to replace detected spikes with more reliable values:
- LVD (Last Valid Data): Replaces spikes with the last valid data point before the spike.
- MV (Mean Value): Replaces spikes with the mean value of velocity component.
- LI (Linear Interpolation): Uses linear interpolation between surrounding points to estimate the missing value.
- 12PP (12 Points Cubic Polynomial): Employs a 12-point cubic polynomial to fit a smoother curve and replace spikes.
- Spike Detection:
-
Statistical Analysis: ProADV equips you with essential statistical tools to characterize your ADV data:
- Minimum, Maximum: Provides the range of measured velocities.
- Mean, Median, Mode: Calculates central tendency measures.
- Skewness, Kurtosis: Analyzes the distribution characteristics of your data.
-
Advanced Analysis: In addition to cleaning and basic statistics, ProADV offers advanced functionalities for deeper insights:
- Moving Average: Smooths out data fluctuations for better visualization and trend analysis. Provided in simple moving average, exponential moving average, and weighted moving average methods.
- SSA (Singular Spectrum Analysis): Extracts underlying patterns and trends from time series data.
- Kalman Filter: Implements the Kalman filter algorithm for state estimation and prediction in time series data.
- PR (Pollution Rate) Calculation: Estimates the level of noise or pollution within the data.
- Spectral Analysis:
- PSD (Power Spectral Density): Analyzes the distribution of energy across different frequencies within the data.
- PDF (Probability Density Function): Provides the probability of encountering specific velocity values.
- Normality Test: Evaluate whether your data follows a normal distribution.
- Normalization: Scales data to a common range for further analysis or visualization.
Installation
There are two convenient ways to install ProADV:
-
Using pip (recommended):
pip install proadv
-
From source code:
a. Clone the repository:
git clone https://github.com/farzadasgari/proadv.git
b. Navigate to the project directory:
cd proadv
c. Install using setup.py:
python setup.py install
Collaboration
We encourage collaboration and contributions from the community to improve ProADV. Here's how to contribute:
- Fork the repository on GitHub.
- Clone your forked repository to your local machine.
- Create a new branch for your changes.
- Make your changes and commit them with descriptive messages.
- Push your changes to your forked repository.
- Submit a pull request for review and merging.
Paper
See ProADV open access paper online:
ProADV: A toolkit for enhancing water dynamics research using acoustic doppler velocimeter devices
References
For further information and an in-depth understanding of the algorithms employed in ProADV, refer to the following resources:
- Exploring the role of signal pollution rate on the performance of despiking velocity time-series algorithms
- Unleashing the power of three-dimensional kernel density estimation for Doppler Velocimeter data despiking
Acknowledgment
- This project was developed under the supervision of Dr. Seyed Hossein Mohaeri and Dr. Mojtaba Mehraein.
- We extend our deepest gratitude to Dr. Bimlesh Kumar and Dr. Luis Cea for their invaluable guidance and unwavering support throughout our journey.
- Special thanks to Narges Yaghoubi, Hiva Yarandi, Mojtaba Karimi, Parvaneh Yaghoubi, Hossein Abazari, and Zahra Rezaei for their valuable contributions to this project.
Citation
If you use ProADV in your research, please cite:
Asgari, F., Mohajeri, S. H., & Mehraein, M. (2024). ProADV: A toolkit for enhancing water dynamics research using acoustic doppler velocimeter devices. SoftwareX, 27, 101868. https://doi.org/10.1016/j.softx.2024.101868
Contact
For any inquiries, please contact:
Links
Farzad Asgari
Seyed Hossein Mohajeri
Mojtaba Mehraein
Metadata
Release files for proadv 2.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| proadv-2.1.8.tar.gz | 47.5 kB | With provenance | Details for proadv-2.1.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| proadv-2.1.8-py3-none-any.whl | Python 3 | none | any | Details for proadv-2.1.8-py3-none-any.whl |
Total release size: 102.7 kB
Release files / proadv-2.1.8.tar.gz
| Download URL | proadv-2.1.8.tar.gz |
|---|---|
| Size | 47.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be143bee180d4dee4d08d9e437a4dfabfa6730d346d171f79ac22caa6fc6403e
|
|
BLAKE2b-256 checksum How to use checksums |
ce80d696eec1d5eb8b7bbf0b6ff5e6bf28cd904655b567fcaf50cf9be28e5b40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2026.
Transparency logRelease files / proadv-2.1.8-py3-none-any.whl
| Download URL | proadv-2.1.8-py3-none-any.whl |
|---|---|
| Size | 55.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0e23571ad753c391aec6045b6b77e92a52db1330f9ca1e19b35646c2edabc3d8
|
|
BLAKE2b-256 checksum How to use checksums |
693d3ac4ce4c90553a2636b8155d3ad891476b0adefd1ce392d04d130e602007
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2026.
Transparency logSecurity for proadv 2.1.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for proadv-2.1.8.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 16, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.