itmlogic


Nameitmlogic JSON
Version 1.1 PyPI version JSON
download
home_pagehttps://github.com/edwardoughton/itmlogic
SummaryLongley-Rice irregular terrain propagation model
upload_time2023-01-26 13:30:41
maintainer
docs_urlNone
authorEd Oughton
requires_python
licenseMIT License
keywords longley-rice propagation model irregular terrain model
VCS
bugtrack_url
requirements numpy shapely fiona rasterio pyproj tqdm pytest rasterstats simplejson
Travis-CI
coveralls test coverage No coveralls.
            # itmlogic – Longley-Rice Irregular Terrain Model

[![Build Status](https://travis-ci.org/edwardoughton/itmlogic.svg?branch=master)](https://travis-ci.org/edwardoughton/itmlogic)
[![Documentation Status](https://readthedocs.org/projects/itmlogic/badge/?version=latest)](https://itmlogic.readthedocs.io/en/latest/?badge=latest)
[![Coverage Status](https://coveralls.io/repos/github/edwardoughton/itmlogic/badge.svg?branch=master)](https://coveralls.io/github/edwardoughton/itmlogic?branch=master)

Longley-Rice Irregular Terrain Model

**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.

This Python repo implements the model properties and algorithm defining it from:

* 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 arising from irregular
terrain. For example, the image below shows the terrain implications arising between the
Crystal Palace (South London) transmitter and Mursley, Buckinghamshire, England.

Terrain profile slice: Crystal Palace (South London) to Mursley
---------------------------------------------------------------
![Example](/docs/_static/terrain_profile.png)


## 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](/docs/_static/p2p_results.png)


Example Results - Area Mode
---------------------------
![Example](/docs/_static/area_results.png)


Documentation
-------------

For more information, see the ``itmlogic`` [readthedocs documentation](https://itmlogic.readthedocs.io/en/latest/?badge=latest).


## 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

**itmlogic** was written and developed at the [Environmental Change Institute, University of
Oxford](http://www.eci.ox.ac.uk) within the EPSRC-sponsored MISTRAL programme (EP/N017064/1),
as part of the [Infrastructure Transition Research Consortium](http://www.itrc.org.uk/)

## Contributors
- Edward J. Oughton (University of Oxford)
- Tom Russell (University of Oxford)
- Joel Johnson (The Ohio State University)
- Caglar Yardim (The Ohio State University)
- Julius Kusuma (Facebook Research)

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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/edwardoughton/itmlogic",
    "name": "itmlogic",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Longley-Rice,propagation model,irregular terrain model",
    "author": "Ed Oughton",
    "author_email": "edward.oughton@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/59/b5/70a29d78a25704b19128ac4a2f333d23052cde534782dd9af9423aaacd51/itmlogic-1.1.tar.gz",
    "platform": null,
    "description": "# itmlogic \u2013 Longley-Rice Irregular Terrain Model\n\n[![Build Status](https://travis-ci.org/edwardoughton/itmlogic.svg?branch=master)](https://travis-ci.org/edwardoughton/itmlogic)\n[![Documentation Status](https://readthedocs.org/projects/itmlogic/badge/?version=latest)](https://itmlogic.readthedocs.io/en/latest/?badge=latest)\n[![Coverage Status](https://coveralls.io/repos/github/edwardoughton/itmlogic/badge.svg?branch=master)](https://coveralls.io/github/edwardoughton/itmlogic?branch=master)\n\nLongley-Rice Irregular Terrain Model\n\n**itmlogic** is a Python implementation of the classic Longley-Rice propagation model (v1.2.2)\nand capable of estimating the signal propagation effects resulting from irregular terrain.\n\nThis Python repo implements the model properties and algorithm defining it from:\n\n* Hufford, G. A., A. G. Longley, and W. A. Kissick (1982), A guide    to the use of the ITS\n  Irregular Terrain Model in the area prediction mode, NTIA Report 82-100. (NTIS Order No.\n  PB82-217977)\n* Hufford, G. A. (1995) The ITS Irregular Terrain Model, version 1.2.2, the Algorithm.\n\n**itmlogic** enables you to account for the radio propagation impacts arising from irregular\nterrain. For example, the image below shows the terrain implications arising between the\nCrystal Palace (South London) transmitter and Mursley, Buckinghamshire, England.\n\nTerrain profile slice: Crystal Palace (South London) to Mursley\n---------------------------------------------------------------\n![Example](/docs/_static/terrain_profile.png)\n\n\n## Setup and configuration\n\nAll code for ``itmlogic`` is written in Python (Python>=3.7).\n\nSee requirements.txt for a full list of dependencies.\n\n\n## Conda\n\nThe recommended installation method is to use conda, which handles packages and virtual\nenvironments, along with the conda-forge channel which has a host of pre-built libraries\nand packages.\n\nCreate a conda environment called ``itmlogic``:\n\n    conda create --name itmlogic python=3.7 gdal\n\nActivate it (run this each time you switch projects):\n\n    conda activate itmlogic\n\nFirst, install optional packages:\n\n    conda install numpy fiona shapely rtree rasterio pyproj tqdm pytest rasterstats pandas matplotlib\n\nOnce in the new environment, to install ``itmlogic`` clone this repository and either run:\n\n    python setup.py install\n\nOr:\n\n    python setup.py develop\n\nYou can first run the tests to make sure everything is working correctly:\n\n    python -m pytest\n\n\nQuick start\n-----------\n\nIf you want to quickly generate results run using point-to-point mode run:\n\n    python scripts/p2p.py\n\nOr using area prediction mode run:\n\n    python scripts/area.py\n\nResults can then be visualized using:\n\n    python vis/vis.py\n\n\nExample Results - Point-to-Point Mode\n-------------------------------------\n![Example](/docs/_static/p2p_results.png)\n\n\nExample Results - Area Mode\n---------------------------\n![Example](/docs/_static/area_results.png)\n\n\nDocumentation\n-------------\n\nFor more information, see the ``itmlogic`` [readthedocs documentation](https://itmlogic.readthedocs.io/en/latest/?badge=latest).\n\n\n## Background\n\nThe model was developed by the Institute for Telecommunication Sciences (ITS) for frequencies\nbetween 20 MHz and 20 GHz (named for Anita Longley & Phil Rice, 1968), and as a general\npurpose model can be applied to a large variety of engineering problems. Based on\nboth electromagnetic theory and empirical statistical analyses of both terrain features and\nradio measurements, the Longley-Rice Irregular Terrain Model predicts the median attenuation\nof a radio signal as a function of distance and the variability of signal in time and in space.\n\nThe original NTIA disclaimer states:\n\n> The ITM software was developed by NTIA. NTIA does not make any warranty of any kind, express,\nimplied or statutory, including, without limitation, the implied warranty of merchantability,\nfitness for a particular purpose, non-infringement and data accuracy. NTIA does not warrant or\nmake any representations regarding the use of the software or the results thereof, including\nbut not limited to the correctness, accuracy, reliability or usefulness of the software or the\nresults. You can use, copy, modify, and redistribute the NTIA-developed software upon your\nacceptance of these terms and conditions and upon your express agreement to provide appropriate\nacknowledgments of NTIA's ownership of and development of the software by keeping this exact\ntext present in any copied or derivative works.\n\n\n## Thanks for the support\n\n**itmlogic** was written and developed at the [Environmental Change Institute, University of\nOxford](http://www.eci.ox.ac.uk) within the EPSRC-sponsored MISTRAL programme (EP/N017064/1),\nas part of the [Infrastructure Transition Research Consortium](http://www.itrc.org.uk/)\n\n## Contributors\n- Edward J. Oughton (University of Oxford)\n- Tom Russell (University of Oxford)\n- Joel Johnson (The Ohio State University)\n- Caglar Yardim (The Ohio State University)\n- Julius Kusuma (Facebook Research)\n\nIf you find an error or have a question, please submit an issue.\n\n## Folder structure\n\nThe folder structure for the ``itmlogic`` package is summarized as follows, and matches the\nbox diagram highlighted in both the JOSS paper and the documentation:\n\n    +---src\n    |   +---itmlogic\n    |   |   |   lrprop.py\n    |   |   |   __init__.py\n    |   |   |\n    |   |   +---diffraction_attenuation\n    |   |   |       adiff.py\n    |   |   |       aknfe.py\n    |   |   |       fht.py\n    |   |   |\n    |   |   +---los_attenuation\n    |   |   |       alos.py\n    |   |   |\n    |   |   +---misc\n    |   |   |       qerf.py\n    |   |   |       qerfi.py\n    |   |   |       qtile.py\n    |   |   |\n    |   |   +---preparatory_subroutines\n    |   |   |       dlthx.py\n    |   |   |       hzns.py\n    |   |   |       qlra.py\n    |   |   |       qlrpfl.py\n    |   |   |       qlrps.py\n    |   |   |       zlsq1.py\n    |   |   |\n    |   |   +---scatter_attenuation\n    |   |   |       ahd.py\n    |   |   |       ascat.py\n    |   |   |       h0f.py\n    |   |   |\n    |   |   +---statistics\n    |   |   |       avar.py\n    |   |   |       curv.py\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Longley-Rice irregular terrain propagation model",
    "version": "1.1",
    "split_keywords": [
        "longley-rice",
        "propagation model",
        "irregular terrain model"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "59b570a29d78a25704b19128ac4a2f333d23052cde534782dd9af9423aaacd51",
                "md5": "858cf29602a4ba388435b1ae406305cf",
                "sha256": "f189d334bc8bfbf17718812c3f3943fa0650300af5b77e9bcd4c4fc193f4af1d"
            },
            "downloads": -1,
            "filename": "itmlogic-1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "858cf29602a4ba388435b1ae406305cf",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 69784988,
            "upload_time": "2023-01-26T13:30:41",
            "upload_time_iso_8601": "2023-01-26T13:30:41.975847Z",
            "url": "https://files.pythonhosted.org/packages/59/b5/70a29d78a25704b19128ac4a2f333d23052cde534782dd9af9423aaacd51/itmlogic-1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-26 13:30:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "edwardoughton",
    "github_project": "itmlogic",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "shapely",
            "specs": []
        },
        {
            "name": "fiona",
            "specs": []
        },
        {
            "name": "rasterio",
            "specs": []
        },
        {
            "name": "pyproj",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "4.6"
                ]
            ]
        },
        {
            "name": "rasterstats",
            "specs": []
        },
        {
            "name": "simplejson",
            "specs": []
        }
    ],
    "lcname": "itmlogic"
}
        
Elapsed time: 0.03454s