{ "info": { "author": "F.I. Pelupessy", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Physics" ], "description": "Gamma Lab\n=========\n\nPython toolkit for soundcard gamma spectroscopy.\n\n.. figure:: doc/images/am241.png\n \n Spectrum of Am-241 acquired with a CsI(Tl) scintillation detector and Gamma Lab\n\nIntroduction\n------------\n\nThis package is a Python package for the acquisition and analysis of \nsoundcard data, specifically for gamma spectroscopy kits that use a \nsoundcard as their ADC interface. It consists of independent building \nblocks (\"services\") that can be connected and reconfigured to form \ndifferent analysis pipelines. Examples of this are included in the \nrepository in the *examples* directory.\n\nPrerequisites\n-------------\n\nYou need at least:\n\n- Python 2.7 or 3.6 or later,\n- numpy\n- pyaudio\n\nand recommended is:\n\n- matplotlib\n\nInstallation\n------------\n\nEasiest is to use pip::\n\n pip install GammaLab\n\nUsage\n-----\n\nAn example application that acquires data and plots a gamma spectrum is \nincluded, you can get help::\n\n ./gammalab-histogram.py --help\n\nThis provides only a limited preview of the possibilities that the Gamma \nLab offers. You can compose your own applications, examples of this are in \nthe *examples* directory.\n\nMore details\n------------\n\nThe applications consist of components \"services\" that are connected with \n\"wires.\" For a component to be included it needs to be imported and \ninstantiated, for example you almost always need::\n\n from gammalab.acquisition import Soundcard\n soundcard=Soundcard()\n\nAfter instantiating additional components, say::\n\n from gammalab.backend import SaveRaw\n save=SaveRaw()\n\nthey need to be \"wired\"::\n\n soundcard.plugs_into(save)\n\nAt the moment, components can have one input and one output, but an output \ncan be connected to multiple components. When all components are wired, you \nstart the pipeline::\n\n main(timout=100)\n\nThe time-out is optional. The application will run until is pressed \nor until the time-out reached.\n\nThe following services are available::\n\n from gammalab.acquisition import SoundCard\n from gammalab.acquisition import Noise\n from gammalab.transform import Raw2Float\n from gammalab.transform import DownSampleMaxed\n from gammalab.transform import Identity\n from gammalab.analysis import PulseDetection\n from gammalab.analysis import Histogram\n from gammalab.analysis import Count\n from gammalab.backend import Playback\n from gammalab.backend import Monitor\n from gammalab.backend import SaveRaw\n \nNote that most of these provide rudementary implementations and are open to \nimprovement. \n\nDevelopment\n-----------\n\nIt is not difficult to program additional services.\n\nA service is a class with at least the methods: ```start`` ```stop``` and \n```close```. A service which accepts input should instantiate a \"wire\" \nclass defining its input and have connect_input and receive_input methods \n(normally taken care of by deriving from ReceivingService class). If it \ngenerates output, the service should have an output_protocol method, which \nchecks the input wire format and propagates any additional information to \nthe wire. It also needs to have some methods normally implemented by \nderiving from the SourceService class (notably the ```plugs_into``` \nmethod). \n\nServices start up a seperate thread to do their computations. This could \nalso be using some other package's thread (e.g. for soundcard acquisition \npyaudio's callback thread is used).\n\nThe simplest example of a service with input and output is the following::\n\n class Identity(ThreadService, SourceService, ReceivingService):\n def __init__(self):\n SourceService.__init__(self)\n ReceivingService.__init__(self)\n ThreadService.__init__(self)\n self.input_wire=RawWire()\n \n def output_protocol(self, wire):\n assert isinstance(wire, RawWire)\n wire.CHANNELS=self.input_wire.CHANNELS\n wire.RATE=self.input_wire.RATE\n wire.FORMAT=self.input_wire.FORMAT\n\n def process(self, data):\n return data\n\nThis service just forwards the input data (a raw byte stream) to its output.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ipelupessy/gammalab", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "GammaLab", "package_url": "https://pypi.org/project/GammaLab/", "platform": "", "project_url": "https://pypi.org/project/GammaLab/", "project_urls": { "Homepage": "https://github.com/ipelupessy/gammalab" }, "release_url": "https://pypi.org/project/GammaLab/0.2.0/", "requires_dist": null, "requires_python": ">=2.7", "summary": "Toolkit for soundcard gamma ray spectroscopy", "version": "0.2.0" }, "last_serial": 5829962, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0b08ed6b6007cd97c2e44216f9cea3b2", "sha256": "f716102c15455e7691a8698451f8337ac97f38a94b414b63ebc5153f3fa4b45c" }, "downloads": -1, "filename": "GammaLab-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0b08ed6b6007cd97c2e44216f9cea3b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 6095, "upload_time": "2019-07-22T17:30:21", "url": "https://files.pythonhosted.org/packages/22/38/a37cdef48d3eb05b25ce7faa94faa57918c2c1de41e1363d9624ed87f8e1/GammaLab-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "1118e449e75a9adca62a0320600535b8", "sha256": "62a6e504b8ad91f4985bd328b3c1975d68b1b76ac04d8d0b31e16079f2af820a" }, "downloads": -1, "filename": "GammaLab-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1118e449e75a9adca62a0320600535b8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 6071, "upload_time": "2019-07-23T20:05:30", "url": "https://files.pythonhosted.org/packages/83/df/ca4467af8db762605646746dad29282a37b0fb92ce4a3d934efc2550fb37/GammaLab-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "745301fae2cdbab3f9968903aa6a9176", "sha256": "936830007ebdd88a0e1cfc92093be828e22559ede0ad28a1f797eb352e6b6f9d" }, "downloads": -1, "filename": "GammaLab-0.1.2.tar.gz", "has_sig": false, "md5_digest": "745301fae2cdbab3f9968903aa6a9176", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 8468, "upload_time": "2019-07-26T14:32:15", "url": "https://files.pythonhosted.org/packages/51/59/75220e17715de6b8fbe585677c2f84fc833fe11b1778bb9d40a965adc027/GammaLab-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "84f482084394a094fbc652530a682a09", "sha256": "e4793e57ee9bb47a276c986f8feaeab816f481b80ac12b7c839ef725288b9d6b" }, "downloads": -1, "filename": "GammaLab-0.1.3.tar.gz", "has_sig": false, "md5_digest": "84f482084394a094fbc652530a682a09", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 8579, "upload_time": "2019-07-26T14:51:51", "url": "https://files.pythonhosted.org/packages/1b/58/3bb510d5ddb0a42694d88a4da86c3c975f96d454dccf30ae57a7e1017176/GammaLab-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "3931e535c81bfcaf8a2cb336cba8e248", "sha256": "9a835eeffa4280535d3a83a2cc7718cfd4940645b1104e5f9ea5aa5078680f8a" }, "downloads": -1, "filename": "GammaLab-0.1.4.tar.gz", "has_sig": false, "md5_digest": "3931e535c81bfcaf8a2cb336cba8e248", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 8572, "upload_time": "2019-07-27T10:52:18", "url": "https://files.pythonhosted.org/packages/22/05/8a8a15407bc50ea8bc98cc1018cec38692c8d2cd38e7fcfd0bdffe5a63ac/GammaLab-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "12f314860ca7077f93e6975f70715629", "sha256": "d6a8a9728ef84d6362c431b414c9e7ad1d5c03a4184441daca1d704c10ad62f2" }, "downloads": -1, "filename": "GammaLab-0.2.0.tar.gz", "has_sig": false, "md5_digest": "12f314860ca7077f93e6975f70715629", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 10929, "upload_time": "2019-09-14T19:18:01", "url": "https://files.pythonhosted.org/packages/b8/2f/f41d279521e12a4f3fe125548559c66868f63f1ca747246712e7bcad5978/GammaLab-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "12f314860ca7077f93e6975f70715629", "sha256": "d6a8a9728ef84d6362c431b414c9e7ad1d5c03a4184441daca1d704c10ad62f2" }, "downloads": -1, "filename": "GammaLab-0.2.0.tar.gz", "has_sig": false, "md5_digest": "12f314860ca7077f93e6975f70715629", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 10929, "upload_time": "2019-09-14T19:18:01", "url": "https://files.pythonhosted.org/packages/b8/2f/f41d279521e12a4f3fe125548559c66868f63f1ca747246712e7bcad5978/GammaLab-0.2.0.tar.gz" } ] }