Skip to content

Latest commit

 

History

History
126 lines (94 loc) · 5.99 KB

README.md

File metadata and controls

126 lines (94 loc) · 5.99 KB

Recommendation ITU-R P.2108

NTIA/ITS PropLib GitHub Release GitHub Actions Unit Test Status C++ API Reference GitHub Issues DOI

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:

Getting Started

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.

Configure and Build

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

Running Tests

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.

References

License

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.

Contact

For technical questions, contact [email protected].

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.