py452

Python Implementation of Recommendation ITU-R P.452

https://github.com/eeveetza/py452

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Python Implementation of Recommendation ITU-R P.452

Basic Info
  • Host: GitHub
  • Owner: eeveetza
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 178 KB
Statistics
  • Stars: 6
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Created almost 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Python Implementation of Recommendation ITU-R P.452

This code repository contains a python software implementation of Recommendation ITU-R P.452-18 with a prediction procedure for the evaluation of interference between stations on the surface of the Earth at frequencies above about 100 MHz.

This code is functionally identical to the original reference MATLAB/Octave Implementation of Recommendation ITU-R P.452 approved by ITU-R Working Party 3M and published on ITU-R SG 3 Software, Data, and Validation Web Page.

The package can be downloaded and installed using: ~~~ python -m pip install "git+https://github.com/eeveetza/Py452/#egg=Py452"
~~~

and imported as follows ~~~ from Py452 import P452 ~~~

| File/Folder | Description | |----------------------------|---------------------------------------------------------------------| |/src/Py452/P452.py | python implementation of Recommendation ITU-R P.452-18 | |initiate_digital_maps.py| python script that processes the ITU-R maps and generates the necessary .npz file. It needs to be run prior to using this software implementation. For details, see Integrating ITU Digital Products. | |/tests/validateP452.py | python script used to validate the implementation of Recommendation ITU-R P.452-18 in P452.bt_loss() | |/tests/validation_examples/profiles/ | Folder containing a proposed set of terrain profiles for validation of python implementation (or any other software implementation) of this Recommendation | |/tests/validation_examples/results/ | Folder containing a proposed set of input parameters and the intermediate and final results for the set of terrain profiles defined in the folder ./validation_profiles/ |

Integrating ITU Digital Products

This software uses ITU digital products that are integral part of Recommendations. These products must not be reproduced or distributed without explicit written permission from the ITU.

Setup Instructions

  1. Download and extract the required maps to ./src/Py452/maps:
  • From ITU-R P.452-18:
    • N050.TXT
    • DN50.TXT
  1. Run the script initiate_digital_maps.py to generate the necessary file P452.npz.

Notes

  • Ensure all files are placed in ./src/Py452/maps before running the script.
  • The script processes the maps, which are critical for the software’s functionality.
  • The resulting *.npz file is placed in the folder ./src/Py452.

Function Call

~~~ Lb = P452.btloss(f, p, d, h, g, zone, htg, hrg, phite, phitn, phire, phir_n, Gt, Gr, pol, dct, dcr, press, temp) ~~~

Required input arguments of function P452.bt_loss

| Variable | Type | Units | Limits | Description | |-------------------|--------|-------|--------------|--------------| | f | scalar double | GHz | ~0.1 ≤ f ≤ ~50 | Frequency | | p | scalar double | % | 0.001 ≤ p ≤ 50 | Time percentage for which the calculated basic transmission loss is not exceeded | | d | array double | km | 0 < max(d) ≤ ~10000 | Terrain profile distances (in the ascending order from the transmitter)| | h | array double | m (asl) | | Terrain profile heights | | g | array double | m (asl) | | Clutter + Terrain profile heights | | zone | array int | | 1 - Coastal Land, 2 - Inland, 3 - Sea | Radio-climatic zone types | | htg | scalar double | m | | Tx antenna height above ground level | | hrg | scalar double | m | | Rx antenna height above ground level | | phit_e | scalar double | deg | 0 ≤ phit_e ≤ 360 | Tx longitude | | phit_n | scalar double | deg | -90 ≤ phit_n ≤ 90 | Tx latitude | | phir_e | scalar double | deg | 0 ≤ phir_e ≤ 360 | Rx longitude | | phir_n | scalar double | deg | -90 ≤ phir_n ≤ 90 | Rx latitude | | Gt Gr | scalar double | dBi | | Tx/Rx antenna gain in the direction of the horizon towards along the great-circle interference path. | | pol | scalar int | | pol = 1, 2 | Polarization of the signal: 1 - horizontal, 2 - vertical | | dct | scalar double | km | dct ≥ 0 | Distance over land from the Tx antenna to the coast along the great-circle interference path. To be set to zero for a terminal on a ship or sea platform.| | dcr | scalar double | km | dcr ≥ 0 | Distance over land from the Rx antenna to the coast along the great-circle interference path. To be set to zero for a terminal on a ship or sea platform.| | press | scalar double | hPa | | Dry air pressure.| | temp | scalar double | deg C | | Air temperature.|

Outputs

| Variable | Type | Units | Description | |------------|--------|-------|-------------| | Lb | double | dB | Basic transmission loss |

Software Versions

The code was tested and runs on: * python3.9

References

Owner

  • Name: Ivica Stevanovic
  • Login: eeveetza
  • Kind: user
  • Location: Switzerland
  • Company: Swiss Federal Office of Communications OFCOM

Citation (CITATION.cff)

cff-version: 1.2.0
title: 'Python Implementation of Recommendation ITU-R P.452'
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Ivica
    family-names: Stevanovic
    name-suffix: 
    email: 
    affiliation: Swiss Federal Office of Communications
    orcid: 'https://orcid.org/0000-0002-5032-1844'
doi: 
url: https://github.com/eeveetza/Py452
version: 18.0

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2

Dependencies

pyproject.toml pypi
  • numpy *