{"id":24895373,"url":"https://github.com/ntia/p2108-python","last_synced_at":"2025-03-27T15:25:50.383Z","repository":{"id":273773246,"uuid":"804561453","full_name":"NTIA/p2108-python","owner":"NTIA","description":"Python wrapper for U.S. Reference Software Implementation of Recommendation ITU-R P.2108 ","archived":false,"fork":false,"pushed_at":"2025-01-27T21:41:45.000Z","size":115,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T19:17:55.939Z","etag":null,"topics":["clutter","itu","p2108","propagation","proplib","python","spectrum"],"latest_commit_sha":null,"homepage":"https://ntia.github.io/propagation-library-wiki/models/P2108/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NTIA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-22T20:29:00.000Z","updated_at":"2025-01-24T16:07:40.000Z","dependencies_parsed_at":"2025-01-22T22:31:15.218Z","dependency_job_id":null,"html_url":"https://github.com/NTIA/p2108-python","commit_stats":null,"previous_names":["ntia/p2108-python"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fp2108-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fp2108-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fp2108-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fp2108-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NTIA","download_url":"https://codeload.github.com/NTIA/p2108-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245869961,"owners_count":20685949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clutter","itu","p2108","propagation","proplib","python","spectrum"],"created_at":"2025-02-01T19:17:58.527Z","updated_at":"2025-03-27T15:25:50.360Z","avatar_url":"https://github.com/NTIA.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Recommendation ITU-R P.2108 - Python® Wrapper #\n\n[![NTIA/ITS PropLib][proplib-badge]][proplib-link]\n[![PyPI Release][pypi-release-badge]][pypi-release-link]\n[![GitHub Actions Unit Test Status][gh-actions-test-badge]][gh-actions-test-link]\n[![GitHub Issues][gh-issues-badge]][gh-issues-link]\n[![DOI][doi-badge]][doi-link]\n\n[proplib-badge]: https://img.shields.io/badge/PropLib-badge?label=%F0%9F%87%BA%F0%9F%87%B8%20NTIA%2FITS\u0026labelColor=162E51\u0026color=D63E04\n[proplib-link]: https://ntia.github.io/propagation-library-wiki\n[gh-actions-test-badge]: https://img.shields.io/github/actions/workflow/status/NTIA/p2108-python/pytest.yml?branch=main\u0026logo=pytest\u0026logoColor=ffffff\u0026label=Tests\u0026labelColor=162E51\n[gh-actions-test-link]: https://github.com/NTIA/p2108-python/actions/workflows/pytest.yml\n[pypi-release-badge]: https://img.shields.io/pypi/v/proplib-p2108?logo=pypi\u0026logoColor=ffffff\u0026label=Release\u0026labelColor=162E51\u0026color=D63E04\n[pypi-release-link]: https://pypi.org/project/proplib-p2108\n[gh-issues-badge]: https://img.shields.io/github/issues/NTIA/p2108-python?logo=github\u0026label=Issues\u0026labelColor=162E51\n[gh-issues-link]: https://github.com/NTIA/p2108-python/issues\n[doi-badge]: https://zenodo.org/badge/804561453.svg\n[doi-link]: https://zenodo.org/badge/latestdoi/804561453\n\nThis repository contains a Python wrapper for the NTIA/ITS implementation of\nRecommendation ITU-R P.2108. This Recommendation contains three methods for the\nprediction of clutter loss: Height Gain Terminal Correction Model, Terrestrial\nStatistical Model, and Aeronautical Statistical Model. The software implements\nSection 3 of Annex 1 of the Recommendation. This Python package wraps the\n[NTIA/ITS C++ implementation](https://github.com/NTIA/p2108).\n\n## Getting Started ##\n\nThis software is distributed on [PyPI](https://pypi.org/project/proplib-p2108) and is easily installable\nusing the following command.\n\n```cmd\npip install proplib-p2108\n```\n\nGeneral information about using this model is available on\n[its page on the **NTIA/ITS Propagation Library Wiki**](https://ntia.github.io/propagation-library-wiki/models/P2108/).\nAdditionally, Python-specific instructions and code examples are available\n[here](https://ntia.github.io/propagation-library-wiki/models/P2108/python).\n\nIf you're a developer and would like to contribute to or extend this repository,\nplease review the guide for contributors [here](CONTRIBUTING.md) or open an\n[issue](https://github.com/NTIA/p2108-python/issues) to start a discussion.\n\n## Development ##\n\nThis repository contains code which wraps [the C++ shared library](https://github.com/NTIA/p2108)\nas an importable Python module. If you wish to contribute to this repository,\ntesting your changes will require the inclusion of this shared library. You may retrieve\nthis either from the\n[relevant GitHub Releases page](https://github.com/NTIA/p2108/releases), or by\ncompiling it yourself from the C++ source code. Either way, ensure that the shared library\n(`.dll`, `.dylib`, or `.so` file) is placed in `src/ITS/ITU/PSeries/P2108/`, alongside `__init__.py`.\n\nBelow are the steps to build and install the Python package from the source code.\nWorking installations of Git and a [currently-supported version](https://devguide.python.org/versions/)\nof Python are required. Additional requirements exist if you want to compile the shared\nlibrary from C++ source code; see relevant build instructions\n[here](https://github.com/NTIA/p2108?tab=readme-ov-file#configure-and-build).\n\n1. Optionally, configure and activate a virtual environment using a tool such as\n[`venv`](https://docs.python.org/3/library/venv.html) or\n[conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html).\n\n1. Clone this repository, then initialize the Git submodule containing the test data.\n\n    ```cmd\n    # Clone the repository\n    git clone https://github.com/NTIA/p2108-python\n    cd p2108-python\n\n    # Initialize Git submodule containing test data\n    git submodule init\n\n    # Clone the submodule\n    git submodule update\n    ```\n\n1. Download the shared library (`.dll`, `.so`, or `.dylib`) from a\n[GitHub Release](https://github.com/NTIA/p2108/releases). Then place the\ndownloaded file in `src/ITS/ITU/PSeries/P2108/` (alongside `__init__.py`).\n\n1. Install the local package and development dependencies into your current environment:\n\n    ```cmd\n    pip install .[dev]\n    ```\n\n1. To build the wheel for your platform:\n\n    ```cmd\n    hatchling build\n    ```\n\n### Running Tests ###\n\nPython unit tests can be run to confirm successful installation. You will need to\nclone this repository's test data submodule (as described above). Then, run the tests\nwith pytest using the following command.\n\n```cmd\npytest\n```\n\nAdditionally, the [Study Group Clutter Excel Workbook](https://www.itu.int/en/ITU-R/study-groups/rsg3/ionotropospheric/Clutter%20and%20BEL%20workbook_V2.xlsx)\ncontains an extensive set of example values which are useful as validation cases.\n\n## References ##\n\n- [ITS Propagation Library Wiki](https://ntia.github.io/propagation-library-wiki)\n- [P2108 Wiki Page](https://ntia.github.io/propagation-library-wiki/models/P2108)\n- [`ITS.ITU.PSeries.P2108` C++ API Reference](https://ntia.github.io/P2108)\n- [Recommendation ITU-R P.2108](https://www.itu.int/rec/R-REC-P.2108/en)\n- [Report ITU-R P.2402](https://www.itu.int/pub/R-REP-P.2402)\n\n## License ##\n\nSee [LICENSE](./LICENSE.md).\n\n\"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.\n\n## Contact ##\n\nFor technical questions, contact \u003ccode@ntia.gov\u003e.\n\n## Disclaimer ##\n\nCertain 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntia%2Fp2108-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fntia%2Fp2108-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntia%2Fp2108-python/lists"}