interactive_curve_fit: A Python project enables you to do curve fitting on spectrum data interactively on GUI. You can visualize your spectrum and fit the optional number of peaks on GUI using Scipy.optimize.curve_fit method.
Project description
interactive_curve_fit
A Python project enables you to do curve fitting on spectrum data interactively on GUI. You can visualize your spectrum and fit the optional number of peaks on GUI using Scipy.optimize.curve_fit method.
How to use?
Try tutorial.py with your spectrum data!
Spectrum data format must be like the table below
x | y |
---|---|
0 | 1 |
1 | 13 |
2 | 30 |
3 | 43 |
4 | 31 |
5 | 11 |
... | ... |
Steps to curve-fit
-
Teach your initial guess of the positions of each peaks roughly to Fitter.
from interactive_curve_fit import read_data, Guessor, Fitter data = read_data(data, headers=2, sep=',') guessor = Guessor(data, background=10, method='drag') guess = guessor.guess()
Initial Guess method
- mouse-dragging (wrap up peak area by mouse-dragging)
- click (click the top and the both edges of each peaks)
Screenshot
-
Give your spectrum data and your guess to Fitter.
fitter = Fitter(data, guess) fitter.run(method='gaussian')
Supported fitting functions
- gaussian function
- polynomial function
Output information includes
- position (x, y) of each peaks
- baseline height of the spectrum
- bandwidth of each peaks with its CI (confidential interval)
-
Save the fitting results
fitter.save_data('out/fitting_result.csv')
-
Other features
bmp_to_csv converts bmp file to csv file.
from interactive_curve_fit import bmg_to_csv bmp_to_csv('data/line_spectrum.bmp') data = read_data('data/line_spectrum.csv')
Fitter can visualize fitting results
fitter.plot_fit()
Fitter can also display fitting results on terminal
fitter.display_results_terminal(ci=2)
Supported supectrum file format
-
ascii file(.asc .csv .txt etc..)
-
bmp image(.bmp .jpg .png .jpeg etc..)
excel sheet files, table of html are planed to be suported in the near future.
Features that are planned to be supported!
- baseline correlation
- other fitting functions (e.g. binomical distribution function)
- automated guessor method using wavelet transform and CNN
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for interactive_curve_fit-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c193c67b693e0a807c1793caab6ed14a1230e5499eb9b83d6a235280783539c0 |
|
MD5 | 112d8821b52b08ec32e5c94b88a42b79 |
|
BLAKE2b-256 | d6267fc933035b994ce00bd7529d17466390ca8a69f345e93fa914e1702cda85 |
Hashes for interactive_curve_fit-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15daa3c2eb87bdd15afb05935ad5784a54907a3ecf62aeda726a3113b2c9bf19 |
|
MD5 | 672ae8ad62c6b9dbf02c1a401a3c612b |
|
BLAKE2b-256 | 881734ccb061c34f1e6175b0f8569a8d8d99636a69b1effa991ee2e38a00f21e |