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.
- 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: Evaluates whether your data follows a normal distribution.
- Normalization: Scales data to a common range for further analysis or visualization.
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
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.
For further information and 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
- 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.
For any inquiries, please contact: