You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中编辑.clog文件绘制像素光栅图及能量直方图的方法咨询

基于Timepix探测器.clog文件的数据分析实现方案

前置准备

.clog文件可直接按纯文本格式解析,无需特殊解码,每行数据对应三个字段:像素X坐标、像素Y坐标、像素簇能量/计数值,X、Y取值范围为0~255刚好匹配256×256的探测器像素矩阵。以下方案基于Python实现,需要提前安装依赖库:
pip install numpy matplotlib h5py


一、基础数据读取处理

import numpy as np
import matplotlib.pyplot as plt

# 初始化256×256全零像素矩阵
pixel_matrix = np.zeros((256, 256), dtype=np.float32)
energy_values = []

# 读取.clog文件
with open("your_file.clog", "r") as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        x, y, val = map(float, line.split())
        # 若探测器输出为1-based坐标,需补一行转换为0-based:x = int(x)-1; y = int(y)-1
        x = int(x)
        y = int(y)
        # 同坐标下多个像素簇的数值累加
        pixel_matrix[y, x] += val
        energy_values.append(val)

注意将代码中的your_file.clog替换为本地.clog文件的实际路径


二、可视化图生成

1. 256×256光栅扫描图

plt.figure(figsize=(8, 8))
# cmap可根据需求替换为gray、jet等常用配色,origin参数根据硬件坐标习惯调整为lower/upper
plt.imshow(pixel_matrix, cmap="viridis", origin="lower")
plt.colorbar(label="累计计数/能量值")
plt.xlabel("X像素坐标")
plt.ylabel("Y像素坐标")
plt.title("Timepix探测器光栅扫描图")
plt.savefig("raster_map.png", dpi=300, bbox_inches="tight")
plt.show()

2. 能量分布直方图

plt.figure(figsize=(10, 5))
# bins参数可根据能量分辨率调整为100/500等数值
n, bins, patches = plt.hist(energy_values, bins=200, edgecolor="black")
plt.xlabel("像素簇能量值")
plt.ylabel("计数")
plt.title("像素簇能量分布直方图")
plt.grid(axis="y", alpha=0.3)
plt.savefig("energy_hist.png", dpi=300, bbox_inches="tight")
plt.show()

若需要校准能量刻度,直接将energy_values数组的所有数值乘探测器的能量校准系数即可。


三、数据格式转换与推荐

转存实现方法

转.npy格式(Python生态专用)

读写速度最快、占用空间最小,适合后续用Python做二次分析:

# 存储
np.save("pixel_matrix.npy", pixel_matrix)
np.save("energy_values.npy", np.array(energy_values))
# 读取直接调用np.load("xxx.npy")即可

转.h5格式(跨语言通用)

是高能物理、探测器领域的标准存储格式,支持Python/C++/Matlab等多语言读取,可同时存储实验参数:

import h5py
with h5py.File("timepix_data.h5", "w") as f:
    f.create_dataset("raster_map", data=pixel_matrix)
    f.create_dataset("energy_list", data=energy_values)
    # 可自定义存储实验元数据
    f.attrs["exposure_time_s"] = 10
    f.attrs["detector_threshold_kev"] = 2.0

转.csv格式(通用软件兼容)

适合用Excel、Origin等通用办公/绘图软件打开分析:

# 存储能量列表
np.savetxt("energy_values.csv", energy_values, delimiter=",", header="energy_value")
# 存储带坐标的光栅矩阵
coordinate_data = []
for y in range(256):
    for x in range(256):
        coordinate_data.append([x, y, pixel_matrix[y, x]])
np.savetxt("raster_map_with_coords.csv", coordinate_data, delimiter=",", header="x,y,value")

格式选择建议

  • 仅Python生态后续分析:优先选.npy
  • 需要跨语言、存储多组实验参数和数据:优先选.h5
  • 需要用通用办公/绘图软件打开:选.csv

内容的提问来源于stack exchange,提问作者Jacopo Altieri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 00:06:06