This repository contains the NTIA/ITS implementation of Recommendation ITU-R P.2108. This Recommendation contains three methods for the prediction of clutter loss: the Height Gain Terminal Correction Model, the Terrestrial Statistical Model, and the Aeronautical Statistical Model. The software implements Section 3 of Annex 1 of the Recommendation.
Additional bindings to the shared library built from this repository are provided for .NET, MATLAB®, and Python® in the following repositories:
To get started using this library, refer to its page on the NTIA/ITS Propagation Library Wiki. There, you will find installation instructions, usage information, and code examples for all supported languages.
An executable is also provided which can be used to run the functions provided by this library using plain text input and output files. Installation and usage details for the command-line driver are also provided on the wiki.
If you're a developer and would like to contribute to or extend this repository, you will find comprehensive documentation of this C++ code here, and a guide for contributors here.
The software is designed to be built into a DLL (or corresponding .so
or .dylib
library for non-Windows systems). A CMake build configuration and presets are
provided for cross-platform builds. Presets provide default sets of compiler flags,
and additional set default CMake options to control which parts of the project are
build. Below are a few examples of how this project can be built using provided presets.
# From this repository's root directory, try one of the following command pairs:
# "Release" configurations compile the library and driver, build docs, and configure tests:
cmake --preset release64
cmake --build --preset release64
# "Debug" configurations skip building the docs, driver, and driver tests:
cmake --preset debug64
cmake --build --preset debug64
# Additional options can override presets:
cmake --preset debug64 -DBUILD_DRIVER=ON
# "DocsOnly" configurations only build the docs:
cmake --preset docsOnly
cmake --build --preset docsOnly
Note that this repository makes use of several Git submodules to reference dependencies used for running unit tests and building documentation. In order to do either, ensure the required submodules are cloned by running:
# From this repository's root directory
git submodule init
git submodule update
If you've configured tests when building the project, for example by using one of the "Release" or "Debug" CMake presets, you can run the included unit tests as follows:
ctest --preset release64
Additionally, the Study Group Clutter Excel Workbook contains an extensive set of example values which are useful as validation cases.
- ITS Propagation Library Wiki
- P2108 Wiki Page
ITS.ITU.PSeries.P2108
C++ API Reference- Recommendation ITU-R P.2108
- Report ITU-R P.2402
See LICENSE.md
.
MATLAB is a registered trademark of The MathWorks, Inc. See mathworks.com/trademarks for a list of additional trademarks.
"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.
For technical questions, contact [email protected].
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.