Visit the project homepage https://pranabdas.github.io/suvtools/
Clone or download this repository:
git clone https://github.com/pranabdas/suvtools.git
Install required python packages:
pip3 install --upgrade -r requirements.txt
Import suvtools into your project (unless the library folder is in your working directory or any of the python lookup paths, you need to add the parent folder path):
import sys
sys.path.append("/parent/suvtools/folder/")
import suvtools as suv
Modules:
-
suv.load("datafile.txt", scan=None)
: It will return a two dimensional array with columns for various parameters. If the second argument, i.e., the scan number is not specified, the code will read the last scan from the file. -
suv.fit_gauss(x, y, a=None, x0=None, sigma=None, xmin=None, xmax=None, num=1000)
: returns x, Gaussian fitted y values, and prints out relevant parameters.xmin
andxmax
determines the range to fit. Ifxmin
andxmax
are not provided, whole range is used.num
determines the number of points returned inx_fit
andy_fit
. -
suv.fit_lorentz(x, y, a=None, x0=None, gamma=None, xmin=None, xmax=None, num=1000)
: returns x, Lorentzian fitted y values, and prints out relevant parameters.xmin
andxmax
determines the range to fit. Ifxmin
andxmax
are not provided, whole range is used.num
determines the number of points returned inx_fit
andy_fit
. -
suv.save_csv("datafile.txt", csvname=None, scan=None)
: saves scan to a csv file. The file will be saved in the save directory asdatafile
with namedatafile.csv
unlesscsvname
is specified. Like theload
module, if the scan number is not specified, it will read the last scan from the file. -
suv.norm_bg(energy, intensity, x1, x2, x_norm_loc=None)
: Removes linear background, and normalizes the data. x1, x2 are energy values that determines the slope of the background. By default the normalization done at the tail point of the spectra. It can be changed to other point, enter the corresponding energy value. The intention is to normalize at an energy value away from the peaks/features of interest. -
suv.lock_peak(data, refdata, x1=None, x2=None, E_col=0, I_col=9, I0_col=4)
: Locks peak position with respect to the reference data. It locks the maximum of intensity to the same energy; the range of peak search can be specified by inputx1
andx2
. If no bounds are given, it will find the maximum in the whole data range. -
suv.calc_area(y, x, x_start=None, x_end=None)
: Calculates area under the curve for givenx
andy
values.x_start
andx_end
can be specified to set the limit of integration region, if not provided whole range is integrated.
See the notebook for some example usage.
# install npm packages
npm install
# serve locally
npm start
# build
npm run build
# deploy to github
npm run gh-deploy
python3 -m unittest tests.py