{"id":18750330,"url":"https://github.com/ntia/ilm","last_synced_at":"2025-06-21T10:06:29.550Z","repository":{"id":242235689,"uuid":"809026199","full_name":"NTIA/ILM","owner":"NTIA","description":"The Irregular Lunar Model","archived":false,"fork":false,"pushed_at":"2025-01-07T01:25:56.000Z","size":372,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-20T11:08:34.081Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-01T13:27:25.000Z","updated_at":"2025-03-18T18:51:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"b662637c-28ca-4249-ba47-d5550370ba1f","html_url":"https://github.com/NTIA/ILM","commit_stats":null,"previous_names":["ntia/ilm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2FILM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2FILM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2FILM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2FILM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NTIA","download_url":"https://codeload.github.com/NTIA/ILM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NTIA%2FILM/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259238876,"owners_count":22826811,"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":[],"created_at":"2024-11-07T17:11:27.165Z","updated_at":"2025-06-11T09:32:06.694Z","avatar_url":"https://github.com/NTIA.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Irregular Lunar Model (ILM) #\n\n**Note: This software repository has been made available as an active workspace in support of on-going discussions \nduring the 2024 ITU-R Study Group 3 meetings. The work presented here represents an example implementation of the\nILM. Software releases in this repository are best-effort attempts to augment conversation and support collaboration and \ndata sharing in the context of NTIA's scientific culture that values Open Science and holds that openness in science \nis fundamental to scientific and research integrity. The contents of this repository, including any software \nreleases, have not undergone ITS standard quality review procedures such as code-reviews and unit testing.**\n\nThis code repository contains a US implementation of the Irregular Lunar Model (ILM). ILM predicts terrestrial \nradiowave propagation for frequencies between 20 MHz and 20 GHz based on electromagnetic theory and empirical \nmodels developed by Anita Longley and Phil Rice. Propagation mechanisms considered include free space loss \nand diffraction. Specifically, ILM predicts attenuation as a function of distance (greater than 1 km), \nterminal heights, terrain effects, and the variability of the signal in location.\n\n## Inputs ##\n\nILM can be called in either Area Prediction Mode or Point-to-Point Prediction Mode.  The below inputs \nare organized accordingly.\n\n### Common Inputs ###\n\n| Variable          | Type   | Units | Limits       | Description  |\n|-------------------|--------|-------|--------------|--------------|\n| `h_tx__meter`     | double | meter | 0.5 \u003c= `h_tx__meter` \u003c= 3000 | Structural height of the TX |\n| `h_rx__meter`     | double | meter | 0.5 \u003c= `h_rx__meter` \u003c= 3000 | Structural height of the RX |\n| `f__mhz`          | double | MHz   | 20 \u003c= `f__mhz` \u003c= 20000 | Frequency |\n| `pol`             | int    |       | enum          | Polarization  \u003cul\u003e\u003cli\u003e0 = Horizontal\u003c/li\u003e\u003cli\u003e1 = Vertical\u003c/li\u003e\u003c/ul\u003e |\n| `epsilon`         | double |       | 1 \u003c `epsilon` | Relative permittivity |\n| `sigma`           | double | S/m   | 0 \u003c `sigma`   | Conductivity |\n| `p`               | double |       | 0 \u003c `p` \u003c 100 | Location variability |\n\n### Point-to-Point Mode Specific Inputs ###\n\n| Variable          | Type   | Units | Limits       | Description  |\n|-------------------|--------|-------|--------------|--------------|\n| `pfl`             | double[] | meter |              | Terrain profile data in PFL format, from TX to RX \u003cul\u003e\u003cli\u003e`pfl[0]` : Number of elevation points - 1\u003c/li\u003e\u003cli\u003e`pfl[1]` : Resolution, in meters\u003c/li\u003e\u003cli\u003e`pfl[i]` : Elevation above sea level, in meters\u003c/li\u003e\u003c/ul\u003e |\n\n### Area Mode Inputs ###\n\n| Variable          | Type   | Units | Limits       | Description  |\n|-------------------|--------|-------|--------------|--------------|\n| `d__km`           | double | km    | 0 \u003c `d__km`  | Path distance |\n| `delta_h__meter`  | double | meter | 0 \u003c= `delta_h__meter` | Terrain irregularity parameter |\n| `tx_siting_criteria` | int |       | enum         | Siting criteria of TX \u003cul\u003e\u003cli\u003e0 = Mobile\u003c/li\u003e\u003cli\u003e1 = Fixed\u003c/li\u003e\u003c/ul\u003e|\n| `rx_siting_criteria` | int |       | enum         | Siting criteria of RX \u003cul\u003e\u003cli\u003e0 = Mobile\u003c/li\u003e\u003cli\u003e1 = Fixed\u003c/li\u003e\u003c/ul\u003e|\n\n## Outputs ##\n\n| Variable      | Type   | Units | Description |\n|---------------|--------|-------|-------------|\n| `A__db`       | double | dB    | Basic transmission loss |\n| `warnings`    | int    |       | Warning flags |\n\n## Intermediate Values ##\n\nInternal intermediate values can be extracted from ILM via functions that are suffixed with `_Ex`.  These \nfunctions will populate the `IntermediateValues` data structure with intermediate values from the ILM calculations.\n\n| Variable         | Type      | Units       | Description |\n|------------------|-----------|-------------|-------------|\n| `theta_hzn`      | double[]  | radians     | Terminal horizon angles |\n| `d_hzn__meter`   | double[]  | meter       | Terminal horizon distances |\n| `h_e__meter`     | double[]  | meter       | Effective terminal heights |\n| `delta_h__meter` | double    | meter       | Terrain irregularity parameter |\n| `A_ref__db`      | double    | dB          | Reference attenuation |\n| `A_fs__db`       | double    | dB          | Free space basic transmission loss |\n| `d__km`          | double    | km          | Path distance |\n| `mode`           | int       |             | Mode of propagation \u003cul\u003e\u003cli\u003e10 = Line of Sight\u003c/li\u003e\u003cli\u003e20 = Diffraction, Single Horizon\u003c/li\u003e\u003cli\u003e21 = Diffraction, Double Horizon\u003c/li\u003e\u003c/ul\u003e|\n\n## Error Codes and Warning Flags ##\n\nILM supports a defined list of error codes and warning flags.  A complete list can be found [here](ERRORS_AND_WARNINGS.md).\n\n## Notes on Code Style ##\n\n* In general, variables follow the naming convention in which a single underscore denotes a subscript \n(pseudo-LaTeX format), and where a double underscore is followed by the units, i.e. h_tx__meter.\n* Variables are named to match their corresponding mathematical variables in the underlying references.\n* Wherever possible, equation numbers and source documentation are provided.\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 \ncan be built for any OS that supports the standard C++ libraries.\n\n## References ##\n\n* United States WP 3J input contribution [3J/26](https://www.itu.int/md/R23-WP3J-C-0026/en)\n\n## Contact ##\n\nFor technical questions about ILM, contact Billy Kozma, wkozma@ntia.gov.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntia%2Film","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fntia%2Film","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntia%2Film/lists"}