fullseye

psf_from_opd — OPTICS imaging_sim op

使い方

Diffraction PSF of the real, aberrated pupil (image2d, sums to 1).

The pupil function P = mask · exp(i·2π·W) comes from :func:raytrace.opd_samples (W in waves on a size × size grid over the exit pupil; size=None picks a grid that keeps the phase below 0.4 waves per sample, up to :data:MAX_PUPIL_SAMPLES; an explicit size that aliases is refused). The PSF is |FFT(P)|² on a zero-padded grid whose sample spacing is λ·F#·(size−1)/M ≈ λ·F#/oversample with the working f-number F# = 1/(2·NA_image) from :func:raytrace.paraxial_trace. With pixel_pitch_um the fine PSF is area-integrated onto detector pixels of that pitch (each fine sample is binned into the pixel it falls in; the pitch must not be finer than the sample spacing).

Ground truth (tests/test_lensimage.py): an unaberrated pupil (the singlet stopped to a 1 mm semi-aperture) gives the Airy pattern — first dark ring at 1.22·λ·F# within 3 %, 83.8 % ± 1 % of the energy inside it; the f/4 singlet (11 waves of spherical aberration) has a Strehl ratio below 0.05 (peak versus the unaberrated peak of the same pupil).

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

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

詳しい使い方ガイド

背景知識ガイド(この op の手前にある物理・規約)

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

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

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

fraunhofer_pattern · pupil_psf · pupil_blur · psf_to_mtf · illumination_uniformity · render_through_lens · surface_defect · defocus_blur

同カテゴリ(imaging_sim)

distortion_map · render_through_lens · defect_dataset · calibration_views


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

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