Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Distortion model is insufficiently flux-conserving in some cases #487

Closed
mperrin opened this issue Sep 12, 2021 · 1 comment
Closed

Distortion model is insufficiently flux-conserving in some cases #487

mperrin opened this issue Sep 12, 2021 · 1 comment

Comments

@mperrin
Copy link
Collaborator

mperrin commented Sep 12, 2021

The distortion model based on SIAF can in some cases result in PSFs with normalized intensity > 1:

fgs = webbpsf.FGS()
fgs.detector_position=(2040,2040)
psf_fgs = fgs.calc_psf(fov_pixels=101)
psf_fgs[0].data.sum(),psf_fgs[3].data.sum()

outputs:

(0.9894524802672955, 1.033390139745318)

In other words, the oversampled PSF is < 1.0 (as expected!), but the oversampled and distorted PSF now appears to have flux greater than unity. This is unphysical and must be incorrect.

It's not immediately clear how best to fix this: distortion is not strictly speaking flux conserving (since light can move in/out from the edges of the FOV). This is related to the imperfect approximation we use for this in webbpsf, applying the distortion as a model in the image plane rather than the pupil plane.

Simple workaround: check if it's > 1.0 and if so, limit the PSF intensity to 1.0?

This cases problems with some MIRAGE calculations, in particular, since MIRAGE checks the PSF grid is < 1.0 (after normalizing out by the oversampling**2, correctly)

FYI @Skyhawk172, @obi-wan76

@mperrin
Copy link
Collaborator Author

mperrin commented Dec 7, 2021

no action needed on this now in WebbPSF. Handled in MIRAGE PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant