csi_stack_simulate — INTERFEROMETRY simulate op

• 数据种类:depth → zscan

• 调用: import fullseye as fs; fs.ledger.csi_stack_simulate(height_um, z_start_um=0.0, z_step_um=0.05, n_planes=241, wavelength_um=0.6, envelope_fwhm_um=2.8, envelope_sigma_um=None, bias=0.5, amplitude=0.4, reflectivity=None, noise=0.0, seed=0)(要直接调用实现,import interferometry; interferometry.csi_stack_simulate(height_um, z_start_um=0.0, z_step_um=0.05, n_planes=241, wavelength_um=0.6, envelope_fwhm_um=2.8, envelope_sigma_um=None, bias=0.5, amplitude=0.4, reflectivity=None, noise=0.0, seed=0);从台账取用则 opsinterferometry.get("csi_stack_simulate"))

用法

合成干涉显微镜记录的 (Z, H, W) 扫描堆栈。

> 以下的详细说明为原文 —— 摘要与标题已翻译。

The per-pixel version of csi_signal_simulate: every pixel of the *height_um* map gets its own coherence envelope centred on its own height, on a shared scan grid. The scan axis is FIRST — a stack is what a camera streams while the objective moves, one frame per plane — which is the same layout as a video (T, H, W) and *not* the (H, W, T) of a photoncount.dtof_cube_simulate histogram cube.

That resemblance to video is not cosmetic and it is measured, not assumed:

handing a translating-grating clip to csi_height_map does not raise, it returns a height map (see the type note in opsinterferometry for the numbers). The registry therefore declares a separate zscan type.

height_um: 2-D (H, W) map of true surface heights, in the scan's own

coordinate. Every height must lie inside the scan range.

reflectivity: optional (H, W) map of per-pixel fringe-amplitude scale

(>= 0). None = uniform 1. A pixel with reflectivity 0 has

no fringes at all and csi_height_map will refuse it

rather than report the first plane.

(the remaining parameters are csi_signal_simulate's, applied to every pixel; noise is sampled once for the whole stack from *seed*.)

Returns a float64 (n_planes, H, W) stack.

Ground truth: with noise=0, csi_height_map(stack, ..., mode="gaussian") returns *height_um* with an RMS error of 2.08e-06 um over a tilted plane spanning 5.0-7.0 um of a 0-12 um scan, and the per-pixel result is bit-for-bit identical to running csi_peak_position on each column separately (both pinned in the tests). Widening the same plane to 2.0-10.0 um degrades that to 7.06e-03 um — envelope truncation at the scan ends, not the estimator.

Raises ValueError: everything csi_signal_simulate raises, plus a non-2-D / empty *height_um*, a *reflectivity* that is negative or a different shape, any height outside the scan range, and a stack over MAX_STACK_ELEMENTS (n_planes*H*W grows fast — 241 planes of 256x256 is 1.9x the cap). The element cap is applied before the float64 promotion of *height_um*, not after.

详细使用指南

• coherence_scanning 族使用指南

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• coherence_scanning — py -3.11 examples/coherence_scanning.py

• poc_interferometry_step — py -3.11 examples/poc_interferometry_step.py

类型可衔接的下一个算子(可接受 zscan 作为输入)

csi_height_map · csi_contrast_map

同类别(simulate)

csi_signal_simulate · chromatic_confocal_simulate


*Provenance: interferometry.py — INTERFEROMETRY 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.