ZernikePSFModel#

class ctapipe.instrument.ZernikePSFModel(*args: t.Any, **kwargs: t.Any)[source]#

Bases: PSFModel

PSF model based on wavefront reconstruction using Zernike wavefront coefficients.

This model reconstructs the optical wavefront from a set of Zernike polynomial coefficients and computes the point spread function (PSF) by Fourier propagation through the telescope pupil. The resulting PSF naturally includes diffraction and wavefront aberrations and is evaluated for arbitrary field positions by allowing selected Zernike coefficients to vary with the source position in the focal plane.

The model includes:

  • Zernike polynomials in Noll indexing to describe the optical path difference (OPD) across the telescope pupil. This indexing convention maps the standard radial and azimuthal modes to a 1D sequence, matching industry standards such as Ansys Zemax.

  • Scalar Fourier optics to propagate the complex pupil field into the focal plane.

  • Polychromatic averaging over the Cherenkov emission spectrum using a configurable wavelength range and spectral weighting.

  • Optional Gaussian smoothing to approximate detector and residual instrumental broadening not explicitly included in the wavefront model.

In the current parameterization, field-dependent aberrations are represented by linear coma terms and quadratic astigmatism terms, providing a compact phenomenological description of off-axis optical degradation while retaining a physically motivated wavefront model.

Attributes Summary

cherenkov_spectrum_index

Power-law index for Cherenkov spectrum weighting (dN/dλ ∝ λ^-index)

coma_radial_growth

Radial coma growth.

focal_plane_smoothing_sigma_pix

Gaussian smoothing sigma applied to PSF intensity.

noll_max

psf_extent

Angular width of the square grid used to represent a single point source's PSF, centered on the source position.

pupil_diameter_fraction

Diameter of the telescope pupil as a fraction of the FFT grid size.

pupil_edge_softness

Width of the sigmoid taper applied to the pupil edge in normalized pupil-radius units.

pupil_size

Number of samples across the FFT grid used to discretize the pupil.

wavelength_max

Maximum wavelength for polychromatic averaging

wavelength_min

Minimum wavelength for polychromatic averaging

wavelength_samples

Number of wavelength samples for polychromatic averaging

z10

Horizontal trefoil.

z11

Spherical.

z2

Tilt X.

z3

Tilt Y.

z4

Defocus.

z5

Astigmatism 45°.

z5_theta2

Quadratic astigmatism growth.

z6

Astigmatism 0°.

z6_theta2

Quadratic astigmatism growth.

z7

Vertical Coma.

z8

Horizontal Coma.

z9

Vertical trefoil.

Methods Summary

pdf(tel_id, lon, lat, lon0, lat0)

Calculates the value of the psf at a given location.

Attributes Documentation

cherenkov_spectrum_index#

Power-law index for Cherenkov spectrum weighting (dN/dλ ∝ λ^-index)

coma_radial_growth#

Radial coma growth.

focal_plane_smoothing_sigma_pix#

Gaussian smoothing sigma applied to PSF intensity.

noll_max = 11#
psf_extent#

Angular width of the square grid used to represent a single point source’s PSF, centered on the source position. Must be large enough to contain the full extent of the PSF (including aberration tails) or normalization will be biased low; not the telescope’s camera field of view.

pupil_diameter_fraction#

Diameter of the telescope pupil as a fraction of the FFT grid size. Smaller values increase focal-plane sampling at the expense of undersampling the pupil, while larger values improve pupil sampling but reduce the field of view and sampling resolution of the computed PSF.

pupil_edge_softness#

Width of the sigmoid taper applied to the pupil edge in normalized pupil-radius units. Larger values suppress diffraction ringing but slightly blur the effective aperture.

pupil_size#

Number of samples across the FFT grid used to discretize the pupil. Larger values improve numerical accuracy and PSF sampling at the expense of increased memory usage and computation time.

wavelength_max#

Maximum wavelength for polychromatic averaging

wavelength_min#

Minimum wavelength for polychromatic averaging

wavelength_samples#

Number of wavelength samples for polychromatic averaging

z10#

Horizontal trefoil.

z11#

Spherical.

z2#

Tilt X.

z3#

Tilt Y.

z4#

Defocus.

z5#

Astigmatism 45°.

z5_theta2#

Quadratic astigmatism growth.

z6#

Astigmatism 0°.

z6_theta2#

Quadratic astigmatism growth.

z7#

Vertical Coma.

z8#

Horizontal Coma.

z9#

Vertical trefoil.

Methods Documentation

pdf(tel_id, lon, lat, lon0, lat0)[source]#

Calculates the value of the psf at a given location.

Parameters:
tel_idint

ID of the telescope for which the PSF is evaluated

lonu.Quantity[angle]

longitude coordinate of the point on the focal plane where the psf is evaluated

latu.Quantity[angle]

latitude coordinate of the point on the focal plane where the psf is evaluated

lon0u.Quantity[angle]

longitude coordinate of the point source on the focal plane

lat0u.Quantity[angle]

latitude coordinate of the point source on the focal plane

Returns
———-
psfnp.ndarray

value of the PSF at the specified location with the specified position of the point source