Point Spread Function Modeling

The simulator has two mechanisms for point source modeling. The first uses the galsim implementation of the Roman point spread function; for more information, see the galsim Roman documentation. The second uses the webbpsf package to make a model of the Roman PSF.

In the current implementation, the simulator uses a linearly varying, achromatic bandpass for each filter when using webbpsf. That is, the PSF does not vary depending on the spectrum of the source being rendered. However, it seems straightforward to implement either of these modes in the context of galsim, albeit at some computational expense.

When using the galsim PSF, galsim’s “photon shooting” mode is used for efficient rendering of chromatic sources. When using webbpsf, FFTs are used to to do the convolution of the intrinsic source profile with the PSF and pixel grid of the instrument.

romanisim.psf Module

Roman PSF interface for galsim.

galsim.roman has an implementation of Roman’s PSF based on the aperture and some estimates for the wavefront errors over the aperture as described by amplitudes of various Zernicke modes. This seems like a very good approach, but we want to add here a mode using the official PSFs coming out of webbpsf, which takes a very similar overall approach.

galsim’s InterpolatedImage class makes this straightforward. Future work should consider the following:

  • how do we want to deal with the dependence of the PSF on the source SED? It’s possible I can just subclass ChromaticObject and implement evaluateAtWavelength, possibly also stealing the _shoot code from ChromaticOpticalPSF?

Functions

make_one_psf(sca, filter_name[, wcs, ...])

Make a PSF profile for Roman at a specific detector location.

make_psf(sca, filter_name[, wcs, webbpsf, ...])

Make a PSF profile for Roman.

Classes

VariablePSF(corners, psf)

Spatially variable PSF wrapping GalSim profiles.

Class Inheritance Diagram

Inheritance diagram of romanisim.psf.VariablePSF