Skip to content

erdogant/findpeaks

Repository files navigation

findpeaks

Python Pypi Docs LOC Downloads Downloads License Forks Issues Project Status DOI Colab Medium Donate

findpeaks is a comprehensive Python library for robust detection and analysis of peaks and valleys in both 1D vectors and 2D arrays (images). The library provides multiple detection algorithms including topology-based persistent homology (most robust), mask-based local maximum filtering, and traditional peakdetect approaches. It can be used for time series analysis, signal processing, image analysis, and spatial data. ⭐️Star it if you like it⭐️

Key Features

Feature Description
Topology Detection Mathematically grounded peak detection using persistent homology.
Peakdetect Method Traditional peak detection algorithm for noisy signals.
Mask Detection Local maximum filtering for 2D image analysis.
Caerus Method Specialized algorithm for financial time series analysis.
Preprocessing Denoising, scaling, interpolation, and image preprocessing.
Visualization Rich plotting capabilities including persistence diagrams and 3D mesh plots.

Resources and Links


Background

  • Topology Method: The most robust detection method based on persistent homology from topological data analysis. It quantifies peak significance through persistence scores and provides mathematically stable results even in noisy data.

  • Peakdetect Method: Traditional algorithm that excels at finding local maxima and minima in noisy signals without requiring extensive preprocessing. Uses a lookahead approach to distinguish between true peaks and noise-induced fluctuations.

  • Mask Method: Local maximum filtering approach specifically designed for 2D data (images). Employs 8-connected neighborhood analysis and background removal for spatial peak detection.

  • Preprocessing Pipeline: Comprehensive preprocessing capabilities including interpolation, denoising (Lee, Frost, Kuan filters), scaling, and image resizing to improve detection accuracy.


Installation

Install findpeaks from PyPI
pip install findpeaks
Install from Github source
pip install git+https://github.com/erdogant/findpeaks
Import Library
import findpeaks
print(findpeaks.__version__)

# Import library
from findpeaks import findpeaks

Quick Start

# Import library
from findpeaks import findpeaks

# Initialize with topology method (most robust)
fp = findpeaks(method='topology')

# Example data
X = fp.import_example('1dpeaks')

# Peak detection
results = fp.fit(X)

# Plot results
fp.plot()

# Plot persistence diagram
fp.plot_persistence()

Examples

1D Signal Analysis

2D Image Analysis

Financial Time Series

SAR/SONAR Image Processing

Image Denoising


References

Contributors

Special thanks to the contributors!

Maintainer

  • Erdogan Taskesen, github: erdogant
  • Contributions are welcome.
  • Yes! This library is entirely free but it runs on coffee! :) Feel free to support with a Coffee.

Buy me a coffee