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 (PSF); for more information, see the galsim Roman documentation. The second uses the stpsf 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 stpsf. 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 stpsf, FFTs are used to do the convolution of the intrinsic source profile with the PSF and pixel grid of the instrument.

romanisim.psf Module

Roman point spread function (PSF) interface for galsim.

galsim.roman has an implementation of Roman’s point spread function (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 stpsf, 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 we can just subclass ChromaticObject and implement evaluateAtWavelength, using the _shoot code from ChromaticOpticalPSF.

Functions

get_epsf_from_crds(sca, filter_name[, date])

Retrieve EPSF reference model from CRDS

get_gridded_psf_model(psf_ref_model[, ...])

Generate the gridded PSF model from an EPSF reference model

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

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

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

Make a PSF profile for Roman at a specific detector location using CRDS reftype epsf

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

Make a PSF profile for Roman at a specific detector location using the galsim library

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

Make a PSF profile for Roman at a specific detector location using the galsim library

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

Make a PSF profile for Roman.

psf_from_grid(psfgrid[, x_0, y_0, size])

Calculate a PSF profile from a GriddedPSFModel at the specified position

psfstamp_to_galsimimange(psf, pixelscale[, ...])

Convert an STPSF/CRDS PSF profile to galsim.Image

Classes

VariablePSF(corners, psf)

Spatially variable PSF wrapping GalSim profiles.

Class Inheritance Diagram

Inheritance diagram of romanisim.psf.VariablePSF