Skip to main content

Longley-Rice irregular terrain propagation model

Project description

itmlogic – Longley-Rice Irregular Terrain Model

Coverage Status DOI DOI

itmlogic is a Python implementation of the classic Longley-Rice propagation model (v1.2.2) and capable of estimating the signal propagation effects resulting from irregular terrain.

Software citation

  • Oughton, E.J., Russell, T., Johnson, J., Yardim, C., Kusuma, J., 2020. itmlogic: The Irregular Terrain Model by Longley and Rice. Journal of Open Source Software 5, 2266. https://doi.org/10.21105/joss.02266

Software purpose

This Python repo implements the model properties and algorithm defined in:

  • Hufford, G. A., A. G. Longley, and W. A. Kissick (1982), A guide to the use of the ITS Irregular Terrain Model in the area prediction mode, NTIA Report 82-100. (NTIS Order No. PB82-217977)
  • Hufford, G. A. (1995) The ITS Irregular Terrain Model, version 1.2.2, the Algorithm.

itmlogic enables you to account for the radio propagation impacts occuring from irregular terrain (hills, mountains etc.). For example, the image below shows the terrain undulation between the Crystal Palace (South London) transmitter and Mursley, Buckinghamshire, England. Such estimates enable the engineering design of many types of wireless radio systems, including 4G and 5G Radio Access Networks and wireless backhaul connections.

Terrain profile slice: Crystal Palace (South London) to Mursley

Example

Setup and configuration

All code for itmlogic is written in Python (Python>=3.7).

See requirements.txt for a full list of dependencies.

Conda

The recommended installation method is to use conda, which handles packages and virtual environments, along with the conda-forge channel which has a host of pre-built libraries and packages.

Create a conda environment called itmlogic:

conda create --name itmlogic python=3.7 gdal

Activate it (run this each time you switch projects):

conda activate itmlogic

First, install optional packages:

conda install numpy fiona shapely rtree rasterio pyproj tqdm pytest rasterstats pandas matplotlib

Once in the new environment, to install itmlogic clone this repository and either run:

python setup.py install

Or:

python setup.py develop

You can first run the tests to make sure everything is working correctly:

python -m pytest

Quick start

If you want to quickly generate results run using point-to-point mode run:

python scripts/p2p.py

Or using area prediction mode run:

python scripts/area.py

Results can then be visualized using:

python vis/vis.py

Example results - Point-to-point mode

Example

Example results - Area mode

Example

Documentation

For more information, see the itmlogic readthedocs documentation.

Background

The model was developed by the Institute for Telecommunication Sciences (ITS) for frequencies between 20 MHz and 20 GHz (named for Anita Longley & Phil Rice, 1968), and as a general purpose model can be applied to a large variety of engineering problems. Based on both electromagnetic theory and empirical statistical analyses of both terrain features and radio measurements, the Longley-Rice Irregular Terrain Model predicts the median attenuation of a radio signal as a function of distance and the variability of signal in time and in space.

The original NTIA disclaimer states:

The ITM software was developed by NTIA. NTIA does not make any warranty of any kind, express, implied or statutory, including, without limitation, the implied warranty of merchantability, fitness for a particular purpose, non-infringement and data accuracy. NTIA does not warrant or make any representations regarding the use of the software or the results thereof, including but not limited to the correctness, accuracy, reliability or usefulness of the software or the results. You can use, copy, modify, and redistribute the NTIA-developed software upon your acceptance of these terms and conditions and upon your express agreement to provide appropriate acknowledgments of NTIA's ownership of and development of the software by keeping this exact text present in any copied or derivative works.

Thanks for the support

The software repository itmlogic was written and developed at the Environmental Change Institute, University of Oxford within the EPSRC-sponsored MISTRAL programme (EP/N017064/1), as part of the Infrastructure Transition Research Consortium

Contributors

  • Edward J. Oughton (University of Oxford) (Software Engineering Lead)
  • Tom Russell (University of Oxford) (Software Engineering)
  • Joel Johnson (The Ohio State University) (ITM Modeling Lead)
  • Caglar Yardim (The Ohio State University) (ITM Modeling)
  • Julius Kusuma (Facebook Research) (ITM Modeling)

If you find an error or have a question, please submit an issue.

Folder structure

The folder structure for the itmlogic package is summarized as follows, and matches the box diagram highlighted in both the JOSS paper and the documentation:

+---src
|   +---itmlogic
|   |   |   lrprop.py
|   |   |   __init__.py
|   |   |
|   |   +---diffraction_attenuation
|   |   |       adiff.py
|   |   |       aknfe.py
|   |   |       fht.py
|   |   |
|   |   +---los_attenuation
|   |   |       alos.py
|   |   |
|   |   +---misc
|   |   |       qerf.py
|   |   |       qerfi.py
|   |   |       qtile.py
|   |   |
|   |   +---preparatory_subroutines
|   |   |       dlthx.py
|   |   |       hzns.py
|   |   |       qlra.py
|   |   |       qlrpfl.py
|   |   |       qlrps.py
|   |   |       zlsq1.py
|   |   |
|   |   +---scatter_attenuation
|   |   |       ahd.py
|   |   |       ascat.py
|   |   |       h0f.py
|   |   |
|   |   +---statistics
|   |   |       avar.py
|   |   |       curv.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

itmlogic-1.2.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

itmlogic-1.2-py2.py3-none-any.whl (23.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file itmlogic-1.2.tar.gz.

File metadata

  • Download URL: itmlogic-1.2.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for itmlogic-1.2.tar.gz
Algorithm Hash digest
SHA256 30652f80779b441701d1733c6a0912bcecdd9504d746500fc01a40e4166fb50e
MD5 3728e70f1e1ab01975fd978c241344e2
BLAKE2b-256 a159c44712604e11000a39dd923c446f09f3acbc71d07f692bc9ffbff9235709

See more details on using hashes here.

File details

Details for the file itmlogic-1.2-py2.py3-none-any.whl.

File metadata

  • Download URL: itmlogic-1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for itmlogic-1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 910d918a7ee471996f01779aa70b1eaf98e7cc16b7a9f29bb07ba8c1cc188907
MD5 b008816641807727c27a48fd4adf6711
BLAKE2b-256 d8573949ea27b2958918c8ed8800d8fdf30fd016ebd51986566a4b9950292040

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page