AOtools / soapy

A Python Adaptive Optics Simulation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

"No atmosphere" Science Camera PSF does not look like Airy pattern

ClementineBechet opened this issue · comments

Dear Andrew,

I am new to use SOAPY, so first of all thank you very much for all the gresat job done inside.
I was trying to make a short introduction to SOAPY for local users (Pontificia Universidad de Chile), but I just got stucked at the very beginning. I designed a config with 8-m telescope and "no atmosphere" (hoping that r0 set to 10km would allow such approximation), no WFS, no DM. And I look at a centered Science Camera PSF. I obtain the following shape, which is not circularly symmetric.

I understand the problem may come from a wrong setting of the sampling parameters. Could you help me understand how should the configuration be set to get an Airy pattern PSF, please?
psfairywrong

Dear Clementine,

Thanks for getting in contact, I hope you're finding Soapy interesting to use. Apologies for delay in replying, I changed job last year and now don't have as much time for Soapy support as previously.

In regards to your square-ish PSF, it does look like a sampling issue. I think you probably need to make the window that you are viewing the PSF in larger, so in the config file the "pxls" in the "Science" section of the config file. In general you need to make it many times the size of the PSF so that you can sample it properly. This will slow the simulation down a bit so you may not need such fine sampling of the PSF. You can potentially reduce the "FOV" of the science image instead which has the same effect.

Finally, if you want to see the PSF without turbulence, you can initialise the science camera by itself and then just give it "blank" phase like this:

import numpy
import aotools
from soapy import SCI, confParse

config = confParse.loadSoapyConfig("<my_config_file.yaml>")
mask = aotools.circle(config.sim.pupilSize//2, config.sim.simSize) # This is a simple circular aperture

psfcam = SCI.PSF(config, mask=mask)

zero_phase = numpy.zeros((config.sim.simSize, config.sim.simSize))
psf = psfcam.frame(zero_phase)

which is a little bit quicker than having to initalise the entire simulation etc....

Hope this has been some use, please get back in touch if you have more questions!

Andrew