lfmf-python

Python wrapper for the NTIA/ITS implementation of the Low Frequency / Medium Frequency (LF/MF) Propagation Model. LF/MF predicts basic transmission loss in the frequency range 0.01 - 30 MHz for propagation paths over a smooth Earth and antenna heights less than 50 meters.

https://github.com/ntia/lfmf-python

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

antenna lfmf propagation proplib python spectrum
Last synced: 6 months ago · JSON representation ·

Repository

Python wrapper for the NTIA/ITS implementation of the Low Frequency / Medium Frequency (LF/MF) Propagation Model. LF/MF predicts basic transmission loss in the frequency range 0.01 - 30 MHz for propagation paths over a smooth Earth and antenna heights less than 50 meters.

Basic Info
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 1
Topics
antenna lfmf propagation proplib python spectrum
Created about 1 year ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License Citation Zenodo

README.md

Low Frequency / Medium Frequency (LF/MF) Propagation Model, Python® Wrapper

NTIA/ITS PropLib PyPI Release GitHub Actions Unit Test Status GitHub Issues DOI

This code repository contains a Python wrapper for the NTIA/ITS implementation of the Low Frequency / Medium Frequency (LF/MF) Propagation Model. LF/MF predicts basic transmission loss in the frequency range 0.01 - 30 MHz for propagation paths over a smooth Earth and antenna heights less than 50 meters. This Python package wraps the NTIA/ITS C++ implementation.

Getting Started

This software is distributed on PyPI and is easily installable using the following command.

cmd pip install proplib-lfmf

General information about using this model is available on its page on the NTIA/ITS Propagation Library Wiki. Additionally, Python-specific instructions and code examples are available here.

If you're a developer and would like to contribute to or extend this repository, please review the guide for contributors here or open an issue to start a discussion.

Development

This repository contains code which wraps the C++ shared library as an importable Python module. If you wish to contribute to this repository, testing your changes will require the inclusion of this shared library. You may retrieve this either from the relevant GitHub Releases page, or by compiling it yourself from the C++ source code. Either way, ensure that the shared library (.dll, .dylib, or .so file) is placed in src/ITS/Propagation/LFMF/, alongside __init__.py.

Below are the steps to build and install the Python package from the source code. Working installations of Git and a currently-supported version of Python are required. Additional requirements exist if you want to compile the shared library from C++ source code; see relevant build instructions here.

  1. Optionally, configure and activate a virtual environment using a tool such as venv or conda.

  2. Clone this repository, then initialize the Git submodule containing the test data.

    ```cmd

    Clone the repository

    git clone https://github.com/NTIA/LFMF-python cd LFMF-python

    Initialize Git submodule containing test data

    git submodule init

    Clone the submodule

    git submodule update ```

  3. Download the shared library (.dll, .so, or .dylib) from a GitHub Release. Then place the downloaded file in src/ITS/Propagation/LFMF/ (alongside __init__.py).

  4. Install the local package and development dependencies into your current environment:

    cmd pip install .[dev]

  5. To build the wheel for your platform:

    cmd hatchling build

Running Tests

Python unit tests can be run to confirm successful installation. You will need to clone this repository's test data submodule (as described above). Then, run the tests with pytest using the following command.

cmd pytest

References

  • ITS Propagation Library Wiki
  • LFMF Wiki Page
  • ITS.Propagation.LFMF C++ API Reference
  • Bremmer, H. "Terrestrial Radio Waves" Elsevier, 1949.
  • DeMinco, N. "Medium Frequency Propagation Prediction Techniques and Antenna Modeling for Intelligent Transportation Systems (ITS) Broadcast Applications", NTIA Report 99-368, August 1999
  • DeMinco, N. "Ground-wave Analysis Model For MF Broadcast System", NTIA Report 86-203, September 1986
  • Sommerfeld, A. "The propagation of waves in wireless telegraphy", Ann. Phys., 1909, 28, p.665
  • Wait, J. "Radiation From a Vertical Antenna Over a Curved Stratified Ground", Journal of Research of the National Bureau of Standards. Vol 56, No. 4, April 1956. Research Paper 2671

License

See LICENSE.

"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 code@ntia.gov.

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.

Owner

  • Name: Code from NTIA
  • Login: NTIA
  • Kind: organization
  • Location: Washington DC/Boulder CO

Code produced by NTIA including OSM and ITS. ITS website available at https://its.ntia.gov

Citation (CITATION.cff)

cff-version: 1.2.0
title: >-
  Low Frequency / Medium Frequency (LF/MF) Propagation Model, Python Wrapper
message: Please cite this software using these metadata.
type: software
authors:
  - family-names: Heroy
    given-names: Chen
    affiliation: >-
      U.S. Department of Commerce, National
      Telecommunications and Information Administration,
      Institute for Telecommunication Sciences
    orcid: 'https://orcid.org/0009-0006-8728-4502'
    email: cheroy.ctr@ntia.gov
  - family-names: Romaniello
    given-names: Anthony W.
    affiliation: >-
      U.S. Department of Commerce, National
      Telecommunications and Information Administration,
      Institute for Telecommunication Sciences
    orcid: 'https://orcid.org/0000-0001-8437-6504'
    email: aromaniello@ntia.gov
  - name: >-
      U.S. Department of Commerce, National
      Telecommunications and Information Administration,
      Institute for Telecommunication Sciences
    address: 325 Broadway
    city: Boulder
    country: US
    post-code: '80305'
    region: Colorado
    alias: NTIA/ITS
    email: code@ntia.gov
    website: 'https://its.ntia.gov'
repository-code: 'https://github.com/NTIA/LFMF-python'
url: 'https://ntia.github.io/propagation-library-wiki/models/LFMF'
keywords:
  - its
  - propagation
  - lfmf
  - antennas
version: 1.1.0

GitHub Events

Total
  • Release event: 2
  • Watch event: 3
  • Delete event: 4
  • Public event: 1
  • Push event: 10
  • Pull request review comment event: 6
  • Pull request review event: 7
  • Pull request event: 8
  • Create event: 6
Last Year
  • Release event: 2
  • Watch event: 3
  • Delete event: 4
  • Public event: 1
  • Push event: 10
  • Pull request review comment event: 6
  • Pull request review event: 7
  • Pull request event: 8
  • Create event: 6

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 12
  • Average time to close issues: N/A
  • Average time to close pull requests: 6 days
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 12
  • Average time to close issues: N/A
  • Average time to close pull requests: 6 days
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • cheroy-ntia (7)
  • aromanielloNTIA (5)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/cff-validator.yml actions
  • actions/checkout v4 composite
  • dieghernan/cff-validator v4 composite
.github/workflows/pytest.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • robinraju/release-downloader v1 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
  • robinraju/release-downloader v1 composite
pyproject.toml pypi