-
Notifications
You must be signed in to change notification settings - Fork 41
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
Help request: interpreting PSF #135
Comments
@mperrin can probably explain better, but I believe what you're seeing is a consequence of the implicit repetition of the pupil array in the transform step... In practice this isn't usually an issue, because the flux in the PSF beyond a couple arcseconds is much less than one percent, so it's sufficient to compute a smaller array of pixels (and place them in a larger array of zeros as part of building up a simulated image) |
There are a couple things going on here:
All that said, your proposed system is significantly undersampled spatially. For a 50 mm lens the theoretical diffraction limited PSF is just a few arcseconds at visible wavelengths. It's at least an order of magnitude better than your stated 70 arcsec/pixel sampling. So the kinds of fine diffractive structure that poppy is designed to model will not be easily seen in your instrument. Furthermore, remember that poppy is just modeling the effects of diffraction, based on the input parameters describing an optical system. In your case with a simple circular pupil that will just give an Airy function, without any need for numerical calculations of a more complex PSF. More to the point, your instrument is not going to have diffraction limited optical performance with only a single lens. It takes multiple powered surfaces to get near diffraction limited performance over an extended field, particularly for anything as large as 20 degrees across. Depending on your application, you're likely in a regime dominated by geometric optics rather than diffraction. Your given parameters (50 mm focal length, 25 mm aperture diameter) are in the realm of commercial camera lenses, but even those don't give nearly diffraction limited performance over such a wide field. See for instance this Nikon 50 mm f/1.8 lens: http://imaging.nikon.com/lineup/lens/singlefocal/normal/af-s_50mmf_18g/ |
THanks for you detailed response. I kept my original question short I'm familiar with the DFT and issues of aliasing, sampling, periodicity, The single lens would be just for simplicity during my learning curve. I I have just noticed that the git repository has a much-updated version In the meantime, as a potential alternative, I'm implementing the I'm sorry but appreciative that my spartan question lead you to reply in On Wed, Nov 25, 2015 at 1:21 PM, Marshall Perrin notifications@github.com
Dr. Gary Pajer |
Two more comments. Context: the star camera will (hopefully) be installed on satellites, and Input pupil sampling: I saw the docstring mention of oversampling as a On Wed, Nov 25, 2015 at 4:52 PM, Gary Pajer gpajer@psatellite.com wrote:
Dr. Gary Pajer |
Having given this some thought, I think I could make progress if I can understand how/where the sampling of the pupil is set. Before dealing with oversampling, I'd like to figure out how to have my pupil plane and detector plane have the same size arrays. I'm most familiar with the DFT when the direct space and transform space are the same size. |
Hi @gapster First let me apologize for not responding back in December - as you can imagine that was a busy time of year for a lot of reasons! Please let me know if you are still having questions with this and I will work to help get them cleared up. The default pupil sampling is set in a non-obvious way: either it's hard coded as 1024, or else if the first optic in the OpticalSystem has a specified shape that is used instead. In your example code above the CircularAperture doesn't have a specific size, so the 1024 is used. This is in OpticalSystem.inputWavefront(). The Fresnel Optical System class is better since it has an npix parameter in the optical system constructor. We should move that to the Fraunhofer code too. |
Thanks Marshall, I still do have questions, but this is now on the "side burner" (not quite I hope to get back to Poppy before too long, but that time is not now. On Thu, Jan 21, 2016 at 2:05 PM, Marshall Perrin notifications@github.com
Dr. Gary Pajer |
Sorry for putting a help request here. If there's a better way to do this, let me know. I'll be brief, hopefully not too brief.
I'm exploring POPPY for use modeling a star camera. The model camera lens has a diameter of 25 mm, focal length 50 mm, 20 deg FOV, with a focal plane array having pixel pitch 13 microns, 1024 x 1024. This results in a pixel scale of about 70 arcsec/pixel and the focal plane array/camera produces an image that's roughly 70 arcsec/pixel, with 1024 pixels across.
I set up a simple optical system,
and produce a psf
and extract the data
I expected a 1024 x 1024 array with a psf in the center. Instead I get a 2048 x 2048 array containing many peaks: 23 x 23 of them. Evidently I don't understand something essential about how poppy samples and does Fourier Transforms. Of course, I'm interested in the details of the psf, not the complete image, but I think I need to understand what poppy is doing. I have many questions, but perhaps just a pointer in the right direction will be all that I need. Thanks.
The text was updated successfully, but these errors were encountered: