Metadata-Version: 2.1
Name: peak-finder
Version: 0.1.2
Summary: For finding and processing Lorentzian line shapes.
Home-page: https://github.com/GabePoel/ML-Peak-Tracker
Author: Gabriel Perko-Engel
Author-email: gpe@berkeley.edu
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3/6
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: nptdms

# 

# Peak Finder

## What Works

Run the code in `train_test.ipynb` to see a more or less completely working Lorentzian peak generation model in action!

## Data Generation

There are several types of data generation that work now. The simplest types are called `single` and `simple` and they can be found in `efficient_data_generation.py`. Currently, all the models rely on these two types of data generation. But, it's also possible to generate an entire complete set of data as detailed below.

### Full Data Set Generation

To make a bunch of data run `generate_data.py` . This creates a `generated_data` directory and fills it with 1000 randomly generated data sets. Each one is composed of the following three files:

- `*_background.csv` - Has the parameters for the big background Lorentzian.
- `*_lorentz.csv` - Has the parameters for all of the generated Lorentzians.
- `*_data.csv` - Has the actual generated data. First column is frequency and second is displacement.

All parameters are stored as row with `amplitude, frequency, FWHM, phase` in that order.

All the actual Lorentz generation happens in `generate_lorentz.py`. Import this to generate data with custom parameters or whathaveyou. Noise and other generation parameters can be toggled in `generate_data()` here.

As I've set it up here, the in and out of phase components of the Lorentzian are defined as follows:

$$A_\text{in}=\frac{A_0}{2\Gamma}\frac{f-f_0}{\left(\frac{f-f_0}{\Gamma}\right)^2+\frac{1}{4}},\quad A_{\text{out}}=\frac{A_0}{4}\frac{1}{\left(\frac{f-f_0}{\Gamma}\right)^2+\frac{1}{4}}$$ 

Where the full version is then the following:

$$A(f,\theta)=A_\text{in}\cos(\theta)+A_\text{out}\sin(\theta)$$

(The LaTeX probably won't appear properly on GitHub. But it should render properly in any other markdown viewer.)

