fullseye

wavefront_from_opd — OPTICS design op

使い方

OPD map → Zernike coefficients (waves) → RMS / PV / Strehl, in one call (table).

Convenience chain: :func:opd_samples → a least-squares Zernike fit on the pupil samples themselves → optics.wavefront_stats. Returns the stats dict extended with zernike ({(n, m): coef}), rms_opd_direct (RMS of the sampled OPD, independent of the fit) and pv_opd_direct.

Fixed 2026-10-14: the samples used to be burnt into an image and read back with match3d.fit_zernike, whose default pupil radius was half a pixel short and whose outer ring read the zeros outside the pupil — a synthetic Z20 + 0.5 Z40 came back as 0.903 / 0.427 and a rotationally symmetric singlet showed a spurious Z(4,4). The square grid’s in-pupil samples each stand for the same area, so a plain least-squares fit on them is the area-weighted projection.

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

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

詳しい使い方ガイド

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

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

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

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

同カテゴリ(design)

lens_system · thick_lens · glass · example_system · glass_catalog · sellmeier · paraxial_trace · seidel_coefficients


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

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