数据通信架构
Quatm 基于 ZeroMQ 实现进程间通信,核心组件:
| 组件 | 类 | 用途 |
|---|---|---|
| 数据客户端 | DataClient | 发送 1D 曲线数据 |
| 图像客户端 | ImageClient | 发送 2D 图像数据 |
| 命令客户端 | CommandClient | 控制驱动和进程 |
| 属性管理 | Properties | 分布式属性字典(线程安全) |
| 属性访问器 | PropertyAttribute | 将属性映射为 Python 描述符 |
实验数据发送
实验通过 DataClient 将结果推送至数据管理器:
def run(self):
result = measure_atoms()
self._dataq.send({
"atom_count": result["N"],
"temperature": result["T"],
"odt_power": self.odt_power,
})
数据管理器自动以 HDF5 格式保存,文件名包含时间戳和实验名。
内置分析模块
图像分析
| 模块 | 功能 |
|---|---|
gaussfit | 一维/二维高斯拟合 |
2D_gauss_fit | 快速二维高斯拟合(Cython 加速) |
bright_spots | 亮斑检测(离子检测) |
imagedivider | 图像分区处理 |
imageselector | ROI 区域选择 |
imageslice | 图像切片分析 |
数据处理
| 模块 | 功能 |
|---|---|
data_average | 多次测量数据平均 |
substract | 图像差分(吸收成像) |
rotate_image | 图像旋转校正 |
hot_pixel_filter | 热像素过滤 |
离子分析
| 模块 | 功能 |
|---|---|
ion_blob | 离子斑点分析 |
ion_state | 离子态判断 |
single_ion_present | 单离子检测 |
实时监视器
quatm.monitor 包提供常用设备的状态监视:
- 波长计 (
nist_wavemeter.py):实时读取波长数据 - 功率计 (
wv_pm100.py):Thorlabs 功率计读数 - 温控 (
LFI3751.py):激光器温度监视 - 示波器 (
ds1054z.py):Rigol 示波器数据采集