Ts = 1 # Ts : sampling Ns = int(D / (Ts**2)) # number of samples print('Ground station locations:\t\t', cities) print('Elevation angle:\t\t',el,'°') print('Frequency:\t\t\t',f) print('Polarization tilt:\t\t',tau,'°') print('Sampling Duration:\t\t',D/(24*3600),'days') #-------------------------------------------------------- # rain attenuation time series synthesis by ITU-R P.1853-2 #-------------------------------------------------------- ts_rain = rain_attenuation_synthesis(lat, lon, f, el,\ tau, Ns, Ts=Ts).value stat_lln = ccdf(ts_rain[0,:], bins=300) # calculate the statistical of rain attenuation at Louvain-La-Neuve stat_gnv = ccdf(ts_rain[1,:], bins=300) # calculate the statistical of rain attenuation at Geneva plt.figure() plt.plot(stat_lln.get('ccdf'), stat_lln.get('bin_edges')[1:],\ lw=2, label='Louvain-La-Neuve') plt.plot(stat_gnv.get('ccdf'), stat_gnv.get('bin_edges')[1:],\ lw=2, label='Geneva') plt.xlim((10**-3.5, 15)) plt.xscale('log') plt.xlabel('Time percentage (%)') plt.ylabel('Rain attenuation CCDF (dB)') plt.title('ITU-R P.1853-2, Rain Attenuation with Multi-Site Configuration') plt.legend() plt.grid(which='both', linestyle=':', color='gray',
rcond=None)[0] #-------------------------------------------------------- # rain attenuation by ITU-R P.618 and log_normal distribution #-------------------------------------------------------- P = np.array([0.001, 0.002, 0.003, 0.005, 0.01, 0.02, 0.03, 0.05, 0.1,\ 0.2, 0.3, 0.5, 1, 2, 3, 5]) A_rain = np.zeros_like(P) for ii, p in enumerate(P): A_rain[ii] = rain_attenuation(lat, lon, f, el, p, tau).value A_rain_log = np.exp(m + sigma * scipy.stats.norm.ppf(1 - (P / 100))) #-------------------------------------------------------- # calculating the ccdf of rain attenuation time_series #-------------------------------------------------------- stat = ccdf(ts_rain, bins=300) #-------------------------------------------------------- # ploting the results #-------------------------------------------------------- plt.figure() plt.plot(P, A_rain, '-b', lw=2, label='ITU-R P.618') plt.plot(P, A_rain_log, '-y', lw=2, label='Log Normal') plt.plot(stat.get('ccdf'), stat.get('bin_edges')[1:], '-r', lw=2, label='ITU-R P.1853') plt.xlim((10**-3.5, 5)) plt.xscale('log') plt.xlabel('Time percentage (%)')
#-------------------------------------------------------- # rain attenuation time series synthesis by ITU-R P.1853-2 #-------------------------------------------------------- ts_rain_v2 = rain_attenuation_synthesis(lat, lon, f, el,\ tau, Ns, Ts=Ts).value iturpropag.models.iturp1853.__version.change_version( 1) # change the vesrion of ITU-R P.1853-2 to ITU-R P.1853-1 ts_rain_v1 = rain_attenuation_synthesis(lat, lon, f, el,\ tau, Ns, Ts=Ts).value stat_v1 = ccdf( ts_rain_v1, bins=300 ) # calculate the statistical of rain attenuation at Louvain-La-Neuve stat_v2 = ccdf(ts_rain_v2, bins=300) plt.figure() plt.plot(stat_v1.get('ccdf'), stat_v1.get('bin_edges')[1:],\ lw=2, label='ITU-R P.1853-1') plt.plot(stat_v2.get('ccdf'), stat_v2.get('bin_edges')[1:],\ lw=2, label='ITU-R P.1853-2') plt.xlim((10**-3.5, 15)) plt.xscale('log') plt.xlabel('Time percentage (%)') plt.ylabel('Rain attenuation CCDF (dB)') plt.title('Rain Attenuation statistics at Louvain-La-Neuve') plt.legend()
eta = [0.6, 0.6] # Antenna efficiency Dia = [1, 1] # Antenna Diameter [m] print('Ground station locations:\t\t', cities) print('Elevation angle:\t\t', el, '°') print('Frequency:\t\t\t', f) print('Polarization tilt:\t\t', tau, '°') print('Sampling Duration:\t\t', D / (24 * 3600), 'days') #-------------------------------------------------------- # total attenuation time series synthesis by ITU-R P.1853-2 #-------------------------------------------------------- time_series = total_attenuation_synthesis(lat, lon, f, el,\ 0.1, Dia, Ns, tau, eta, Ts=Ts).value stat_lln = ccdf(time_series[0, :], bins=300) stat_gnv = ccdf(time_series[1, :], bins=300) plt.plot(stat_lln.get('ccdf'), stat_lln.get('bin_edges')[1:],\ lw=2, label='Louvain-La-Neuve') plt.plot(stat_gnv.get('ccdf'), stat_gnv.get('bin_edges')[1:],\ lw=2, label='Geneva') plt.xlim((10**-3.5, 100)) plt.xscale('log') plt.xlabel('Time percentage (%)') plt.ylabel('Total attenuation CCDF (dB)') plt.title('ITU-R P.1853-2 Total Attenuation - Multi-Site Configuration') plt.legend() plt.grid(which='both', linestyle=':', color='gray', linewidth=0.3, alpha=0.5) plt.tight_layout()
print('Polarization tilt:\t\t',tau,'°') print('Sampling Duration:\t\t',D/(24*3600),'days') #-------------------------------------------------------- # cloud attenuation time series synthesis by ITU-R P.1853-2 #-------------------------------------------------------- ts_cloud_v2 = cloud_attenuation_synthesis(lat, lon, f, el,\ Ns, Ts=Ts).value iturpropag.models.iturp1853.__version.change_version(1) # change the version of ITU-R P.1853-2 to ITU-R P.1853-1 ts_cloud_v1 = cloud_attenuation_synthesis(lat[0], lon[0], f[0], el[0],\ Ns, Ts=Ts).value stat_v1 = ccdf(ts_cloud_v1, bins=300) stat_v2_lln = ccdf(ts_cloud_v2[0,:], bins=300) stat_v2_gnv = ccdf(ts_cloud_v2[1,:], bins=300) plt.figure() plt.plot(stat_v1.get('ccdf'), stat_v1.get('bin_edges')[1:],\ lw=2, label='ITU-R P.1853-1 - LLN') plt.plot(stat_v2_lln.get('ccdf'), stat_v2_lln.get('bin_edges')[1:],\ lw=2, label='ITU-R P.1853-2 - LLN') plt.plot(stat_v2_gnv.get('ccdf'), stat_v2_gnv.get('bin_edges')[1:],\ lw=2, label='ITU-R P.1853-2 - Geneva') plt.xlim((10**-3.5, 15)) plt.xscale('log') plt.xlabel('Time percentage (%)') plt.ylabel('Cloud attenuation CCDF (dB)')
Ns = int(D / (Ts**2)) # number of samples eta = [0.6] # Antenna efficiency Dia = [1] # Antenna Diameter [m] print('Ground station locations:\t\t', cities) print('Elevation angle:\t\t', el, '°') print('Frequency:\t\t\t', f) print('Polarization tilt:\t\t', tau, '°') print('Sampling Duration:\t\t', D / (24 * 3600), 'days') #-------------------------------------------------------- # total attenuation time series synthesis by ITU-R P.1853-1/2 #-------------------------------------------------------- time_series = total_attenuation_synthesis(lat, lon, f, el,\ 0.1, Dia, Ns, tau, eta, Ts=Ts).value stat_2 = ccdf(time_series, bins=300) version.change_version(1) time_series = total_attenuation_synthesis(lat, lon, f, el,\ 0.1, Dia, Ns, tau, eta, Ts=Ts).value stat_1 = ccdf(time_series, bins=300) plt.plot(stat_1.get('ccdf'), stat_1.get('bin_edges')[1:],\ lw=2, label='ITU-R P.1853-1') plt.plot(stat_2.get('ccdf'), stat_2.get('bin_edges')[1:],\ lw=2, label='ITU-R P.1853-2') plt.xlim((10**-3.5, 100)) plt.xscale('log') plt.xlabel('Time percentage (%)') plt.ylabel('Total attenuation CCDF (dB)')