Spectral analysis in Python

The Python code that turns thousands of raw operando spectra into something a person, or a model, can reason about.

Status
Ongoing
Tags
  • Python
  • Raman spectroscopy
  • data pipelines
  • machine learning
How Raman scattering works (schematic)A green laser beam hits molecules on an electrode. Most of the light bounces back the same color. A tiny fraction comes back a slightly different color; that shift is the molecule's fingerprint, which a spectrometer reads.electrode surfacelaser inone pure colormost light: same color~1 in 10 million:a shifted color= the molecule's fingerprint
SchematicA generic schematic of the idea, until photos are added.

The problem

An operando experiment produces a long series of spectra, each tied to a moment in the battery’s cycle. Analyzing them by hand doesn’t scale, and every manual step is a place for inconsistency to creep in.

What I built

Python tooling for processing and analyzing spectral data, which also feeds the machine-learning work with Yuxin Chen’s group.

TODO(Sidney): the steps your code handles (e.g. loading instrument files, cosmic-ray removal, baseline correction, normalization, peak fitting, aligning spectra with electrochemistry), and the libraries you use.

Images

TODO(Sidney): a diagram of the pipeline stages. Use a schematic, not real data, until results are cleared.

What I learned

TODO(Sidney): what you'd tell someone starting to analyze spectra in Python.