20 lines
492 B
Python
20 lines
492 B
Python
from __future__ import annotations
|
|
|
|
import math
|
|
|
|
|
|
def fresnel_radius_m(d1_m: float, d2_m: float, d_total_m: float, freq_mhz: float) -> float:
|
|
if d_total_m <= 0 or freq_mhz <= 0:
|
|
return 0.0
|
|
f_ghz = freq_mhz / 1000.0
|
|
return 17.3 * math.sqrt((d1_m * d2_m) / (f_ghz * d_total_m))
|
|
|
|
|
|
def clearance_m(
|
|
los_height_m: float,
|
|
total_height_m: float,
|
|
fresnel_radius_m: float,
|
|
fresnel_factor: float,
|
|
) -> float:
|
|
return los_height_m - total_height_m - fresnel_radius_m * fresnel_factor
|