calculate_psf#
- aiapy.psf.calculate_psf(
- channel: Unit('Angstrom'),
- *,
- use_preflightcore=False,
- diffraction_orders=None,
Calculate the composite PSF for a given channel, including diffraction and core effects.
Note
This function has been adapted from aia_calc_psf.pro.
Note
If the jax package is installed it will be used to accelerate the computation. jax can use CPUs or GPUs. See their documentation for instructions.
The point spread function (PSF) can be modeled as a 2D Gaussian function of the radial distance \(r\) from the center,
\[I(r, \theta) = I_0 \exp\left(\frac{-r^2}{2\sigma^2}\right)\]where,
\(I_0\) : the intensity of a diffraction spike
\(r\) : the radial distance from the center
\(\theta = m\lambda/d\)
\(m\) : diffraction order
\(\lambda\) : the wavelength of light
\(\sigma\) : width of Gaussian
The intensity of a particular diffraction spike, \(I_0\), is given by,
\[I_0 = \mathrm{sinc}^2\left(\frac{\theta w}{\lambda}\right)\]where,
\(w\) : the width of the mesh wires
\(d\) : spacing between two consecutive mesh wires
The PSF for a given filter can then be calculated as,
\[\mathrm{PSF} = \sum_{m=-\infty}^{+\infty}I_m(r,\theta)\]where, in practice, one can approximate the summation by simply summing over a sufficiently large number of diffraction orders. In this case, we sum from \(m=--100\) to \(m=100\).
Finally, the composite PSF of the entrance and focal plane filters is given by,
\[\mathrm{PSF}_c = \left|\mathcal{F}\left\{ \mathcal{F}\{\mathrm{PSF}_f\} \mathcal{F}\{\mathrm{PSF}_e\} \right\}\right|\]where \(\mathcal{F}\) denotes the Fourier transform, \(\mathrm{PSF}_f\) is the PSF of the focal plane filter, and \(\mathrm{PSF}_e\) is the PSF of the entrance filter. For a more detailed explanation of the PSF and the above calculation, see [1].
- Parameters:
- Returns:
The composite PSF of the entrance and focal plane filters.
- Return type:
See also
References