fullseye

mtf_tangential_sagittal — OPTICS imaging op

使い方

Tangential and sagittal MTF from the 2-D transform of a point-spread function (table).

The radial average of :func:psf_to_mtf hides astigmatism and coma; a lens designer reads the two meridians separately. For a field point displaced along +y (the convention of raytrace) the tangential (meridional) MTF is the transform along y, the line through the OTF at fx = 0, and the sagittal MTF is the one along x. Each is a slice of |FFT2(PSF)| / |OTF(0)| at the exact grid frequencies k / (n * pitch) up to the Nyquist limit, with no radial binning. (By the projection-slice theorem the y slice is the transform of the line spread function that integrates the PSF across x.) tangential_axis = 'x' swaps the roles for a field along x.

Returns {"tangential": (n, 2) pairs, "sagittal": (m, 2) pairs, "nyquist_cpmm", "tangential_axis"} with frequencies in cycles per millimetre and the MTF in [0, 1]. A PSF binned onto detector pixels (psf_from_opd(pixel_pitch_um=...)) carries the pixel aperture in its MTF; a fine-grid PSF does not.

Ground truth it reproduces: the diffraction-limited circular pupil (2/pi)(arccos x - x sqrt(1 - x^2)) on both curves (:func:mtf_diffraction); the two curves are identical for a rotationally symmetric PSF on axis and separate for an astigmatic one (measured in tests/test_optdesign_psf_metrics.py).

Raises ValueError: bad psf (see :func:encircled_energy) or pixel_pitch_um; tangential_axis not 'x' or 'y'.

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

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

詳しい使い方ガイド

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

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

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

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

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

同カテゴリ(imaging)

psf_to_mtf · mtf_diffraction · encircled_energy · ensquared_energy · energy_radii · wavefront_stats · edge_spread · sfr_from_edge


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

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