声卡伽马能谱工具包

GammaLab的Python项目详细描述


用于声卡伽玛能谱的python工具包。

简介

这个包是一个python包,用于获取和分析 声卡数据,特别是使用 声卡作为他们的ADC接口。它由独立的建筑物组成 可以连接和重新配置以形成 不同的分析管道。示例包括在 存储库位于examples目录中。

先决条件

您至少需要:

  • python 2.7或3.6或更高版本,
  • 努比
  • pyaudio

建议是:

  • matplotlib

安装

最简单的方法是使用pip:

pip install GammaLab

用法

获取数据并绘制伽马能谱的示例应用程序是 包括,您可以获得帮助:

./gammalab-histogram.py --help

这只提供了gamma 实验室提供。您可以编写自己的应用程序,示例如下 examples目录。

更多详细信息

应用程序由与 “电线”。要包含一个组件,它需要导入 实例化,例如,您几乎总是需要:

from gammalab.acquisition import Soundcard
soundcard=Soundcard()

在实例化其他组件之后,说:

from gammalab.backend import SaveRaw
save=SaveRaw()

它们需要“有线”:

soundcard.plugs_into(save)

目前,组件可以有一个输入和一个输出,但是有一个输出 可以连接到多个组件。当所有组件都连接好后, 启动管道:

main(timout=100)

超时是可选的。应用程序将一直运行,直到按下<;enter>;。 或者直到超时为止。

提供以下服务:

from gammalab.acquisition import SoundCard
from gammalab.acquisition import Noise
from gammalab.transform import Raw2Float
from gammalab.transform import DownSampleMaxed
from gammalab.transform import Identity
from gammalab.analysis import PulseDetection
from gammalab.analysis import Histogram
from gammalab.analysis import Count
from gammalab.backend import Playback
from gammalab.backend import Monitor
from gammalab.backend import SaveRaw

注意,其中大多数都提供了基本的实现,并且对 改进。

开发

对附加服务进行编程并不困难。

服务是至少具有以下方法的类:`start`stop``close`。接受输入的服务应该实例化“wire” 类定义其输入,并具有connect-input和receive-input方法 (通常通过从ReceivingService类派生来处理)。如果它 生成输出,服务应该有一个output_protocol方法,该方法 检查输入导线格式并将任何附加信息传播到 电线。它还需要一些通常由 从sourceservice类(特别是^{tt4})派生$ 方法)。

服务启动一个单独的线程来进行计算。这可能 也可以使用其他包的线程(例如,用于声卡采集 使用pyaudio的回调线程)。

具有输入和输出的服务的最简单示例如下:

class Identity(ThreadService, SourceService, ReceivingService):
    def __init__(self):
       SourceService.__init__(self)
       ReceivingService.__init__(self)
       ThreadService.__init__(self)
       self.input_wire=RawWire()

   def output_protocol(self, wire):
       assert isinstance(wire, RawWire)
       wire.CHANNELS=self.input_wire.CHANNELS
       wire.RATE=self.input_wire.RATE
       wire.FORMAT=self.input_wire.FORMAT

    def process(self, data):
       return data

此服务只将输入数据(原始字节流)转发到其输出。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Jetty是否有请求缓存?   数组中的java 2值与我的数据帧中的2列对应   对象序列化期间的java DbUtils类型转换问题   java根面板中不显示所有单独的面板   java通过代理或SSH隧道连接Hbase API   java困惑:与经典MVC控制器相比,JSF2中bean的角色   java在我的Triangle类中“找不到符号错误”   java在Android中设置从路径到自定义按钮的图像   java不绕轨道旋转椭圆   AES在socket上搞砸了序列化/反序列化。无效的流标头。JAVA   java在数组中搜索term和if语句   线程“main”java中出现异常。util。正则表达式。PatternSyntaxException:在索引0附近悬挂元字符“*”*   Websphere上的java Google反射无法打开url连接   java为什么inc/dec频道什么都不做?   java KeyListener无法访问keyPressed方法