数据分析模块

如何分析内容并根据您的需求输出需要的数据。

quatm.analysis package

Submodules

quatm.analysis.bright_spots module

Detect bright spots such as ions in an image. We use skimage.features.blob_dog for bright spot detection.

Input:

  • Imagestream

Output:

  • Imagestream:
    • np.array: Mask containing ones on the locations where the bright spots are
    • dict: N_bright the number of bright spots detected
  • Datastream:
    • bloblist: the locations of the bright spots
    • dict: N_bright the number of bright spots detected

Properties:

  • imagestreams ([str]): Input streams
  • max_sigma (float): Parameter from blob_dog
  • threshold (float): Parameter from blob_dog

Hint: Use the output stream as a mask in the image monitor.

class quatm.analysis.bright_spots.BrightSpots(name)

Bases: object

run()

quatm.analysis.bright_spots.main_run(name)

quatm.analysis.crashit module

Simulate a crashed analysis routine.

quatm.analysis.gaussfit module

Perform a 1D Gaussian fit on a dataset.

Fit function: [ f(x) = \frac{A_0}{\sqrt{2\pi}\sigma} e^{\frac{-(x-\mu)^2}{2\sigma^2}} + C ]

Output: The output is a datastream containing a dictionary with the fit results and a 2D array containing the fitted curve.

Fit parameter nomenclature:

  • A0: ( A_0 )
  • sigma: ( \sigma )
  • pos: ( \mu )
  • offset: ( C )
  • height: ( \frac{A_0}{\sqrt{2\pi}\sigma} )

In older versions some of the parameters were named differently:

  • area: ( A_0 )
  • height: ( A_0 )

Format of the input datastream: The fit can handle two types of data:

  • 1D numpy.array (data.ndim == 1): the y-values are taken from the data, and the x values are a linear spaced index from 0 to ny.
  • 2D numpy.array:
    • x = data[0]
    • y = data[1]

Properties controlling the program:

  • datastreams: list of input datastreams

class quatm.analysis.gaussfit.Gaussfit(name)

Bases: object

run()

quatm.analysis.gaussfit.main_run(name)

quatm.analysis.imagedivider module

Handle absorption imaging data. According to Beer’s Law, light travelling through an atomic cloud is attenuated by:

[ I = I_0 e^{-n(x,y)\sigma} ]

where ( I_0 ) is the intensity before the cloud (Imaging beam without atoms) and ( I ) is the attenuated intensity (Image with atoms), ( \sigma ) is the absorption cross section, and ( n(x,y) ) is the column density of the atoms. Transforming this equation allows us to determine the column density of the atoms from the import two images.

[ n(x,y) = \frac{ln(I_0/I)}{\sigma} ]

where ( \sigma ) is given by:

[ N_{atoms} = \frac{ln(I_0/I)}{\frac{\sigma_0}{1+(2\Delta/\Gamma)^2}} ]

where effscale rescales the value from atoms per ( m^2 ) to atoms per pixel.

[ \sigma_0 = \frac{\hbar\omega\Gamma}{2 I_{sat}/C_2} ]

where ( \omega ) is the angular frequency of the laser, ( \Gamma ) is the linewidth of the transition in angular frequencies, ( I_{sat} ) is the saturation intensity in SI units, and ( C_2 ) is the Clebsh-Gordon coefficient for the dipole transition.

Properties:

  • imagestreams: input datastreams
  • imageWithAtoms: index of the image containing the image data with atoms (0 being the first image in each run)
  • imageWithoutAtoms: the image containing the image without atoms
  • absorptionCrossection: defaults to ( \sigma_0 )
  • detuning_rad: detuning of the imaging laser from resonance
  • linewidth_rad: linewidth of the transition

class quatm.analysis.imagedivider.ImageSlice(name)

Bases: object

  • C_2 = 0.6666666666666666
  • gamma = 36897377.3978814
  • h_bar = 1.0545716346179718e-34
  • isat = 25.4
  • omega = 2807325165778985.0
run()
  • sig0 = 1.4335384024006802e-13

quatm.analysis.imagedivider.main_run(name)

quatm.analysis.imageselector module

Select one single image per shot from the stream using the imgindex.

Input:

  • One image stream

Output:

  • Imagestream: the selected image

Properties:

  • imagestreams: ([str]) input image streams
  • SelectedImage: (int) the number of the image to be selected counting from 0.

class quatm.analysis.imageselector.ImageSlice(name)

Bases: object

run()

quatm.analysis.imageselector.main_run(name)

quatm.analysis.imageslice module

Create linear traces and small subregions from image stream.

![Imageslice]

Input:

  • Imagestream

Output:

  • colsum_ (datastream): summation in the direction of columns (use only row that lie within the region of interest. (gray area))
  • rowsum_ (datastream): summation along rows
  • colsumcut_, rowsumcut_: use only data within the region of interest
  • colint, rowint, colintcut, rowintcut: Perform numeric integration (which means the sum is multiplied by the metric pixel size)
  • (imagestream): send the image within the ROI

Properties:

  • cutimg: (bool) send the image inside the ROI
  • colsum: send the column sum
  • rowsum: send the sum over the rows
  • colsumcut, rowsumcut: (bool) send the corresponding data restricted to the region of interest
  • colint, rowint, colintcut, rowintcut: similar to the sum version but taking into account the scale. Therefore these versions can be treated as integrals

class quatm.analysis.imageslice.ImageSlice(name)

Bases: object

run()

quatm.analysis.imageslice.main_run(name)


事件分析模块

该代码定义了一些用于计算和处理物理实验数据的函数,包括计算概率、频率和数据过滤。代码还定义了一个事件函数字典 eventfunctions,其中包含了一些预定义的函数及其相关信息。这些函数主要用于统计分析和数据处理,特别是实验中测量的原子数量和频率。

表格组件

table_parameterItemtable_parameter 类扩展了 pyqtgraph 参数树的功能,使其能够以表格形式显示和编辑 NumPy 记录数组。通过注册自定义参数类型,这些类可以轻松地集成到现有的 pyqtgraph 应用程序中,提供灵活且强大的数据编辑功能。

数据管理分析模块

这段代码实现了一个复杂的图形用户界面应用,用于科学实验数据的管理、分析和可视化。

数据流订阅管理

这段代码实现了能够动态订阅、显示和更新数据流的数据可视化界面。

数据流订阅管理

SubscriptionEditor 类提供了一个直观的界面,用户可以方便地管理数据和图像流的订阅。通过灵活的属性管理和用户交互,确保用户能够轻松地添加、删除和更新订阅,从而适应不断变化的需求和数据源。

图表动态显示器

这个脚本可以用于需要实时监控和展示数据流的应用程序,例如科学实验、工业监控和实时数据分析等。用户可以通过 GUI 配置数据流的订阅和绘图属性,实时查看和分析数据变化。

图形ROI管理器

这个类适用于需要在图形界面中显示和管理多个兴趣区域的应用程序,特别是那些需要通过中心属性类来通信和管理属性的场景。例如,科学实验中的图像处理和分析,实时监控中的区域选择和管理等。

属性编辑器

这个代码实现了一个属性编辑器 GUI,用于管理和编辑属性树。

属性更新管理器

该代码实现了一个用于检查属性更新的 GUI 应用程序。通过 PropertiesChecker 类,用户可以定期检查属性是否更新,并在属性未更新时发出警报,使用了 PyQt6 的多种控件和信号槽机制来实现用户交互和数据更新。

数据/图像分析管理器

该代码实现了一个数据/图像分析管理器,通过图形用户界面(GUI)来启动、停止和配置分析脚本。使用PyQt6库来构建界面,包括树视图、按钮、文本框和下拉菜单。代码主要包括四个类:checkableModelTreeViewWidgetaddAnalysisWidgetAnalysisManager

数据/图像分析管理器

该代码定义了一些用于拟合和分析物理实验数据的数学函数。它包括一系列函数和常量,用于描述各种物理现象,例如多项式、指数衰减、高斯分布等。这些函数可以用于数据拟合和模型化实验结果。

数据流图片流监视器

该代码使用 PyQt6 库构建了一个 GUI 应用,用于显示和编辑数据流、图像数据和相机属性。代码主要定义了一些自定义窗口小部件(widgets),包括参数显示框、图像数据框和相机属性框,并实现了上下文菜单、订阅管理和数据选择对话框等功能。

数据流图片流监视器

该代码实现了一个基于 PyQt6 的应用程序,用于订阅和显示数据流或图像流。应用程序提供了一个可滚动的绘图窗口,用户可以通过多种交互方式来管理数据源和配置绘图属性。

数据实时监视器

该模块是一个用于在科学实验中实时绘制和分析数据的 PyQt6 控件。该控件集成了 pyqtgraph 库,用于高效地绘制和更新图表。

图像查看器

该代码实现了一个基于 PyQt6 的图像查看器应用,名为 ImageWindow。这个应用包含一个中心图像显示区域和两个用于显示线图的侧边栏。用户可以通过该应用实时查看和分析图像数据,并调整图像的显示参数。

图像监视器

该代码实现了一个基于 PyQt6 的图像监控器应用,名为 ImageDisplay。这个应用能够接收并实时显示图像数据,并提供多种工具来调整和保存图像。用户可以通过该应用监控图像流,应用滤波器,调整显示参数,并保存当前图像。