Skip to main content

Python wrapper for U.S. Reference Software Implementation of Recommendation ITU-R P.2108

Project description

Recommendation ITU-R P.2108 - Python® Wrapper

NTIA/ITS PropLib PyPI Release GitHub Actions Unit Test Status GitHub Issues DOI

This repository contains a Python wrapper for the NTIA/ITS implementation of Recommendation ITU-R P.2108. This Recommendation contains three methods for the prediction of clutter loss: Height Gain Terminal Correction Model, Terrestrial Statistical Model, and Aeronautical Statistical Model. The software implements Section 3 of Annex 1 of the Recommendation. This Python package wraps the NTIA/ITS C++ implementation.

Getting Started

This software is distributed on PyPI and is easily installable using the following command.

pip install proplib-p2108

General information about using this model is available on its page on the NTIA/ITS Propagation Library Wiki. Additionally, Python-specific instructions and code examples are available here.

If you're a developer and would like to contribute to or extend this repository, please review the guide for contributors here or open an issue to start a discussion.

Development

This repository contains code which wraps the C++ shared library as an importable Python module. If you wish to contribute to this repository, testing your changes will require the inclusion of this shared library. You may retrieve this either from the relevant GitHub Releases page, or by compiling it yourself from the C++ source code. Either way, ensure that the shared library (.dll, .dylib, or .so file) is placed in src/ITS/ITU/PSeries/P2108/, alongside __init__.py.

Below are the steps to build and install the Python package from the source code. Working installations of Git and a currently-supported version of Python are required. Additional requirements exist if you want to compile the shared library from C++ source code; see relevant build instructions here.

  1. Optionally, configure and activate a virtual environment using a tool such as venv or conda.

  2. Clone this repository, then initialize the Git submodule containing the test data.

    # Clone the repository
    git clone https://github.com/NTIA/p2108-python
    cd p2108-python
    
    # Initialize Git submodule containing test data
    git submodule init
    
    # Clone the submodule
    git submodule update
    
  3. Download the shared library (.dll, .so, or .dylib) from a GitHub Release. Then place the downloaded file in src/ITS/ITU/PSeries/P2108/ (alongside __init__.py).

  4. Install the local package and development dependencies into your current environment:

    pip install .[dev]
    
  5. To build the wheel for your platform:

    hatchling build
    

Running Tests

Python unit tests can be run to confirm successful installation. You will need to clone this repository's test data submodule (as described above). Then, run the tests with pytest using the following command.

pytest

Additionally, the Study Group Clutter Excel Workbook contains an extensive set of example values which are useful as validation cases.

References

License

See LICENSE.

"Python" and the Python logos are trademarks or registered trademarks of the Python Software Foundation, used by the National Telecommunications and Information Administration with permission from the Foundation.

Contact

For technical questions, contact code@ntia.gov.

Disclaimer

Certain commercial equipment, instruments, or materials are identified in this project were used for the convenience of the developers. In no case does such identification imply recommendation or endorsement by the National Telecommunications and Information Administration, nor does it imply that the material or equipment identified is necessarily the best available for the purpose.

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

proplib_p2108-1.1.0.tar.gz (75.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proplib_p2108-1.1.0-py3-none-any.whl (64.7 kB view details)

Uploaded Python 3

File details

Details for the file proplib_p2108-1.1.0.tar.gz.

File metadata

  • Download URL: proplib_p2108-1.1.0.tar.gz
  • Upload date:
  • Size: 75.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for proplib_p2108-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c835dce27f8a2ed2daf323d9407c9c8a81106728f7f3f06acd1b6a4b8e34544c
MD5 5d6370c3801e5a79b24c67e2b4391f28
BLAKE2b-256 cb743e6281be8c1063edd138d353bcede6fd77f095a7daa0dc56bc13ab530462

See more details on using hashes here.

File details

Details for the file proplib_p2108-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: proplib_p2108-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 64.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for proplib_p2108-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba4c6b957720e86f654ff0f867cfd0ed980acb13c55956a16ff3ff1bfa866a82
MD5 8b08cd5ebe73947c33622d97742c3e57
BLAKE2b-256 94982288e91cb9050a4f7aca8ffc085b1ad8900b6b89f85b10f9ce527ca482f8

See more details on using hashes here.

Supported by

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