Skip to content

Commit 1bda479

Browse files
Update README.md
1 parent 256fc0a commit 1bda479

File tree

1 file changed

+52
-26
lines changed

1 file changed

+52
-26
lines changed

README.md

Lines changed: 52 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
# Recommendation ITU-R P.2108-1: U.S. Reference Implementation
1+
# Recommendation ITU-R P.2108 - U.S. Reference Implementation, Python #
22

3-
[![GitHub release (latest SemVer)][latest-release-semver-badge]][github-releases]
43
[![GitHub issues][github-issue-count-badge]][github-issues]
54
[![Code style: black][code-style-badge]][code-style-repo]
65

7-
[latest-release-semver-badge]: https://img.shields.io/github/v/release/NTIA/p2108-python?display_name=tag&sort=semver
8-
[github-releases]: https://github.com/NTIA/p2108-python/releases
96
[code-style-badge]: https://img.shields.io/badge/code%20style-black-000000.svg
107
[code-style-repo]: https://github.com/psf/black
118
[github-issue-count-badge]: https://img.shields.io/github/issues/NTIA/p2108-python
@@ -17,19 +14,30 @@ loss: Height Gain Terminal Correction Model, Terrestrial Statistical Model, and
1714
Aeronautical Statistical Model. The software implements Section 3 of Annex 1 of
1815
the Recommendation.
1916

20-
## Usage
17+
## Usage ##
2118

2219
For an overview of the available functions of this model, view the
23-
[NTIA/ITS Propagation Library Wiki](https://github.com/NTIA/propagation/wiki/P2108).
20+
[NTIA/ITS Propagation Library Wiki](https://ntia.github.io/propagation-library-wiki/models/P2108).
2421
Additionally, Python-specific usage information and examples are available
25-
[here](https://github.com/NTIA/propagation/wiki/P2108-(Python)).
22+
[here](https://github.com/NTIA/propagation/models/P2108/python).
2623

27-
## Development
24+
## Development ##
2825

2926
This repository contains code which wraps [the C++ source](https://github.com/NTIA/p2108)
30-
as an importable Python module. The development workflow assumes that you work
31-
within a cloned copy of the [parent repository](https://github.com/NTIA/p2108).
32-
Below are the steps to build and install the Python package from source, including
27+
as an importable Python module. If you wish to contribute to this repository,
28+
testing your changes will require the inclusion of the dynamic library binary
29+
built from the C++ source code. You may retrieve this either from the
30+
[relevant GitHub Releases page](https://github.com/NTIA/p2108/releases), or by
31+
compiling it yourself from the source code. If providing the dynamic library file
32+
(`.dll`, `.dylib`, or `.so`) manually from a release, place it in
33+
`src/ITS/ITU/PSeries/P2108/`, alongside `__init__.py`. Otherwise, follow these
34+
instructions to compile the library yourself.
35+
36+
### Building the Library from Source ###
37+
38+
The following development workflow assumes that you work within a cloned copy of
39+
the [parent repository](https://github.com/NTIA/p2108). Below are the steps to build
40+
and install the Python package from source, including
3341
compiling the library from the C++ source code. Working installations of Git and
3442
Python (3.8 or above) are required.
3543

@@ -49,17 +57,20 @@ Python wrapper.
4957
git submodule update
5058
```
5159

52-
1. Compile the C++ library for your platform using CMake:
60+
1. Compile the C++ library for your platform using CMake. Here, we use CMake
61+
options to _only_ build the library, without building documentation or running C++
62+
unit tests. If you are using a 32-bit platform, use the `release32` preset
63+
instead of `release64`.
5364

5465
```cmd
55-
# From the cloned repository
56-
mkdir build
57-
cmake -S . -B build
58-
cmake --build build
66+
# From the cloned repository:
67+
68+
cmake --preset release64 -DBUILD_DOCS=OFF -DRUN_TESTS=OFF
69+
cmake --build --preset release64
5970
```
6071

61-
When the CMake build command is run, the compiled library will be copied
62-
into place where needed to build the Python package (alongside `__init__.py`).
72+
When the CMake build command is run, the compiled library will be automatically
73+
be copied into place where needed to build the Python package (alongside `__init__.py`).
6374

6475
1. Install the local package, and development dependencies:
6576

@@ -71,21 +82,36 @@ Python wrapper.
7182
This will install the Python package itself along with development dependencies
7283
for pre-commit hooks, building distributable packages, and running unit tests.
7384
74-
1. (Optional) Run unit tests to confirm successfull installation. Test data is
75-
used from the parent repository.
85+
### Running Tests ###
7686
77-
```cmd
78-
pytest .
79-
```
87+
Python unit tests can be run to confirm successfull installation. Test data is
88+
expected to be located in the parent repository. Therefore, if you haven't cloned
89+
this repository as a submodule (as described above), you will need to first specify
90+
the location of the test data files in `tests/test_p2108.py` (using the `TEST_DATA_DIR`
91+
variable). Then, run the tests with pytest:
92+
93+
```cmd
94+
pytest .
95+
```
8096

81-
## License
97+
Additionally, the [Study Group Clutter Excel Workbook](https://www.itu.int/en/ITU-R/study-groups/rsg3/ionotropospheric/Clutter%20and%20BEL%20workbook_V2.xlsx)
98+
contains an extensive set of example values which are useful as validation cases.
99+
100+
## License ##
82101

83102
See [LICENSE](LICENSE.md).
84103

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

89-
## Contact
108+
## References ##
109+
110+
* [ITS Propagation Library Wiki](https://ntia.github.io/propagation-library-wiki)
111+
* [`ITS.ITU.PSeries.P2108` C++ API Reference](https://ntia.github.io/P2108)
112+
* [Recommendation ITU-R P.2108](https://www.itu.int/rec/R-REC-P.2108/en)
113+
* [Report ITU-R P.2402](https://www.itu.int/pub/R-REP-P.2402)
114+
115+
## Contact ##
90116

91-
For technical questions about the NTIA/ITS Propagation Library, contact <[email protected]>.
117+
For technical questions, contact <[email protected]>.

0 commit comments

Comments
 (0)