csi_stack_simulate — INTERFEROMETRY simulate op

데이터 종류: depthzscan

호출: 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 :func: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

:func: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 :func:csi_height_map does not

raise, it returns a height map (see the type note in :mod: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 :func:csi_height_map will refuse it

rather than report the first plane.

(the remaining parameters are :func: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 :func: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 :func: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

:data: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 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

coherence_scanningpy -3.11 examples/coherence_scanning.py

타입이 이어지는 다음 연산자(zscan 를 입력으로 받는 것)

csi_height_map · csi_contrast_map

같은 카테고리(simulate)

csi_signal_simulate · chromatic_confocal_simulate


*Provenance: interferometry.py — INTERFEROMETRY 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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