pybsm.otf.functional.coherence_diameter
- pybsm.otf.functional.coherence_diameter(*, lambda0: float, z_path: ndarray, cn2: ndarray) float
Improvement / replacement for calculation of Fried’s coherence diameter (m) for spherical wave propagation.
This is an improvement / replacement for IBSM Equation 3-5: calculation of Fried’s coherence diameter (m) for spherical wave propagation. It is primarily used in calculation of the turbulence OTF. This version comes from Schmidt, “Numerical Simulation of Optical Wave Propagation with Examples in Matlab” SPIE Press (2010). In turn, Schmidt references Sasiela, “Electromagnetic Wave Propagation in Turbulence: Evaluation of Application of Mellin Transforms” SPIE Press (2007).
- Parameters:
lambda0 – wavelength (m); to save time evaluating extra integrals, calculate r0 at 1e-6 m then multiply by lambda^6/5 to scale to other wavelengths
z_path – array of samples along the path from the target (z_path = 0) to the sensor (m) – WARNING: trapz will FAIL if you give it a two-element path; use a long z_path array, even if cn2 is constant
cn2 – refractive index structure parameter values at the sample locations in z_path (m^(-2/3)); typically Cn2 is a function of height so, as an intermediate step, calculate heights at each point along z_path (see altitude_along_slant_path)
- Returns:
- r0:
correlation diameter (m) at wavelength lambda0
- Raises:
- ValueError:
if z_path is empty
- ZeroDivisionError:
if lambda0 is 0
- WARNING:
r0 can be infinite if z_path is one element or if cn2 is one element and 0.