Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Spectroscopy Peak Identifier

Project Overview

This project is a Python-based data analysis tool designed to identify peaks in a noisy UV-Vis spectrum. It uses signal processing techniques to smooth the data, detect peaks, and visualize the results. The project is particularly useful for spectroscopy applications where identifying absorbance peaks is critical.

Features

  • Data Smoothing: Utilizes the Savitzky-Golay filter to clean noisy spectral data.
  • Peak Detection: Identifies peaks in the smoothed spectrum using the find_peaks function from the scipy.signal library.
  • Visualization: Generates a clear and informative plot of the noisy spectrum, smoothed spectrum, and identified peaks.

Installation

  1. Clone this repository to your local machine.
  2. Install the required dependencies listed in requirment.txt:
    pip install -r requirment.txt

Usage

  1. Open the Jupyter Notebook peak_Identifier.ipynb.
  2. Run the cells sequentially to:
    • Generate a noisy UV-Vis spectrum.
    • Smooth the data.
    • Identify and visualize the peaks.

Dependencies

  • Python 3.x
  • NumPy
  • Matplotlib
  • SciPy

How It Works

  1. Generate Noisy Spectrum: A synthetic UV-Vis spectrum is created with added noise.
  2. Smooth the Data: The Savitzky-Golay filter is applied to reduce noise and enhance the signal.
  3. Detect Peaks: Peaks are identified based on a minimum height threshold and a minimum distance between peaks.
  4. Visualize Results: The noisy spectrum, smoothed spectrum, and identified peaks are plotted for easy interpretation.

Example Output

The output includes a plot with:

  • The noisy spectrum in light gray.
  • The smoothed spectrum in green.
  • Identified peaks marked with red 'x'.
  • A blue dashed line indicating the threshold.

License

This project is open-source and available under the MIT License.

Author

Khadija Goni


Feel free to contribute to this project by submitting issues or pull requests.

About

Using python to identify prominent peaks in a noisy data

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages