## Data Analysis Package for LInoSpad (DAPLIS)
Package for unpacking and analyzing the binary data from the timestamping mode of the LinoSPAD2 detector.
![Tests](https://github.com/rngKomorebi/LinoSPAD2/actions/workflows/tests.yml/badge.svg)
![Documentation](https://github.com/rngKomorebi/LinoSPAD2/actions/workflows/documentation.yml/badge.svg)
## Introduction
This package was written for data analysis for LinoSPAD2, mainly for
analysis of the timestamp output. The key functions are ones for
unpacking the binary output of the detector that utilizes the numpy
Python library for quick unpacking of .dat files to matrices,
dictionaries, or data frames.
The "functions" folder holds all functions from unpacking to plotting
numerous types of graphs (pixel population, histograms of timestamp
differences, etc.)
The "params" folder holds masks (used to mask some of the noisiest
pixels) and calibration data (compensating for TDC nonlinearities and
offset) for LinoSPAD2 daughterboards.
The "archive" folder is a collection of scripts for debugging, tests,
older versions of functions, etc.
The "examples" folder contains a few jupyter notebooks with examples
on how to use the main functions, showcasing how to work with the
most important function parameters.
Full documentation, including examples and full documentation of
modules and functions, can be found [here](https://rngkomorebi.github.io/daplis/).
Some functions (mainly the plotting ones) save plots as pictures in the
.png format, creating a folder for the output in the same folder that
holds the data. Others (such as delta_t.py for collecting timestamp differences
in the given time window) save .csv or .feather files with the processed data for
easier and faster plotting.
Additionally, a standalone repo with an application for online plotting
of the sensor population can be found [here](https://github.com/rngKomorebi/LinoSPAD2-app).
## Installation and usage
A fresh, separate virtual environment is highly recommended before installing the package.
This can be done using pip, see, e.g., [this](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/).
This can help to avoid any dependency conflicts and ensure smooth operation of the
package.
First, check if the virtualenv package is installed. To do this, one can run:
```
pip show virtualenv
```
If the package was not found, it can be installed using:
```
pip install virtualenv
```
To create a new environment, run the following:
```
virtualenv PATH/TO/NEW/ENVIRONMENT
```
To activate the environment (on Windows):
```
PATH/TO/NEW/ENVIRONMENTScripts/activate
```
and on Linux:
```
source PATH/TO/NEW/ENVIRONMENTbin/activate
```
Then, package itself can be installed using pip inside the environment:
```
pip install daplis
```
Alternatively, to start using the package, one can download the whole repo. "requirements.txt"
lists all packages required for this project to run. One can create
an environment for this project either using conda or pip following the instruction
above. Once the new environmnt is activated, run the following to install
the required packages:
```
cd PATH/TO/GITHUB/CODES/daplis
pip install -r requirements.txt
```
Now, the package can be installed via
```
pip install -e .
```
where '-e' stands for editable: any changes introduced to the package will
instantly become a part of the package and can be used without the need
of reinstalling the whole thing. After that, one can import any function
from the daplis package:
```
from daplis.functions import sensor_plot, delta_t, fits
```
For conda users, the new environment can be installed using the 'requirements'
text file directly:
```
conda create --name NEW_ENVIRONMENT_NAME --file /PATH/TO/requirements.txt -c conda-forge
```
To install the package, first, switch to the created environment:
```
conda activate NEW_ENVIRONMENT_NAME
```
and run
```
pip install -e .
```
## How to contribute
This repo consists of two branches: 'main' serves as the release version
of the package, tested, proven to be functional, and ready to use, while
the 'develop' branch serves as the main hub for testing new stuff. To
contribute, the best way would be to fork the repository and use the 'develop'
branch for new introductions, submitting the results via pull requests.
Everyone willing to contribute is kindly asked to follow the
[PEP 8](https://peps.python.org/pep-0008/) and
[PEP 257](https://peps.python.org/pep-0257/) conventions.
## License and contact info
This package is available under the MIT license. See LICENSE for more
information. If you'd like to contact me, the author, feel free to
write at sergei.kulkov23@gmail.com.
Raw data
{
"_id": null,
"home_page": null,
"name": "daplis",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "timestamp, analysis, LinoSPAD2",
"author": null,
"author_email": "Sergei Kulkov <sergei.kulkov23@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f1/71/2d620820295a46931f431f48e6f6463b7c81c7bc33d5a0c7f84390017fba/daplis-1.1.0.tar.gz",
"platform": null,
"description": "## Data Analysis Package for LInoSpad (DAPLIS)\r\n\r\nPackage for unpacking and analyzing the binary data from the timestamping mode of the LinoSPAD2 detector.\r\n\r\n![Tests](https://github.com/rngKomorebi/LinoSPAD2/actions/workflows/tests.yml/badge.svg)\r\n![Documentation](https://github.com/rngKomorebi/LinoSPAD2/actions/workflows/documentation.yml/badge.svg)\r\n\r\n## Introduction\r\n\r\nThis package was written for data analysis for LinoSPAD2, mainly for\r\nanalysis of the timestamp output. The key functions are ones for\r\nunpacking the binary output of the detector that utilizes the numpy\r\nPython library for quick unpacking of .dat files to matrices,\r\ndictionaries, or data frames.\r\n\r\nThe \"functions\" folder holds all functions from unpacking to plotting\r\nnumerous types of graphs (pixel population, histograms of timestamp\r\ndifferences, etc.)\r\n\r\nThe \"params\" folder holds masks (used to mask some of the noisiest\r\npixels) and calibration data (compensating for TDC nonlinearities and\r\noffset) for LinoSPAD2 daughterboards.\r\n\r\nThe \"archive\" folder is a collection of scripts for debugging, tests,\r\nolder versions of functions, etc.\r\n\r\nThe \"examples\" folder contains a few jupyter notebooks with examples\r\non how to use the main functions, showcasing how to work with the\r\nmost important function parameters.\r\n\r\nFull documentation, including examples and full documentation of\r\nmodules and functions, can be found [here](https://rngkomorebi.github.io/daplis/).\r\n\r\nSome functions (mainly the plotting ones) save plots as pictures in the\r\n.png format, creating a folder for the output in the same folder that\r\nholds the data. Others (such as delta_t.py for collecting timestamp differences\r\nin the given time window) save .csv or .feather files with the processed data for\r\neasier and faster plotting.\r\n\r\nAdditionally, a standalone repo with an application for online plotting\r\nof the sensor population can be found [here](https://github.com/rngKomorebi/LinoSPAD2-app).\r\n\r\n## Installation and usage\r\n\r\nA fresh, separate virtual environment is highly recommended before installing the package.\r\nThis can be done using pip, see, e.g., [this](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/).\r\nThis can help to avoid any dependency conflicts and ensure smooth operation of the\r\npackage.\r\n\r\nFirst, check if the virtualenv package is installed. To do this, one can run:\r\n```\r\npip show virtualenv\r\n```\r\nIf the package was not found, it can be installed using:\r\n```\r\npip install virtualenv\r\n```\r\nTo create a new environment, run the following:\r\n```\r\nvirtualenv PATH/TO/NEW/ENVIRONMENT\r\n```\r\nTo activate the environment (on Windows):\r\n```\r\nPATH/TO/NEW/ENVIRONMENTScripts/activate\r\n```\r\nand on Linux:\r\n```\r\nsource PATH/TO/NEW/ENVIRONMENTbin/activate\r\n```\r\n\r\nThen, package itself can be installed using pip inside the environment:\r\n```\r\npip install daplis\r\n```\r\n\r\nAlternatively, to start using the package, one can download the whole repo. \"requirements.txt\" \r\nlists all packages required for this project to run. One can create \r\nan environment for this project either using conda or pip following the instruction \r\nabove. Once the new environmnt is activated, run the following to install \r\nthe required packages:\r\n```\r\ncd PATH/TO/GITHUB/CODES/daplis\r\npip install -r requirements.txt\r\n```\r\nNow, the package can be installed via\r\n```\r\npip install -e .\r\n```\r\nwhere '-e' stands for editable: any changes introduced to the package will\r\ninstantly become a part of the package and can be used without the need\r\nof reinstalling the whole thing. After that, one can import any function \r\nfrom the daplis package:\r\n```\r\nfrom daplis.functions import sensor_plot, delta_t, fits\r\n```\r\n\r\nFor conda users, the new environment can be installed using the 'requirements' \r\ntext file directly:\r\n```\r\nconda create --name NEW_ENVIRONMENT_NAME --file /PATH/TO/requirements.txt -c conda-forge\r\n```\r\nTo install the package, first, switch to the created environment:\r\n```\r\nconda activate NEW_ENVIRONMENT_NAME\r\n```\r\nand run\r\n```\r\npip install -e .\r\n```\r\n\r\n## How to contribute\r\n\r\nThis repo consists of two branches: 'main' serves as the release version\r\nof the package, tested, proven to be functional, and ready to use, while\r\nthe 'develop' branch serves as the main hub for testing new stuff. To\r\ncontribute, the best way would be to fork the repository and use the 'develop'\r\nbranch for new introductions, submitting the results via pull requests. \r\nEveryone willing to contribute is kindly asked to follow the \r\n[PEP 8](https://peps.python.org/pep-0008/) and \r\n[PEP 257](https://peps.python.org/pep-0257/) conventions.\r\n\r\n## License and contact info\r\n\r\nThis package is available under the MIT license. See LICENSE for more\r\ninformation. If you'd like to contact me, the author, feel free to\r\nwrite at sergei.kulkov23@gmail.com.\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Data Analysis Package for LInoSpad",
"version": "1.1.0",
"project_urls": {
"Homepage": "https://github.com/rngKomorebi/daplis"
},
"split_keywords": [
"timestamp",
" analysis",
" linospad2"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4c9cd8e349208d0f2833ef42a90e5f16f8266add0e019e27db18e560b4ae6c13",
"md5": "8f7f1fdf8b7c7fca9d589d3012118451",
"sha256": "12457ac40466fc06346aa77f3f16e2bb1f76fa06fe007372b1919f7a901ec370"
},
"downloads": -1,
"filename": "daplis-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f7f1fdf8b7c7fca9d589d3012118451",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 2038688,
"upload_time": "2024-12-04T15:34:27",
"upload_time_iso_8601": "2024-12-04T15:34:27.363958Z",
"url": "https://files.pythonhosted.org/packages/4c/9c/d8e349208d0f2833ef42a90e5f16f8266add0e019e27db18e560b4ae6c13/daplis-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f1712d620820295a46931f431f48e6f6463b7c81c7bc33d5a0c7f84390017fba",
"md5": "3550c0849b4341eb42ed7be0e821c6b2",
"sha256": "6c12a8b5167bbdfe378e08364bbccd15197e41dae21e177929bf9415b528514f"
},
"downloads": -1,
"filename": "daplis-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "3550c0849b4341eb42ed7be0e821c6b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 2024989,
"upload_time": "2024-12-04T15:34:30",
"upload_time_iso_8601": "2024-12-04T15:34:30.214327Z",
"url": "https://files.pythonhosted.org/packages/f1/71/2d620820295a46931f431f48e6f6463b7c81c7bc33d5a0c7f84390017fba/daplis-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-04 15:34:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rngKomorebi",
"github_project": "daplis",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "lmfit",
"specs": [
[
"==",
"1.2.2"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"==",
"3.7.2"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.25.2"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"2.0.3"
]
]
},
{
"name": "pyarrow",
"specs": [
[
"==",
"17.0.0"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.11.2"
]
]
},
{
"name": "setuptools",
"specs": [
[
">=",
"70.0"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.1"
]
]
}
],
"lcname": "daplis"
}