ALBA Eiger 模拟器
项目描述
Eiger 模拟器
Dectris Eiger 检测器模拟器。
目前模拟 Eiger 9M 在全 ROI 内部触发单模式(ints)。
完整的 HTTP REST API + ZMQ 数据流。
安装
在您喜欢的 Python 环境内
$ pip install -e eiger-simulator
如果您需要客户端库,您还需要
$ pip install -e eiger-simulator[client]
使用方法
使用以下命令运行模拟器
$ eiger-simulator --dataset=<path to the HDF5 master file> --max-memory=1_000_000_000
这将启动一个模拟器,监听 HTTP 接口在端口 8000 和 TCP 端口 9999 上的 ZMQ 流式套接字
使用 --help
查看完整选项列表
$ eiger-simulator --help
Usage: eiger-simulator [OPTIONS]
Options:
--host TEXT Bind web socket to this host. [default: 0]
--port INTEGER Bind web socket to this port. [default: 8000]
--zmq TEXT Bind ZMQ socket [default: tcp://*:9999]
--dataset PATH dataset path or file
--max-memory INTEGER max memory (bytes) [default: 1000000000]
--log-level [critical|error|warning|info|debug|trace]
Show only logs with priority LEVEL or above
[default: info]
--help Show this message and exit.
客户端
客户端作为 Python 库可访问
>>> from eigersim.client import Eiger
>>> eiger = Eiger('http://127.0.0.1:8000')
>>> eiger.initialize()
[response 200]
>>> eiger.nimages
100
>>> eiger.count_time
0.1
>>> eiger.trigger_mode
'ints'
>>> eiger.arm()
[response 200]
>>> eiger.trigger()
[response 200]
注意,您应该能够使用客户端连接到真实的 Eiger 检测器,而不仅仅是模拟器。
作为参考,这里是一个简单的客户端,它监听 ZMQ 流
>>> import zmq
>>> ctx = zmq.Context()
>>> sock = ctx.socket(zmq.PULL)
>>> sock.connect('tcp://127.0.0.1:9999')
>>> while True:
data = sock.recv_multipart()
size = sum(len(i) for i in data)
print(f'packet #parts={len(data)} size={size/1000} KB')
基准测试
基准测试结果可在 此处 获取。
项目详情
关闭
eiger-simulator-0.5.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d9d07ae00ffa1aa5d58fc6468111662ce86cf23d3192f4d8291af3a58b971584 |
|
MD5 | 255a2e7d230458f5f0b66efe6881e304 |
|
BLAKE2b-256 | f3ad6289c1c8456cdde3facb959038638715de310138cf84e21357a773995d5b |