# Welcome to pyEvalData
[![Documentation Status](https://readthedocs.org/projects/pyevaldata/badge/?version=latest)](https://pyevaldata.readthedocs.io/en/latest/?badge=latest)
![CI](https://github.com/dschick/pyEvalData/actions/workflows/main.yml/badge.svg)
![pypi](https://github.com/dschick/pyEvalData/actions/workflows/upload-to-pypi.yml/badge.svg)
[![codecov](https://codecov.io/gh/dschick/pyEvalData/branch/develop/graph/badge.svg?token=B73OXF4YRI)](https://codecov.io/gh/dschick/pyEvalData)
This is a Python module to read and evaluate experimental data. It can handle
raw data from different sources such as
[spec](https://certif.com/content/spec/),
[hdf5](https://www.hdfgroup.org/solutions/hdf5/),
[NeXus](https://www.nexusformat.org/) files which are common data formats at
synchrotrons, FELs, as well as in a growing number of laboratories. The
evaluation provides common functionalities such as binning, error calculation,
and advanced data manipulation via algebraic expressions as well as pre- and
post-data-filters. Furthermore, advanced wrapper functions allow for plotting
and fitting sequences of one or multiple scans in dependence of an external
parameter.
A minimal code example would look like this:
```python
import pyEvalData as ped
# define your data source
spec = ped.io.Spec(file_name='data.spec')
# initialize the evaluation
ev = ped.Evaluation(spec)
# define the x- and y-data
ev.xcol = 'motor1'
ev.clist = ['ct1', 'ct2', 'ct1/ct2']
# create a plot for scans 1-3
ev.plot_scans([1, 2, 3])
```
Please follow the [user guide](https://pyevaldata.readthedocs.io/en/latest/user_guide.html)
and [examples](https://pyevaldata.readthedocs.io/en/latest/examples.html) for
your first steps with `pyEvalData`.
## Features
- reading of several pre-defined raw data formats
* [spec](https://certif.com/content/spec/)
* [hdf5](https://www.hdfgroup.org/solutions/hdf5/)
* [NeXus](https://www.nexusformat.org/)
* user-defined text files
* camera images (Dectris Pilatus, Princeton MTE, Greateyes, ...)
* composite sources
- easy implementation of new raw-data formats using an `interface class`
- common methods for plotting and fitting of experimental data, including:
* data binning
* error calculation
* data manipulation via algebraic expressions
* common data pre- and post-filters
## Installation
You can either install directly from
[pypi.org](https://www.pypi.org/project/pyEvalData) using the command
$ pip install pyEvalData
or if you want to work on the latest develop release you can clone
`pyEvalData` from the main git repository:
$ git clone https://github.com/dschick/pyEvalData.git pyEvalData
To work in editable mode (source is only linked
but not copied to the python site-packages), just do:
$ pip install -e ./pyEvalData
Or to do a normal install with
$ pip install ./pyEvalData
Optionally, you can also let pip install directly from the repository:
$ pip install git+https://github.com/dschick/pyEvalData.git
You can have the following optional installations to enable unit tests, as well
as building the documentation:
$ pip install pyEvalData[testing]
$ pip install pyEvalData[documentation]
## Contribute & Support
If you are having issues please let us know via the
[issue tracker](https://github.com/dschick/pyEvalData/issues).
You can contribute to the project via pull-requests following the
[GitHub flow concept](https://docs.github.com/en/get-started/quickstart/github-flow).
## License
The project is licensed under the MIT license.
Raw data
{
"_id": null,
"home_page": "https://github.com/dschick/pyEvalData",
"name": "pyEvalData",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": "",
"keywords": "data evaluation analysis SPEC h5 NeXus",
"author": "Daniel Schick",
"author_email": "schick.daniel@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/0e/20/f83718467ee200a1c142a59b3e06147de47027a39c73b1075f6d416e2334/pyEvalData-1.6.0.tar.gz",
"platform": null,
"description": "# Welcome to pyEvalData\n\n[![Documentation Status](https://readthedocs.org/projects/pyevaldata/badge/?version=latest)](https://pyevaldata.readthedocs.io/en/latest/?badge=latest)\n![CI](https://github.com/dschick/pyEvalData/actions/workflows/main.yml/badge.svg)\n![pypi](https://github.com/dschick/pyEvalData/actions/workflows/upload-to-pypi.yml/badge.svg)\n[![codecov](https://codecov.io/gh/dschick/pyEvalData/branch/develop/graph/badge.svg?token=B73OXF4YRI)](https://codecov.io/gh/dschick/pyEvalData)\n\nThis is a Python module to read and evaluate experimental data. It can handle\nraw data from different sources such as\n[spec](https://certif.com/content/spec/),\n[hdf5](https://www.hdfgroup.org/solutions/hdf5/),\n[NeXus](https://www.nexusformat.org/) files which are common data formats at\nsynchrotrons, FELs, as well as in a growing number of laboratories. The\nevaluation provides common functionalities such as binning, error calculation,\nand advanced data manipulation via algebraic expressions as well as pre- and\npost-data-filters. Furthermore, advanced wrapper functions allow for plotting\nand fitting sequences of one or multiple scans in dependence of an external\nparameter.\n\nA minimal code example would look like this:\n\n```python\nimport pyEvalData as ped\n# define your data source\nspec = ped.io.Spec(file_name='data.spec')\n# initialize the evaluation\nev = ped.Evaluation(spec)\n# define the x- and y-data\nev.xcol = 'motor1'\nev.clist = ['ct1', 'ct2', 'ct1/ct2']\n# create a plot for scans 1-3\nev.plot_scans([1, 2, 3])\n```\n\nPlease follow the [user guide](https://pyevaldata.readthedocs.io/en/latest/user_guide.html)\nand [examples](https://pyevaldata.readthedocs.io/en/latest/examples.html) for\nyour first steps with `pyEvalData`.\n\n## Features\n\n- reading of several pre-defined raw data formats\n * [spec](https://certif.com/content/spec/)\n * [hdf5](https://www.hdfgroup.org/solutions/hdf5/)\n * [NeXus](https://www.nexusformat.org/)\n * user-defined text files\n * camera images (Dectris Pilatus, Princeton MTE, Greateyes, ...)\n * composite sources\n- easy implementation of new raw-data formats using an `interface class`\n- common methods for plotting and fitting of experimental data, including:\n * data binning\n * error calculation\n * data manipulation via algebraic expressions\n * common data pre- and post-filters\n\n## Installation\n\nYou can either install directly from\n[pypi.org](https://www.pypi.org/project/pyEvalData) using the command\n\n $ pip install pyEvalData\n\nor if you want to work on the latest develop release you can clone \n`pyEvalData` from the main git repository:\n\n $ git clone https://github.com/dschick/pyEvalData.git pyEvalData\n\nTo work in editable mode (source is only linked \nbut not copied to the python site-packages), just do:\n\n $ pip install -e ./pyEvalData\n\nOr to do a normal install with\n\n $ pip install ./pyEvalData\n\nOptionally, you can also let pip install directly from the repository: \n\n $ pip install git+https://github.com/dschick/pyEvalData.git\n\nYou can have the following optional installations to enable unit tests, as well\nas building the documentation:\n\n $ pip install pyEvalData[testing]\n $ pip install pyEvalData[documentation]\n\n## Contribute & Support\n\nIf you are having issues please let us know via the\n[issue tracker](https://github.com/dschick/pyEvalData/issues).\n\nYou can contribute to the project via pull-requests following the\n[GitHub flow concept](https://docs.github.com/en/get-started/quickstart/github-flow).\n\n## License\n\nThe project is licensed under the MIT license.\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python module to evaluate experimental data",
"version": "1.6.0",
"project_urls": {
"Homepage": "https://github.com/dschick/pyEvalData"
},
"split_keywords": [
"data",
"evaluation",
"analysis",
"spec",
"h5",
"nexus"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f4702d3f9d947c484f6f3ec8395ae0cfbd2ee7f432194960a4a1213fe45f7d40",
"md5": "d60a6bc2f735609bfc78196084b19f59",
"sha256": "a160037367c6cdc3de1ecc93afe670dae148b41773b29d30b60079de2f66ed25"
},
"downloads": -1,
"filename": "pyEvalData-1.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d60a6bc2f735609bfc78196084b19f59",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 36845,
"upload_time": "2023-12-27T21:03:33",
"upload_time_iso_8601": "2023-12-27T21:03:33.622753Z",
"url": "https://files.pythonhosted.org/packages/f4/70/2d3f9d947c484f6f3ec8395ae0cfbd2ee7f432194960a4a1213fe45f7d40/pyEvalData-1.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0e20f83718467ee200a1c142a59b3e06147de47027a39c73b1075f6d416e2334",
"md5": "a1a08e4c60d2f3cf0de6725f64cce4c9",
"sha256": "15ef1714d2ed61ddffcc868ac1e63891bbed28ac8b919140c6f5b9e8e2f995b7"
},
"downloads": -1,
"filename": "pyEvalData-1.6.0.tar.gz",
"has_sig": false,
"md5_digest": "a1a08e4c60d2f3cf0de6725f64cce4c9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 27375,
"upload_time": "2023-12-27T21:03:34",
"upload_time_iso_8601": "2023-12-27T21:03:34.989506Z",
"url": "https://files.pythonhosted.org/packages/0e/20/f83718467ee200a1c142a59b3e06147de47027a39c73b1075f6d416e2334/pyEvalData-1.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-27 21:03:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dschick",
"github_project": "pyEvalData",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyevaldata"
}