visisipy.optiland.analysis.psf#

PSF analyses for Optiland.

Functions#

fft_psf(→ tuple[pandas.DataFrame, ...)

Calculate the FFT Point Spread Function (PSF) at the retina surface.

huygens_psf(→ tuple[pandas.DataFrame, ...)

Calculate the Huygens Point Spread Function (PSF) at the retina surface.

Module Contents#

visisipy.optiland.analysis.psf.fft_psf(backend: visisipy.optiland.OptilandBackend, field_coordinate: visisipy.types.FieldCoordinate | None = None, wavelength: float | None = None, field_type: visisipy.types.FieldType = 'angle', sampling: visisipy.types.SampleSize | str | int = 128) tuple[pandas.DataFrame, optiland.psf.VectorialFFTPSF | optiland.psf.ScalarFFTPSF]#

Calculate the FFT Point Spread Function (PSF) at the retina surface.

Parameters:
backendOptilandBackend

Reference to the Optiland backend.

field_coordinatetuple[float, float], optional

The field coordinate (x, y) in mm. If None, the first field in Optiland is used. Defaults to None.

wavelengthfloat, optional

The wavelength in μm. If None, the first wavelength in Optiland is used. Defaults to None.

field_typeLiteral[“angle”, “object_height”], optional

The field type. Either “angle” or “object_height”. Defaults to “angle”. This parameter is only used if field_coordinate is not None.

samplingSampleSize | str | int, optional

The size of the ray grid used to sample the pupil, either string (e.g. ‘32x32’) or int (e.g. 32). Defaults to 128.

Returns:
DataFrame

The PSF data as a pandas DataFrame.

VectorialFFTPSF | ScalarFFTPSF

The Optiland FFTPSF object.

visisipy.optiland.analysis.psf.huygens_psf(backend: visisipy.optiland.OptilandBackend, field_coordinate: visisipy.types.FieldCoordinate | None = None, wavelength: float | None = None, field_type: visisipy.types.FieldType = 'angle', pupil_sampling: visisipy.types.SampleSize | str | int = 128, image_sampling: visisipy.types.SampleSize | str | int = 128) tuple[pandas.DataFrame, optiland.psf.VectorialHuygensPSF | optiland.psf.ScalarHuygensPSF]#

Calculate the Huygens Point Spread Function (PSF) at the retina surface.

Parameters:
backendOptilandBackend

Reference to the Optiland backend.

field_coordinatetuple[float, float], optional

The field coordinate (x, y) in mm. If None, the first field in Optiland is used. Defaults to None.

wavelengthfloat, optional

The wavelength in μm. If None, the first wavelength in Optiland is used. Defaults to None.

field_typeLiteral[“angle”, “object_height”], optional

The field type. Either “angle” or “object_height”. Defaults to “angle”. This parameter is only used if field_coordinate is not None.

pupil_samplingSampleSize | str | int, optional

The size of the ray grid used to sample the pupil, either string (e.g. ‘32x32’) or int (e.g. 32). Defaults to 128.

image_samplingSampleSize | str | int, optional

The size of the PSF grid, either string (e.g. ‘32x32’) or int (e.g. 32). Defaults to 128.

Returns:
DataFrame

The PSF data as a pandas DataFrame.

VectorialHuygensPSF | ScalarHuygensPSF

The Optiland HuygensPSF object.