POPPY( Physical Optics Propagation in Python)

2018年3月14日 - 未分類

面白そうなAPIを見つけました。pythonで、フレネル回折シミュレーション(Fraunhofer and Fresnel diffraction)ができるようです。POPPYは、ジェイムズ・ウェッブ宇宙望遠鏡プロジェクトで研究されたものだそうです。

インストールは、ここを参照してください。Jupyter notebookで動作するチュートリアルが付いていました。

osys = poppy.OpticalSystem() # 開口半径(メートル単位) osys.add_pupil( poppy.CircularAperture(radius=3*u.m # スクリーン座標 arcseconds osys.add_detector(pixelscale=0.010, fov_arcsec=5.0) # 波長 2nm psf = osys.calc_psf(2e-6) poppy.display_PSF(psf, title='The Airy Function')

これだけで、エアリーディスクが計算できます。

Jupiter notebookのサンプルには、フレネル回折がありました。

50cmの光を2.5cm口径のレンズから射出して、5m先の光束断面(プロフィール)が描画されました。

wf = poppy.FresnelWavefront(0.5*u.m,wavelength=2200e-9,npix=npix,oversample=4) wf *= poppy.CircularAperture(radius=2.5*u.cm)

plt.figure(figsize=(12,5)) wf.display(‘both’,colorbar=True, showpadding=True) plt.suptitle(“Entrance Pupil”, fontsize=18)

z = 5.0*u.m wf.propagate_fresnel(z)

回折が計算できるので、非回折ビームになる条件を見つけることもできそうです。ちなみに、ガウシアンビームの場合には、ビームウエストが決まるだけで、特別な回折は起きません。

Translate »