Source code for linkbudget.propagation

import itur

from . import util


[docs]def atmospheric_attenuation(lat, lng, elevation, pol_skew, freq, availability, dish_size, dish_eff): """Total attenuation due to multiple sources of atmospheric attenuation A wrapper to obtain the total atmospheric attenuation through ITU-Rpy. Args: lat (float): Earth station's latitude in degrees. lng (float): Earth station's longitude in degrees. elevation (float): Elevation angle in degrees. freq (float): Carrier frequency in Hz. availability (float): Target link availability within [95 to 99.999%]. dish_size (float): Earth station's dish diameter in m. dish_eff (float): Dish aperture efficiency within [0, 1]. Returns: float: Total atmospheric attenuation in dB. """ f_ghz = freq / 1e9 unavailability = 100 - availability a_g, a_c, a_r, a_s, a_t = itur.atmospheric_attenuation_slant_path( lat, lng, f_ghz, elevation, unavailability, dish_size, eta=dish_eff, tau=pol_skew, return_contributions=True) util.log_result("Rain attenuation @ {:g}%".format(unavailability), "{:.2f}".format(a_r)) util.log_result("Cloud attenuation @ {:g}%".format(unavailability), "{:.2f}".format(a_c)) util.log_result("Gaseous attenuation @ {:g}%".format(unavailability), "{:.2f}".format(a_g)) util.log_result("Tropo. scintillation @ {:g}%".format(unavailability), "{:.2f}".format(a_s)) return a_t.value