Split Transform Method

In this example we will demonstrate the split transform method for analyzing the imaging performance of a mirror. We begin as usual by importing the relevant classes.

from prysm import Interferogram, Pupil, PSF, sample_files

from matplotlib import pyplot as plt
%matplotlib inline
p = sample_files('dat')  # sample Zygo .dat file, will be downloaded on demand and saved locally
i = Interferogram.from_zygo_dat(p)
i.crop().mask('circle', 40).crop()
i.plot2d(clim=100, interp_method=None)  # verify the phase looks OK

If you are dissatisfied with the masking prowess of prysm, it is recommended to use the software that came with your interferometer. The order of operations from here is very important. Because prysm modifies these classes in-place, we should propagate the PSF before filling the interferogram for PSF analysis.

pu = Pupil.from_interferogram(i)
psf = PSF.from_pupil(pu, efl=200, Q=2)  # F/2
<prysm.interferogram.Interferogram at 0x7f8dbd6f4da0>

We can then plot,

fig, ax = plt.subplots()
i.plot_psd_slices(fig=fig, ax=ax, mode='period', xlim=(25, 0.25), lw=2)
fig, ax = plt.subplots()
# bicubic is highly recommended when the view is small with many pixels
psf.plot2d(axlim=psf.support / 2,
           fig=fig, ax=ax)