Пример #1
0
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',
Пример #2
0
                           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 (%)')
Пример #3
0
#--------------------------------------------------------
#  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()
Пример #4
0
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()
Пример #5
0
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)')
Пример #6
0
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)')