<h1 align="center">SUV Tools</h1>
<p align="center">
<a href="https://github.com/pranabdas/suvtools/actions/workflows/python-tests.yml"><img src="https://github.com/pranabdas/suvtools/actions/workflows/python-tests.yml/badge.svg" alt="Python tests status"></a>
<a href="https://github.com/pranabdas/suvtools/actions/workflows/deploy-gh-pages.yml"><img src="https://github.com/pranabdas/suvtools/actions/workflows/deploy-gh-pages.yml/badge.svg" alt="Deploy gh-pages status"></a>
<a href="https://github.com/pranabdas/suvtools/actions/workflows/publish.yml"><img src="https://github.com/pranabdas/suvtools/actions/workflows/publish.yml/badge.svg" alt="Deploy gh-pages status"></a>
<a href="https://github.com/pranabdas/suvtools/blob/master/LICENSE"><img src="https://img.shields.io/github/license/sourcerer-io/hall-of-fame.svg?colorB=A31F34"></a>
<a href="https://pypi.org/project/suvtools/"><img src="https://img.shields.io/github/v/release/pranabdas/suvtools.svg" alt="Latest Release"/></a>
</p>
Visit the project homepage <https://pranabdas.github.io/suvtools/>
## Quick start
Install latest stable release:
```console
pip3 install --upgrade suvtools
```
Import suvtools into your project:
```python
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`
and `xmax` determines the range to fit. If `xmin` and `xmax` are not provided,
whole range is used. `num` determines the number of points returned in `x_fit`
and `y_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` and `xmax` determines the range to fit. If `xmin` and `xmax` are not
provided, whole range is used. `num` determines the number of points returned in
`x_fit` and `y_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 as `datafile` with name
`datafile.csv` unless `csvname` is specified. Like the `load` 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 input
`x1` and `x2`. 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 given `x` and `y` values. `x_start` and
`x_end` can be specified to set the limit of integration region, if not provided
whole range is integrated.
See the notebook and documentation for example usage.
### Documentation development
```console
# install npm packages
npm install
# serve locally
npm start
# build
npm run build
```
### Python tests
```console
python3 -m unittest discover tests
```
Raw data
{
"_id": null,
"home_page": "https://pranabdas.github.io/suvtools/",
"name": "suvtools",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "python, data-analysis, matplotlib, materials-science, condensed-matter-physics",
"author": "Pranab Das",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/b8/b3/c250b8487d8ab674a905a411c925ed43a4f72dad15a6be7385acb77fa653/suvtools-1.0.2.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">SUV Tools</h1>\n\n<p align=\"center\">\n <a href=\"https://github.com/pranabdas/suvtools/actions/workflows/python-tests.yml\"><img src=\"https://github.com/pranabdas/suvtools/actions/workflows/python-tests.yml/badge.svg\" alt=\"Python tests status\"></a>\n <a href=\"https://github.com/pranabdas/suvtools/actions/workflows/deploy-gh-pages.yml\"><img src=\"https://github.com/pranabdas/suvtools/actions/workflows/deploy-gh-pages.yml/badge.svg\" alt=\"Deploy gh-pages status\"></a>\n <a href=\"https://github.com/pranabdas/suvtools/actions/workflows/publish.yml\"><img src=\"https://github.com/pranabdas/suvtools/actions/workflows/publish.yml/badge.svg\" alt=\"Deploy gh-pages status\"></a>\n <a href=\"https://github.com/pranabdas/suvtools/blob/master/LICENSE\"><img src=\"https://img.shields.io/github/license/sourcerer-io/hall-of-fame.svg?colorB=A31F34\"></a>\n <a href=\"https://pypi.org/project/suvtools/\"><img src=\"https://img.shields.io/github/v/release/pranabdas/suvtools.svg\" alt=\"Latest Release\"/></a>\n</p>\n\n\nVisit the project homepage <https://pranabdas.github.io/suvtools/>\n\n## Quick start\n\nInstall latest stable release:\n```console\npip3 install --upgrade suvtools\n```\n\nImport suvtools into your project:\n```python\nimport suvtools as suv\n```\n\n**Modules:**\n\n- `suv.load(\"datafile.txt\", scan=None)`: It will return a two dimensional array\nwith columns for various parameters. If the second argument, i.e., the scan\nnumber is not specified, the code will read the last scan from the file.\n\n- `suv.fit_gauss(x, y, a=None, x0=None, sigma=None, xmin=None, xmax=None, num=1000)`:\nreturns x, Gaussian fitted y values, and prints out relevant parameters. `xmin`\nand `xmax` determines the range to fit. If `xmin` and `xmax` are not provided,\nwhole range is used. `num` determines the number of points returned in `x_fit`\nand `y_fit`.\n\n- `suv.fit_lorentz(x, y, a=None, x0=None, gamma=None, xmin=None, xmax=None, num=1000)`:\nreturns x, Lorentzian fitted y values, and prints out relevant parameters.\n`xmin` and `xmax` determines the range to fit. If `xmin` and `xmax` are not\nprovided, whole range is used. `num` determines the number of points returned in\n`x_fit` and `y_fit`.\n\n- `suv.save_csv(\"datafile.txt\", csvname=None, scan=None)`: saves scan to a csv\nfile. The file will be saved in the save directory as `datafile` with name\n`datafile.csv` unless `csvname` is specified. Like the `load` module, if the\nscan number is not specified, it will read the last scan from the file.\n\n- `suv.norm_bg(energy, intensity, x1, x2, x_norm_loc=None)`:\nRemoves linear background, and normalizes the data. x1, x2 are energy values\nthat determines the slope of the background. By default the normalization done\nat the tail point of the spectra. It can be changed to other point, enter the\ncorresponding energy value. The intention is to normalize at an energy value\naway from the peaks/features of interest.\n\n- `suv.lock_peak(data, refdata, x1=None, x2=None, E_col=0, I_col=9, I0_col=4)`:\nLocks peak position with respect to the reference data. It locks the maximum of\nintensity to the same energy; the range of peak search can be specified by input\n`x1` and `x2`. If no bounds are given, it will find the maximum in the whole\ndata range.\n\n- `suv.calc_area(y, x, x_start=None, x_end=None)`:\nCalculates area under the curve for given `x` and `y` values. `x_start` and\n`x_end` can be specified to set the limit of integration region, if not provided\nwhole range is integrated.\n\nSee the notebook and documentation for example usage.\n\n### Documentation development\n\n```console\n# install npm packages\nnpm install\n\n# serve locally\nnpm start\n\n# build\nnpm run build\n```\n\n### Python tests\n\n```console\npython3 -m unittest discover tests\n```\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python library for analyzing and visualizing SSLS SUV Beamline data.",
"version": "1.0.2",
"project_urls": {
"Documentation": "https://pranabdas.github.io/suvtools/docs/",
"Homepage": "https://pranabdas.github.io/suvtools/",
"Repository": "https://github.com/pranabdas/suvtools"
},
"split_keywords": [
"python",
" data-analysis",
" matplotlib",
" materials-science",
" condensed-matter-physics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b10c5dd778d351172626472865767eb23c8a640ef80b416bedae8f8adfa86fdc",
"md5": "c4102cffe7a14aa83978c0ce01ffa54f",
"sha256": "713c48bd20e9f0818522b22d229fca6d446e38823580766accdbdaacee36de58"
},
"downloads": -1,
"filename": "suvtools-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c4102cffe7a14aa83978c0ce01ffa54f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 8781,
"upload_time": "2024-10-07T07:51:37",
"upload_time_iso_8601": "2024-10-07T07:51:37.534225Z",
"url": "https://files.pythonhosted.org/packages/b1/0c/5dd778d351172626472865767eb23c8a640ef80b416bedae8f8adfa86fdc/suvtools-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b8b3c250b8487d8ab674a905a411c925ed43a4f72dad15a6be7385acb77fa653",
"md5": "95e3a0fc9dd5491c936300b4ee0fd71e",
"sha256": "3acd38748371a8ba9d96ad34411815cda2d64ca01191cf7438065a57db2ea816"
},
"downloads": -1,
"filename": "suvtools-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "95e3a0fc9dd5491c936300b4ee0fd71e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 6712,
"upload_time": "2024-10-07T07:51:40",
"upload_time_iso_8601": "2024-10-07T07:51:40.192729Z",
"url": "https://files.pythonhosted.org/packages/b8/b3/c250b8487d8ab674a905a411c925ed43a4f72dad15a6be7385acb77fa653/suvtools-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-07 07:51:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pranabdas",
"github_project": "suvtools",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "matplotlib",
"specs": [
[
">=",
"3.9.2"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"2.0.2"
]
]
},
{
"name": "pandas",
"specs": [
[
">=",
"2.2.3"
]
]
},
{
"name": "scipy",
"specs": [
[
">=",
"1.13.1"
]
]
}
],
"lcname": "suvtools"
}