moire_align op• Data kinds: कोई नहीं → table (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)
• Call: import fullseye as fs; fs.ledger.moire_phase_crlb(noise_sigma=0.01, amplitude=0.2, n_rows=256, n_cols=1024, p_mask_um=2.0, p_wafer_um=2.04, moving='wafer', window='hann', noisy_reference=True) (implementation को सीधे call करना हो तो import moirealign; moirealign.moire_phase_crlb(noise_sigma=0.01, amplitude=0.2, n_rows=256, n_cols=1024, p_mask_um=2.0, p_wafer_um=2.04, moving='wafer', window='hann', noisy_reference=True), registry से लेना हो तो opsoptics.get("moire_phase_crlb"))
white Gaussian noise में fringe phase और विस्थापन कितनी बारीकी से पढ़े जा सकते हैं (निचली सीमा, closed form)।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
周波数が既知の正弦 A cos(2πx/P + φ) を N = n_rows × n_cols 画素の独立な雑音 σ の中で読むとき、var(φ) ≥ 2σ² / (N A²)(Rife & Boorstyn 1974 の位相の下限)。窓 w で重みを付けたロックインは係数 k_w = n Σw² / (Σw)² だけ悪い(Hann で約 1.5)。基準像にも同じ雑音があれば位相差の分散は 2 倍。ずれの標準偏差 = σ_φ / |dφ/dδ| = σ_φ p / (2π)。差動の 2 対(各対が同じ画素数)は σ_δ,diff = √(σ_A² + σ_B²) / |g_A − g_B|。★これは雑音だけの下限。実際の位置合わせはマークの非対称・ギャップ・傾き・レジストなどの系統誤差で決まり、公表値は 10〜30 nm(Li ら 2006、Zhu ら 2013)、空間位相の干渉法で 1 nm 未満の検出能(Moon & Smith 2005)。
返り値: dict(phase_std_rad, shift_std_nm(対 A だけ)、shift_std_nm_differential、window_factor, n_pixels)。Raises ValueError: σ < 0、振幅・画素数が正でない、綴り違い、同じピッチ。
optics के सभी ops गणना से पहले input की जाँच करते हैं (कुछ भी चुपचाप पास नहीं होता):
• Unit argument के नाम में ही लिखी होती है — _mm / _um / _deg / _mrad। mm और µm की गड़बड़ी crash नहीं करती, बल्कि "सही दिखने वाला पर गलत उत्तर" देती है, इसलिए नाम से इसे रोका जाता है। मान के आकार से unit का अनुमान बिल्कुल नहीं लगाया जाता।
• String से ValueError — float('50') सफल हो जाता है, इसलिए बिना parse किया config value length के रूप में निकल जाता (मापा गया: thin_lens('50', '200') सही दिखने वाला 66.667 mm लौटा रहा था)। bool को भी True == 1 वाले implicit promotion के रूप में अस्वीकार किया जाता है।
• complex / masked array से ValueError (केवल real-valued slots; imaginary part को चुपचाप छोड़ना या mask हटाना अस्वीकार)। हर input पर NaN/Inf से ValueError।
• शून्य से भाग और उससे जुड़े मामलों को नाम लेकर अस्वीकार किया जाता है: focal length 0, radius of curvature 0, refractive index <= 0, पूरी तरह opaque aperture (सब 0, इसलिए normalisation 0/0), ऐसा PSF जिसका योग <= 0 हो, S0 = 0 वाला Stokes vector, और front focal point पर रखा object (image अनंत पर)।
• केवल 2 ops non-finite value लौटाते हैं, और वह भी contract के रूप में लिखा हुआ: depth_of_field hyperfocal distance से आगे far_mm = inf (hyperfocal distance की परिभाषा यही है) और gaussian_beam waist पर wavefront_radius_mm = inf (plane wavefront की radius of curvature)। दोनों साथ में एक finite साथी (far_is_infinite / curvature_per_mm) भी लौटाते हैं। इसके अलावा कोई भी चुपचाप आया NaN/Inf अंदर ही पकड़ा जाता है और ValueError देता है — "float64 overflow हुआ" और "उत्तर अनंत है" अलग-अलग दावे हैं, इसलिए पहले को दूसरे का चेहरा पहनाकर नहीं लौटाया जाता।
• Size की सीमा: generate होने वाले grid के लिए optics.MAX_GRID (4096), दिए गए field/PSF/aperture के लिए optics.MAX_FIELD_ELEMENTS (2^24), ABCD element chain के लिए optics.MAX_SYSTEM_ELEMENTS (1024), Zernike के लिए MAX_ZERNIKE_TERMS (512) / MAX_ZERNIKE_ORDER (40) / MAX_ZERNIKE_BASIS (2^25)। छोटे argument से बहुत बड़ा internal allocation होने वाले रास्तों (मापा गया: n_max=40 × 4096² पर 108 GB) को fail-closed ढंग से बंद किया गया है।
• भौतिक रूप से असंभव states भी अस्वीकार: degree of polarisation > 1 वाला Stokes vector, ऋणात्मक transmittance, ऋणात्मक intensity, और n-|m| odd जैसे अमान्य Zernike indices।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• poc_moire_alignment — py -3.11 examples/poc_moire_alignment.py
• poc_moire_screen — py -3.11 examples/poc_moire_screen.py
table को input के रूप में लेते हैं)abcd_matrix · wavefront_stats · sfr_from_edge · paraxial_trace · seidel_coefficients · spot_stats · tolerance_analysis · wavefront_from_opd
moire_align)moire_magnification · moire_talbot_gap · moire_overlay_image · moire_phase · moire_phase_to_shift · moire_differential_shift · moire_mark_read
*Provenance: moirealign.py — OPTICS operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.