SpectroscopyTools.jl

A general-purpose spectroscopy analysis toolkit for Julia.

SpectroscopyTools provides peak fitting, baseline correction, exponential decay fitting with IRF deconvolution, chirp correction, and unit conversions for spectroscopic data. It is designed to work with any spectroscopy discipline –- ultrafast, FTIR, Raman, UV-vis, fluorescence –- while keeping a minimal dependency footprint.

Installation

using Pkg
Pkg.add("SpectroscopyTools")

Quick Start

using SpectroscopyTools

# Fit peaks in a spectrum
result = fit_peaks(wavenumber, absorbance, (2000, 2100))
report(result)

# Baseline correction
baseline = als_baseline(y; lambda=1e5, p=0.01)
y_corrected = y .- baseline

# Unit conversions
wavelength_to_wavenumber(1500u"nm")  # -> wavenumber in cm^-1

Package Overview

ModuleWhat it does
Peak fittingGaussian, Lorentzian, Pseudo-Voigt via CurveFit.jl
Peak detectionAutomatic peak finding via Peaks.jl
Baseline correctionALS, ARPLS, SNIP, polynomial, Whittaker
Exponential decaySingle/multi-exponential with optional IRF convolution
Global fittingShared parameters across multiple traces
Chirp correctionGVD detection and correction for broadband TA
Unit conversionsWavenumber, wavelength, energy, linewidth interconversion
SmoothingSavitzky-Golay filtering

Tutorials

API Reference

See the full API Reference for documentation of all exported functions and types.