KolmogorovWFE
- class poppy.KolmogorovWFE(name='Kolmogorov WFE', r0=None, Cn2=None, dz=None, inner_scale=None, outer_scale=None, kind='Kolmogorov', seed=None, **kwargs)[source]
Bases:
WavefrontError
A turbulent phase screen.
This is an implementation of a turbulent phase screen as by the Kolmogorov theory of turbulence.
- Parameters:
- r0astropy.quantity
Fried parameter (m).
- Cn2astropy.quantity
Index-of-refraction structure constant (m^{-2/3}).
- dzastropy.quantity
Propagation distance (m).
- inner_scaleastropy.quantity
Inner scale of the turbulence (m). The inner scale affects the calculation results if kind = ‘von Karman’, ‘Tatarski’, or ‘Hill’.
- outer_scaleastropy.quantity
Outer scale of the turbulence (m). The outer scale only affects the calculation results if kind=’von Karman’.
- kindstring
Kind of the spatial power spectrum. Must be one of ‘Kolmogorov’, ‘Tatarski’, ‘von Karman’, ‘Hill’.
- seedinteger
Seed for the random number generator when creating the phase screen. This can be helpful when multiple fields (for example different modes) should propagate through an identical atmosphere.
References
For a general overview of the Kolmogorov theory, read L. C. Andrews and R. L. Phillips, Laser Beam Propagation Through Random Media, 2nd ed. (Society of Photo Optical, 2005).
Other relevant references are mentioned in the respective functions.
Methods Summary
get_Cn2
(wavelength)Returns the index-of-refraction structure constant (m^-2/3).
get_opd
(wave)Returns an optical path difference for a turbulent phase screen.
power_spectrum
(wave[, kind])Returns the spatial power spectrum.
rand_symmetrized
(npix, sign)Returns a real-valued random number array of shape (npix, npix) with the symmetry required for a turbulent phase screen.
rand_turbulent
(npix)Returns a complex-valued random number array of shape (npix, npix) with the symmetry required for a turbulent phase screen.
Methods Documentation
- get_Cn2(wavelength)[source]
Returns the index-of-refraction structure constant (m^-2/3).
- Parameters:
- wavelengthfloat
The wavelength (m).
References
B. J. Herman and L. A. Strugala, in Proc. SPIE, edited by P. B. Ulrich and L. E. Wilson (International Society for Optics and Photonics, 1990), pp. 183–192.
- get_opd(wave)[source]
Returns an optical path difference for a turbulent phase screen.
- Parameters:
- wavewavefront object
Wavefront to calculate the phase screen for.
References
Fleck Jr, J. R. Morris, and M. D. Feit, Appl. Phys. 10, 129 (1976).
E. M. Johansson and D. T. Gavel, in Proc. SPIE, edited by J. B. Breckinridge (International Society for Optics and Photonics, 1994), pp. 372–383.
B. J. Herman and L. A. Strugala, in Proc. SPIE, edited by P. B. Ulrich and L. E. Wilson (International Society for Optics and Photonics, 1990), pp. 183–192.
Gbur, J. Opt. Soc. Am. A 31, 2038 (2014).
Knepp, Proc. IEEE 71, 722 (1983).
- power_spectrum(wave, kind='Kolmogorov')[source]
Returns the spatial power spectrum.
- Parameters:
- wavewavefront object
Wavefront to calculate the power spectrum for.
- kindstring
The type of the power spectrum, must be one of ‘Kolmogorov’, ‘Tatarski’, ‘von Karman’, ‘Hill’.
References
Gbur, J. Opt. Soc. Am. A 31, 2038 (2014).
Frehlich, Appl. Opt. 39, 393 (2000).
- rand_symmetrized(npix, sign)[source]
Returns a real-valued random number array of shape (npix, npix) with the symmetry required for a turbulent phase screen.
- Parameters:
- npixint
Number of pixels.
- signint
Sign of mirror symmetry. Must be either +1 or -1.
References
Eq. (65) in J. A. Fleck Jr, J. R. Morris, and M. D. Feit, Appl. Phys. 10, 129 (1976).