![Logo](https://github.com/mj-hofmann/CaloCem/blob/main/icon/icon.png?raw=true)
# Interfacing with experimental results file from TAM Air calorimeters made easy.
After collecting multiple experimental results files from a TAM Air calorimeter you will be left with multiple *.xls*-files obtained as exports from the device control software. To achieve a side by side comparison of theses results and some basic extraction of relevant parameters, **CaloCem** is here to get this done smoothly.
## Documentation
The full documentation can be found [here](https://mj-hofmann.github.io/CaloCem/index.html).
## Download Stats
[![PyPI - Downloads](https://img.shields.io/pypi/dm/calocem.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold)](https://pepy.tech/project/calocem)
[![PyPI - Downloads](https://static.pepy.tech/personalized-badge/calocem?period=total&units=none&left_color=black&right_color=grey&left_text=Downloads)](https://pepy.tech/project/tainstcalorimetry)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/calocem.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/calocem/)
## Example Usage
Import the ```tacalorimetry``` module from **CaloCem**.
```python
# import
import os
from CaloCem import tacalorimetry
```
Next, we define where the exported files are stored. With this information at hand, a ```Measurement``` is initialized. Experimental raw data and the metadata passed in the course of the measurement are retrieved by the methods ```get_data()``` and ```get_information()```, respectively.
```python
# define data path
# "mycalodata" is the subfoldername where the calorimetry
# data files (both .csv or .xlsx) are stored
pathname = os.path.dirname(os.path.realpath(__file__))
path_to_data = pathname + os.sep + "mycalodata"
# Example: if projectfile is at "C:\Users\myname\myproject\myproject.py", then "mydata"
# refers to "C:\Users\myname\myproject\mycalodata" where the data is stored
# load experiments via class, i.e. instantiate tacalorimetry object with data
tam = tacalorimetry.Measurement(folder=path_to_data)
# get sample and information
data = tam.get_data()
info = tam.get_information()
```
### Basic plotting
Furthermore, the ```Measurement``` features a ```plot()```-method for readily visualizing the collected results.
```python
# make plot
tam.plot()
# show plot
tacalorimetry.plt.show()
```
Without further options specified, the ```plot()```-method yields the following.
![enter image description here](https://github.com/mj-hofmann/TAInstCalorimetry/blob/main/tests/plots/Figure%202022-08-08%20112743.png?raw=true)
The ```plot()```-method can also be tuned to show the temporal course of normalized heat. On the one hand, this "tuning" refers to the specification of further keyword arguments such as ```t_unit``` and ```y```. On the other hand, the ```plot()```-method returns an object of type ```matplotlib.axes._subplots.AxesSubplot```, which can be used to further customize the plot. In the following, a guide-to-the-eye line is introduced next to adjuting the axes limts, which is not provided for via the ```plot()```-method's signature.
```python
# show cumulated heat plot
ax = tam.plot(
t_unit="h",
y='normalized_heat',
y_unit_milli=False
)
# define target time
target_h = 1.5
# guide to the eye line
ax.axvline(target_h, color="gray", alpha=0.5, linestyle=":")
# set upper limits
ax.set_ylim(top=250)
ax.set_xlim(right=6)
# show plot
tacalorimetry.plt.show()
```
The following plot is obtained:
![enter image description here](https://github.com/mj-hofmann/TAInstCalorimetry/blob/main/tests/plots/Figure%202022-08-19%20085928.png?raw=true)
### Feature Extraction
Additionally, the package allows among others for streamlining routine tasks such as
- getting cumulated heat values,
- identifying peaks positions and characteristics,
- identifying peak onsets,
- Plotting by Category,
- ...
## Installation
Use the package manager [pip](https://pip.pypa.io/en/stable/) to install TAInstCalorimetry.
```bash
pip install CaloCem
```
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
List of contributors:
- [mj-hofmann](https://github.com/mj-hofmann)
- [tgaedt](https://github.com/tgaedt)
## License
[GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/#)
## Test
![Tests](https://github.com/mj-hofmann/TAInstCalorimetry/actions/workflows/run-tests.yml/badge.svg)
## Code Styling
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
Raw data
{
"_id": null,
"home_page": "https://github.com/mj-hofmann/CaloCem",
"name": "CaloCem",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.9.1",
"maintainer_email": null,
"keywords": "calorimetry, TAM Air, TA Instruments, analysis, vizualisation",
"author": "mj-hofmann",
"author_email": "aCodingChemist@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/76/97/731d1c3fdea81d5dfab447ef50a0699e7e30483dab1c78a1b69af8e8eee3/calocem-0.1.19.tar.gz",
"platform": null,
"description": "![Logo](https://github.com/mj-hofmann/CaloCem/blob/main/icon/icon.png?raw=true)\n\n# Interfacing with experimental results file from TAM Air calorimeters made easy.\n\nAfter collecting multiple experimental results files from a TAM Air calorimeter you will be left with multiple *.xls*-files obtained as exports from the device control software. To achieve a side by side comparison of theses results and some basic extraction of relevant parameters, **CaloCem** is here to get this done smoothly.\n\n## Documentation\nThe full documentation can be found [here](https://mj-hofmann.github.io/CaloCem/index.html).\n\n## Download Stats\n\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/calocem.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold)](https://pepy.tech/project/calocem)\n[![PyPI - Downloads](https://static.pepy.tech/personalized-badge/calocem?period=total&units=none&left_color=black&right_color=grey&left_text=Downloads)](https://pepy.tech/project/tainstcalorimetry)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/calocem.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/calocem/) \n\n\n## Example Usage\n\nImport the ```tacalorimetry``` module from **CaloCem**.\n\n```python\n# import\nimport os\nfrom CaloCem import tacalorimetry\n```\n\nNext, we define where the exported files are stored. With this information at hand, a ```Measurement``` is initialized. Experimental raw data and the metadata passed in the course of the measurement are retrieved by the methods ```get_data()``` and ```get_information()```, respectively.\n\n```python\n# define data path\n# \"mycalodata\" is the subfoldername where the calorimetry\n# data files (both .csv or .xlsx) are stored\n\npathname = os.path.dirname(os.path.realpath(__file__))\npath_to_data = pathname + os.sep + \"mycalodata\"\n\n# Example: if projectfile is at \"C:\\Users\\myname\\myproject\\myproject.py\", then \"mydata\"\n# refers to \"C:\\Users\\myname\\myproject\\mycalodata\" where the data is stored\n\n# load experiments via class, i.e. instantiate tacalorimetry object with data\ntam = tacalorimetry.Measurement(folder=path_to_data)\n\n# get sample and information\ndata = tam.get_data()\ninfo = tam.get_information()\n```\n\n### Basic plotting\n\nFurthermore, the ```Measurement``` features a ```plot()```-method for readily visualizing the collected results.\n\n```python\n# make plot\ntam.plot()\n# show plot\ntacalorimetry.plt.show()\n```\n\nWithout further options specified, the ```plot()```-method yields the following.\n\n![enter image description here](https://github.com/mj-hofmann/TAInstCalorimetry/blob/main/tests/plots/Figure%202022-08-08%20112743.png?raw=true)\n\nThe ```plot()```-method can also be tuned to show the temporal course of normalized heat. On the one hand, this \"tuning\" refers to the specification of further keyword arguments such as ```t_unit``` and ```y```. On the other hand, the ```plot()```-method returns an object of type ```matplotlib.axes._subplots.AxesSubplot```, which can be used to further customize the plot. In the following, a guide-to-the-eye line is introduced next to adjuting the axes limts, which is not provided for via the ```plot()```-method's signature.\n\n```python\n# show cumulated heat plot\nax = tam.plot(\n t_unit=\"h\",\n y='normalized_heat',\n y_unit_milli=False\n)\n\n# define target time\ntarget_h = 1.5\n\n# guide to the eye line\nax.axvline(target_h, color=\"gray\", alpha=0.5, linestyle=\":\")\n\n# set upper limits\nax.set_ylim(top=250)\nax.set_xlim(right=6)\n# show plot\ntacalorimetry.plt.show()\n```\nThe following plot is obtained:\n\n![enter image description here](https://github.com/mj-hofmann/TAInstCalorimetry/blob/main/tests/plots/Figure%202022-08-19%20085928.png?raw=true)\n\n### Feature Extraction\n\nAdditionally, the package allows among others for streamlining routine tasks such as\n\n- getting cumulated heat values,\n- identifying peaks positions and characteristics,\n- identifying peak onsets,\n- Plotting by Category,\n- ...\n\n## Installation\n\nUse the package manager [pip](https://pip.pypa.io/en/stable/) to install TAInstCalorimetry.\n\n```bash\npip install CaloCem\n```\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.\n\nList of contributors:\n- [mj-hofmann](https://github.com/mj-hofmann)\n- [tgaedt](https://github.com/tgaedt)\n\n## License\n[GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/#)\n\n\n## Test\n![Tests](https://github.com/mj-hofmann/TAInstCalorimetry/actions/workflows/run-tests.yml/badge.svg)\n\n## Code Styling\n\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n",
"bugtrack_url": null,
"license": "GNU GENERAL PUBLIC LICENSE",
"summary": "Handling TAM Air calorimetry files made easy.",
"version": "0.1.19",
"project_urls": {
"Documentation": "https://mj-hofmann.github.io/CaloCem/",
"Homepage": "https://github.com/mj-hofmann/CaloCem",
"Repository": "https://github.com/mj-hofmann/CaloCem"
},
"split_keywords": [
"calorimetry",
" tam air",
" ta instruments",
" analysis",
" vizualisation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a82762c4d77ce1b186b0e7a22fd16b0cbcc7d718dcbb11bb0fc06a43d2e1e312",
"md5": "1c21b496553411387290f436ca32ab56",
"sha256": "3d58bb5d0548a3f617d5443a745122282711bc61872d69c936acde4241013a53"
},
"downloads": -1,
"filename": "calocem-0.1.19-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1c21b496553411387290f436ca32ab56",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.9.1",
"size": 14118837,
"upload_time": "2024-10-21T16:56:48",
"upload_time_iso_8601": "2024-10-21T16:56:48.873395Z",
"url": "https://files.pythonhosted.org/packages/a8/27/62c4d77ce1b186b0e7a22fd16b0cbcc7d718dcbb11bb0fc06a43d2e1e312/calocem-0.1.19-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7697731d1c3fdea81d5dfab447ef50a0699e7e30483dab1c78a1b69af8e8eee3",
"md5": "f7bc254f24aac1cf9c6b2c284065dac8",
"sha256": "f39a5ea083abc2055de29d7c06994ee65082dbbaf4955e54654d911624128a91"
},
"downloads": -1,
"filename": "calocem-0.1.19.tar.gz",
"has_sig": false,
"md5_digest": "f7bc254f24aac1cf9c6b2c284065dac8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.9.1",
"size": 14109669,
"upload_time": "2024-10-21T16:56:52",
"upload_time_iso_8601": "2024-10-21T16:56:52.106468Z",
"url": "https://files.pythonhosted.org/packages/76/97/731d1c3fdea81d5dfab447ef50a0699e7e30483dab1c78a1b69af8e8eee3/calocem-0.1.19.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-21 16:56:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mj-hofmann",
"github_project": "CaloCem",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "calocem"
}