Propagation in a standard atmosphereΒΆ
[13]:
import os
os.chdir('../../../')
from rwp.environment import *
from rwp.sspade import *
from rwp.vis import *
Preparing environment
[14]:
environment = Troposphere()
environment.terrain = Terrain(ground_material=WetGround())
Preparing transmitting antenna
[15]:
antenna = GaussAntenna(freq_hz=300E6,
height=30,
beam_width=2,
elevation_angle=0,
polarz='H')
Calculating the electromagnetic field
[16]:
params = RWPSSpadeComputationalParams(
max_range_m=150E3,
max_height_m=300,
dx_m = 100, # output grid steps affects only on the resulting field, NOT the computational grid
dz_m = 1
)
field = rwp_ss_pade(antenna=antenna, env=environment, params=params)
Visualising results
[17]:
vis300mhz = FieldVisualiser(field, env=environment, label='Pade + Transparent BC: 300 MHz', x_mult=1E-3)
Two dimensional distribution of the field amplitude
[18]:
plt = vis300mhz.plot2d(min=-120, max=0)
plt.title('10log|u|')
plt.xlabel('Range (km)')
plt.ylabel('Height (m)')
plt.tight_layout()
plt.grid(True)
plt.show()

[19]:
antenna = GaussAntenna(freq_hz=3E9,
height=30,
beam_width=2,
elevation_angle=0,
polarz='H')
[20]:
field = rwp_ss_pade(antenna=antenna, env=environment, params=params)
[21]:
vis3ghz = FieldVisualiser(field, env=environment, label='Pade + Transparent BC: 3 GHz', x_mult=1E-3)
[22]:
plt = vis3ghz.plot_hor(30, vis300mhz)
plt.xlabel('Range (km)')
plt.ylabel('10log|u| (dB)')
plt.grid(True)
plt.tight_layout()
plt.show()

[23]:
plt = vis3ghz.plot2d(min=-120, max=0)
plt.title('10log|u|')
plt.xlabel('Range (km)')
plt.ylabel('Height (m)')
plt.tight_layout()
plt.grid(True)
plt.show()
