fullseye

grating_three_image_retrieve — OPTICS grating_interf op

使い方

位相ステップの 2 組(試料あり・試料なし)から、透過・微分位相・暗視野の 3 枚を分ける。

各画素で I_k = a·(1 + V·cos(φ − 2πk/P)) をあて(P = 1 周期のステップ数。None は N 等分)、 透過 T = a_s/a_r、微分位相 φ = wrap(φ_s − φ_r)、暗視野 D = V_s/V_r を返す(Pfeiffer ら 2008, Nature Materials 7, 134 の定義)。P = N のときは fringe.wrapped_phase と fringe.modulation (N 段の位相シフトの標準式)をそのまま使い、P ≠ N(1 周期の両端を含む走査など)は 3 項の最小二乗。 2 組のステップ数は違ってよい(各組を別々にあてる)。

reference_stack が None なら、試料の画像列だけから a・V・φ を返す(比は取らない)。 distance_mm と analyzer_period_um を渡すと、屈折角 α = φ·p2/(2π d) [µrad] も返す。 reference_exposure: 基準を試料の何倍の露光(1 枚あたりの光子数)で撮ったか。透過は a_s/(a_r/reference_exposure)。 暗視野と微分位相は比と差なので露光に依らない(透過だけが露光の比で化ける)。 min_visibility: 基準の可視度がこれ未満の画素(格子の欠陥・影)は位相が決まらないので NaN にし、数を返す。 全画素が NaN になるときは値を返さずに拒否する。

返り値 dict: transmission / dpc_rad / darkfield(いずれも (H, W)、無効画素は NaN)/ visibility_sample / visibility_reference / refraction_urad(幾何があるとき)/ fit_residual_sample / fit_residual_reference(正弦をあてた残差の RMS / 平均の中央値。 1 周期のステップ数を間違えると大きくなる)/ n_invalid。 Raises ValueError: 画像列が 3-D でない・3 枚未満・NaN/Inf、2 組の画素の形が違う、P ≤ 0、 P が小さすぎて正弦が分けられない、有効な画素が 1 つも無い、幾何の片方だけ、正でない reference_exposure。

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(table を入力に取れる)

abcd_matrix · wavefront_stats · sfr_from_edge · paraxial_trace · seidel_coefficients · spot_stats · tolerance_analysis · wavefront_from_opd

同カテゴリ(grating_interf)

talbot_grating_design · grating_stepping_simulate · darkfield_scatter_relation · talbot_carpet · talbot_source_visibility · grating_step_period_estimate · dpc_integrate


Provenance: gratinginterf.py — OPTICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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