{"id":18750338,"url":"https://github.com/ntia/p528","last_synced_at":"2025-04-12T23:31:58.317Z","repository":{"id":38817432,"uuid":"174558606","full_name":"NTIA/p528","owner":"NTIA","description":"U.S. reference implementation of Recommendation ITU-R P.528 providing propagation path loss predictions for aeronautical mobile and radionavigation services using the VHF, UHF, and SHF bands","archived":false,"fork":false,"pushed_at":"2024-09-27T21:18:35.000Z","size":960,"stargazers_count":27,"open_issues_count":5,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-26T17:57:18.045Z","etag":null,"topics":["cpp","csharp","itu","propagation"],"latest_commit_sha":null,"homepage":"","language":"C++","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":null,"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":"2019-03-08T15:10:32.000Z","updated_at":"2025-03-10T09:28:50.000Z","dependencies_parsed_at":"2024-08-22T19:28:35.617Z","dependency_job_id":"6a2826ce-9608-40c8-ba36-0ddaf4ae812e","html_url":"https://github.com/NTIA/p528","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fp528","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fp528/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fp528/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2Fp528/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NTIA","download_url":"https://codeload.github.com/NTIA/p528/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647257,"owners_count":21139081,"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":["cpp","csharp","itu","propagation"],"created_at":"2024-11-07T17:11:28.015Z","updated_at":"2025-04-12T23:31:57.636Z","avatar_url":"https://github.com/NTIA.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Recommendation ITU-R P.528-5 - U.S. Reference Implementation #\n\nPersistent Identifier: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5081071.svg)](https://doi.org/10.5281/zenodo.5081071)\n\nThis code repository contains the U.S. Reference Software Implementation of Recommendation ITU-R P.528. This Recommendation contains a method for predicting basic transmission loss in the frequency range 100-30 000 MHz for aeronautical services.  The software implements Annex 2 of Rec P.528, the Step-by-Step method to computing propagation loss for air-to-ground paths.\n\nCompanion software ([p528-gui](https://github.com/NTIA/p528-gui)) provides a Graphical User Interface (GUI) that can be used with this software implementation. \n\n## Inputs ##\n\n| Variable          | Type   | Units | Limits       | Description  |\n|-------------------|--------|-------|--------------|--------------|\n| `d__km`           | double | km    | 0 \u003c= `d__km` | Great circle path distance between terminals |\n| `h_1__meter`      | double | meter | 1.5 \u003c= `h_1__meter` \u003c= 20 000 | Height of the low terminal |\n| `h_2__meter`      | double | meter | 1.5 \u003c= `h_2__meter` \u003c= 20 000 | Height of the high terminal |\n| `f__mhz`          | double | MHz   | 100 \u003c= `f__mhz` \u003c= 30 000 | Frequency |\n| `T_pol`           | int    |       |              | Polarization \u003cul\u003e\u003cli\u003e0 = Horizontal\u003c/li\u003e\u003cli\u003e1 = Vertical\u003c/li\u003e\u003c/ul\u003e |\n| `time`            | double |       | 1 \u003c= `time` \u003c= 99 | Time percentage |\n \n## Outputs ##\n\nOutputs to P.528 are contained within a defined `Results` structure.\n\n| Variable   | Type   | Units | Description |\n|------------|--------|-------|-------------|\n| `d__km`    | double | km    | Great circle path distance.  Could be slightly different than specified in input variable if within LOS region |\n| `A__db`    | double | dB    | Basic transmission loss |\n| `A_fs__db` | double | dB    | Free space basic transmission loss |\n| `A_a__db`  | double | dB    | Median atmospheric absorption loss |\n| `theta_h1__rad` | double | rad | Elevation angle of the ray at the low terminal |\n| `propagation_mode` | int |  | Mode of propagation \u003cul\u003e\u003cli\u003e1 = Line of Sight\u003c/li\u003e\u003cli\u003e2 = Diffraction\u003c/li\u003e\u003cli\u003e3 = Troposcatter\u003c/li\u003e\u003c/ul\u003e |\n| `warnings` | int    |       | Warning flags |\n\n## Error Codes and Warning Flags ##\n\nP.528 supports a defined list of error codes and warning flags.  A complete list can be found [here](ERRORS_AND_WARNINGS.md).\n\n## Example Values ##\n\nThe below table includes a select set of example inputs and outputs for testing purposes. The [P.528 CSV data files](https://www.itu.int/rec/R-REC-P.528/en) contain an extensive set of validation example values.\n\n| `d__km` | `h_1__meter` | `h_2__meter` | `f__mhz` | `T_pol` | `time` | `A__db` |\n| --------|--------------|--------------|----------|---------|--------|---------|\n|      15 |           10 |        1 000 |      500 |       0 |     50 |   110.0 |\n|     100 |          100 |       15 000 |    3 600 |       0 |     90 |   151.6 |\n|   1 500 |           15 |       10 000 |    5 700 |       0 |     10 |   293.4 |\n|      30 |            8 |       20 000 |   22 000 |       1 |     50 |   151.1 |\n\n## Notes on Code Style ##\n\n * In general, variables follow the naming convention in which a single underscore denotes a subscript (pseudo-LaTeX format), where a double underscore is followed by the units, i.e. h_1__meter.\n * Variables are named to match their corresponding mathematical variables in the underlying Recommendation text.\n * Wherever possible, equation numbers are provided.  It is assumed that a user reviewing this source code would have a copy of the Recommendation's text available as a primary reference.\n\n## Configure and Build ##\n\n### C++ Software\n\nThe software is designed to be built into a DLL (or corresponding library for non-Windows systems).  The source code can be built for any OS that supports the standard C++ libraries.  A Visual Studio 2019 project file is provided for Windows users to support the build process and configuration.\n\n### C#/.NET Wrapper Software\n\nThe .NET support of P.528 consists of a simple pass-through wrapper around the native DLL.  It is compiled to target .NET Framework 4.8.  Distribution and updates are provided through the published [NuGet package](https://github.com/NTIA/p528/packages).\n\n## References ##\n\n * [Recommendation ITU-R P.528](https://www.itu.int/rec/R-REC-P.528/en)\n * [Rec ITU-R P.528 GUI](https://github.com/NTIA/p528-gui)\n\n## Contact ##\n\nFor questions, contact Billy Kozma, wkozma@ntia.gov\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntia%2Fp528","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fntia%2Fp528","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntia%2Fp528/lists"}