/Py1546

Python Implementation of Recommendation ITU-R P.1546

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Python Implementation of Recommendation ITU-R P.1546-6

This code repository contains a python software implementation of Recommendation ITU-R P.1546-6 with a method for point-to-area predictions for terrestrial services in the frequency range 30 MHz to 4000 MHz.

This version of the code corresponds to the reference version of the code approved by ITU-R Working Party 3K and published on ITU-R SG 3 Software, Data, and Validation Web Page as digital supplement to Recommendation ITU-R P.1546.

The package can be downloaded and installed using:

python -m pip install "git+https://github.com/eeveetza/Py1546/#egg=Py1546"   

and imported as follows

from Py1546 import P1546
File/Folder Description
/src/Py1546/P1546.py python implementation of Recommendation ITU-R P.1546-6
/tests/validateP1546.py python script used to validate the implementation of Recommendation ITU-R P.1546-6 in P1546.bt_loss()
/tests/validation_profiles/ Folder containing a proposed set of terrain profiles and inputs for validation of MATLAB implementation (or any other software implementation) of this Recommendation
/tests/validation_results/ Folder containing all the results written during the transmission loss computations for the set of terrain profiles defined in the folder ./validation_profiles/

Function Call

The function P1546.bt_loss can be called

  1. by invoking only the first nine required input arguments:
E, Lb = P1546.bt_loss(f,t,heff,h2,R2,area,d_v,path_c,pathinfo);
  1. by explicitly invoking all the input arguments:
E, Lb = P1546.bt_loss(f,t,heff,h2,R2,area,d_v,path_c,pathinfo, \
                         q,wa,PTx,ha,hb,R1,tca,htter,hrter,eff1,eff2,debug,fidlog)
  1. or by explicitly omitting some of the optional input arguments:
Ep, Lb = P1546.bt_loss(f,t,heff,h2,R2,area,d_v,path_c,pathinfo, \
                       q,wa,PTx,[],[],[],[],[],[],[],[],debug,fidlog)

Required input arguments of function P1546.bt_loss

Variable Type Units Limits Description
f scalar double MHz 30 ≤ f ≤ 4000 Frequency
t scalar double % 1 ≤ p ≤ 50 Time percentage for which the calculated basic transmission loss is not exceeded
heff scalar double m Effective height of the transmitting/base antenna, height over the average level of the ground between distances of 3 and 15 km from the transmitting/base antenna in the direction of the receiving/mobile antenna.
h2 scalar double m Receiving/mobile antenna height above ground level
R2 scalar double m Representative clutter height around receiver. Typical values: R2=10 for area='Rural' or 'Suburban' or 'Sea', R2=15 for area='Urban', R2=20 for area='Dense Urban'
area string 'Land, 'Sea', 'Warm', 'Cald' Area around the receiver.
d_v array double km sum(d_v) ≤ ~1000 Array of horizontal path lengths over different path zones starting from transmitter/base station terminal.
path_c array string 'Land', 'Sea', 'Warm', 'Cold' Array of strings defining the path zone for each given path lenght in d_v starting from the transmitter/base terminal.
pathinfo scalar int 0, 1 0 - no terrain profile information available, 1 - terrain information available

Optional input arguments of function P1546.bt_loss

Variable Type Units Limits Description
q scalar double % 1 ≤ q ≤ 99 Location percentage for which the calculated basic transmission loss is not exceeded. Default is 50%.
wa scalar double m ~50 ≤ wa ≤ ~1000 The width of the square area over which the variabilitiy applies. Needs to be defined only if pathinfo= 1 and q≠50. Default: 0 dB.
Ptx scalar double kW Ptx > 0 Tx power; Default: 1.
ha scalar double m Transmitter antenna height above ground. Defined in Annex 5 §3.1.1. Limits are defined in Annex 5 §3.
hb scalar double m Height of transmitter/base antenna above terrain height averaged over 0.2d and d, when d is less than 15 km and where terrain information is available.
R1 scalar double m Representative clutter height around transmitter.
tca scalar double deg 0.55 ≤ tca ≤ 40 Terrain clearance angle.
htter scalar double m Terrain height in meters above sea level at the transmitter/base.
hrter scalar double m Terrain height in meters above sea level at the receiver/mobile.
eff1 scalar double deg The h1 terminal's terrain clearance angle calculated using the method in §4.3 case a), whether or not h1 is negative.
eff2 scalar double deg The h2 terminal's terrain clearance angle calculated using the method in §11, noting that this is the elevation angle relative to the local horizontal.
debug scalar int 0, 1 If debug= 1, the results are written in log files. Default: 0.
fidlog scalar int Only used if debug= 1 File identifier of the log file opened for writing outside the function. If not provided, a default file with a filename containing a timestamp will be created.

Outputs

Variable Type Units Description
Ep double dB(uV/m) Electric field strength
Lb double dB Basic transmission loss

Notes

Notes: If sea path is selected for a t value less then 50% the default 10% table use is a cold sea path.

Not implemented in this version of the code:

  • Annex 7: Adjustment for different climatic regions
  • Annex 5, Section 4.3a): C_h1 calculation (terrain database is available and the potential of discontinuities around h1 = 0 is of no concern)

Software Versions

The code was tested and runs on:

  • python3.9

References