von_karman_psd#

@author: giuliacarla

class arte.atmo.von_karman_psd.VonKarmanPsd(fried_param, outer_scale)#

Bases: object

This class computes the spatial Power Spectral Density (PSD) of turbulent phase assuming the Von Karman spectrum. The PSD is obtained from the following expression:

\[ \begin{align}\begin{aligned}PSD(f,h) = c * r_0(h)^{-5/3} * ( f^2+ \frac{1}{L_0^2})^{-11/6}\\c = ( \frac{24}{5} \Gamma(6/5) )^{5/6} \frac{\Gamma(11/6)^2}{2 \pi^{11/3} } = 0.0228955\end{aligned}\end{align} \]
Parameters:
  • fried_param (float) – Fried parameter characterizing the atmospheric turbulence [m].

  • outer_scale (float) – Outer scale of the atmospheric turbulence [m].

Example

Compute the total variance of Kolmogorov over a 10m telescope and compare variance [rad2] with Noll(‘76): \(\Delta_1= 1.029 (D/r_0)^{5/3}\)

>>> R = 5
>>> r0 = 0.1
>>> L0 = np.inf
>>> psd = von_karman_psd.VonKarmanPsd(r0, L0)
>>> freqs = np.logspace(-8, 4, 1000)
>>> bess = scipy.special.jv(1, 2*np.pi*R*freqs)
>>> psdPistonRem = psd.spatial_psd(freqs) * (1 - (bess/(np.pi*R*freqs))**2)
>>> varInRad2 = np.trapezoid(psdPistonRem*2*np.pi*freqs, freqs)
>>> varInRad2Noll = 1.029*(2*R/r0)**(5./3)
>>> print("%g %g" % (varInRad2, varInRad2Noll))
2214.36 2216.91

or use shortcut function von_karman_psd.rms()

Methods

spatial_psd(freqs)

Spatial Power Spectral Density of Von Karman turbulence

plot_von_karman_psd_vs_frequency

NUM_CONST = 0.02289558710855519#
plot_von_karman_psd_vs_frequency(freqs, idx=None)#
spatial_psd(freqs)#

Spatial Power Spectral Density of Von Karman turbulence

Parameters:

freqs (ndarray) – Spatial frequencies vector[m^-1].

Returns:

psd – power spectral density computed at the specified frequencies

Return type:

ndarray

arte.atmo.von_karman_psd.rms(diameter: Unit('m'), wavelength: Unit('nm'), fried_param: Unit('m'), outer_scale: Unit('m'), freqs=None)#

Von Karman wavefront rms value over a circular aperture

Parameters:
  • diameter (Quantity equivalent to meter) – Aperture diameter

  • wavelength (Quantity equivalent to nanometer) – wavelength

  • fried_param (Quantity equivalent to meter) – Fried parameter r0 defined at the specified wavelength

  • outer_scale (Quantity equivalent to meter) – Outer scale L0. Use np.inf for Kolmogorov spectrum

  • freqs (array of Quantity equivalent to 1/meter) – spatial frequencies array. Default logspace(-8, 4, 1000) m^-1

Returns:

rms – wavefront rms for the specified von Karman turbulence

Return type:

Quantity equivalent to nm