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
File details
Details for the file interactive_curve_fit-0.0.1.tar.gz
.
File metadata
- Download URL: interactive_curve_fit-0.0.1.tar.gz
- Upload date:
- Size: 356.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c193c67b693e0a807c1793caab6ed14a1230e5499eb9b83d6a235280783539c0 |
|
MD5 | 112d8821b52b08ec32e5c94b88a42b79 |
|
BLAKE2b-256 | d6267fc933035b994ce00bd7529d17466390ca8a69f345e93fa914e1702cda85 |
File details
Details for the file interactive_curve_fit-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: interactive_curve_fit-0.0.1-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15daa3c2eb87bdd15afb05935ad5784a54907a3ecf62aeda726a3113b2c9bf19 |
|
MD5 | 672ae8ad62c6b9dbf02c1a401a3c612b |
|
BLAKE2b-256 | 881734ccb061c34f1e6175b0f8569a8d8d99636a69b1effa991ee2e38a00f21e |