Skip to main content

Process Acoustic Doppler Velocimeter data with advanced despiking and analysis tools

Project description

ProADV - Process Acoustic Doppler Velocimeter

readmeimage

GitHub stars GitHub forks GitHub issues GitHub license PyPI version PyPI - Downloads GitHub contributors GitHub pull requests GitHub closed pull requests GitHub last commit DOI

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.
trivariate-kernel trivariate-kernel trivariate-kernel
  • 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.
singular-spectrum kalman-filter

Installation

There are two convenient ways to install ProADV:

  1. Using pip (recommended):

    pip install proadv
    
  2. 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:

  1. Fork the repository on GitHub.
  2. Clone your forked repository to your local machine.
  3. Create a new branch for your changes.
  4. Make your changes and commit them with descriptive messages.
  5. Push your changes to your forked repository.
  6. 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:

  1. Exploring the role of signal pollution rate on the performance of despiking velocity time-series algorithms
  2. Unleashing the power of three-dimensional kernel density estimation for Doppler Velocimeter data despiking

Acknowledgment

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

portfolio

Google Scholar Badge

ResearchGate Badge

linkedin

ORCID

Seyed Hossein Mohajeri

portfolio

Google Scholar Badge

ResearchGate Badge

linkedin

ORCID

Mojtaba Mehraein

portfolio

Google Scholar Badge

ResearchGate Badge

linkedin

ORCID

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proadv-2.1.7.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proadv-2.1.7-py3-none-any.whl (55.2 kB view details)

Uploaded Python 3

File details

Details for the file proadv-2.1.7.tar.gz.

File metadata

  • Download URL: proadv-2.1.7.tar.gz
  • Upload date:
  • Size: 47.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for proadv-2.1.7.tar.gz
Algorithm Hash digest
SHA256 a847b1511e510072e9810708a8c36dbfd308098918ef04dff0e60a57c9ce5d5c
MD5 1a5407a4e2edf41be2687366aa439451
BLAKE2b-256 f3ea2b058e6af763b9544c4ff83945f07b971037d0d57a07b6f214b54a5f7427

See more details on using hashes here.

Provenance

The following attestation bundles were made for proadv-2.1.7.tar.gz:

Publisher: publish.yml on farzadasgari/proadv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proadv-2.1.7-py3-none-any.whl.

File metadata

  • Download URL: proadv-2.1.7-py3-none-any.whl
  • Upload date:
  • Size: 55.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for proadv-2.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 05a255c8b3574f23ddffdfd0bff2aaa56634bda943187075aaada8532f023fda
MD5 0fa4ea979f94b2208ab2a9d3ef6c1873
BLAKE2b-256 4d8b7648f89155837bb6cafa3587fd6eb3977a21d11e25cd97b806bd01f59329

See more details on using hashes here.

Provenance

The following attestation bundles were made for proadv-2.1.7-py3-none-any.whl:

Publisher: publish.yml on farzadasgari/proadv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page