fast.turbulence_models

Module Contents

fast.turbulence_models.HV57(h, w=21, A=1.7e-14)

Hufnagel Valley 5/7 Cn2 profile.

NOTE this returns Cn2 [m^-2/3], not integrated Cn2dh [m^1/3] per layer.

Params:

h (numpy.ndarray): height (m) w (float): “wind” parameter A (float): “A” parameter

Returns:

cn2 (numpy.ndarray): cn2 per layer

fast.turbulence_models.Bufton_wind(h, vg=8, vt=30, ht=9400.0, Lt=4800.0)

Bufton wind speed model.

See e.g. Roberts & Bradford, Optics Express. 19(2):820-37 [2011].

Parameters:

h (numpy.ndarray): height (m) vg (float): ground/low altitude wind speed (m/s) vt (float): tropopause wind speed (m/s) ht (float): height of tropopause Lt (float): thickness of tropopause

Returns:

wind_speed (numpy.ndarray): wind speed per layer (m/s)

fast.turbulence_models.HV57_Bufton_profile(N, w=21, A=1.7e-14, vg=8, vt=30, ht=9400.0, Lt=4800.0)

Produce a turbulence and wind profile of N layers using HV57 for Cn2 and Bufton for wind speed. First creates a high-resolution Cn2 profile then uses equivalent layers (see aotools.profile_compression.equivalent_layers) to reduce to N layers.

Params:

N (int): number of layers kwargs: keyword arguments for non-default HV57 and Bufton models

Returns:

h (numpy.ndarray): height of layers (m) cn2dh (numpy.ndarray): integrated Cn2dh per layer (m^1/3) wind (numpy.ndarray): wind speed per layer (m/s)

fast.turbulence_models.equivalent_layers(h, p, L, w=None)

STOLEN FROM AOTOOLS (https://github.com/AOtools/aotools/blob/main/aotools/turbulence/profile_compression.py) SINCE THIS FUNCTION IS NOT CURRENTLY IN LATEST AOTOOLS RELEASE 1.0.7

Equivalent layers method of profile compression (Fusco 1999). Splits the profile into L “slabs”, then sets the height of each slab as the effective height ((integral cn2(h) * h^{5/3} dh) / integral cn2(h) dh)^(3/5) and the cn2 as the sum of cn2 in that slab. Can also provide wind speed per layer, in which case the wind speeds are calculated per layer in a similar fashion ((integral cn2(h) * w^{5/3} dh) / integral cn2(h) dh)^(3/5) for wind speed w. This conserves coherence time as well as isoplanatic angle. Parameters

h (numpy.ndarray): heights of input profile layers p (numpy.ndarray): cn2dh values of input profile layers L (int): number of layers to compress down to w (numpy.ndarray, optional): wind speeds of input profile layers

Returns

h_L (numpy.ndarray): compressed profile heights cn2_L (numpy.ndarray): compressed profile cn2dh per layer w (numpy.ndarray, optional): compressed profile wind speed per layer