Skip to content

jpgnz/wavetrace

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wavetrace

Wavetrace is a Python 3.5 package designed to produce radio signal coverage reports, such as GeoTIFF files of signal strength contours,

docs/images/signal_strength_contours.png

docs/images/legend.png

given radio transmitter data and topography data around the transmitters. It uses SPLAT! to predict the attenuation of radio signals, which implements a Longley-Rice model.

Wavetrace can also compute line-of-site maps for geostationary satellites:

docs/images/S36E173_satellite_los.png

Wavetrace is intended for use in New Zealand but can be configured to work elsewhere on Earth.

Installation

  1. Install SPLAT! >= 1.4.0, GDAL >= 1.11, and ImageMagick. For example, to install these on a Linux system do sudo apt-get update; sudo apt-get install splat gdal-bin python-gdal imagemagick
  2. Create a Python 3.5 virtual environment
  3. In your virtual environment, install Wavetrace via Pip via pip install wavetrace

Usage

Here is a common workflow for computing radio signal coverage reports for terrestrial transmitters.

  1. Create a CSV file containing transmitter data; see tests/data/transmitters.csv
  2. Process the transmitter data into SPLAT! files via the function wavetrace.main.process_transmitters
  3. Download topography data around the transmitters via the functions wavetrace.main.compute_tiles and wavetrace.main.download_topography. Topography data comes in two flavors: SRTM3 (standard definition; 3 arc second resolution; roughly 66 meters at 45 degrees south latitude) or SRTM1 (high definition; 1 arc second resolution; roughly 22 meters at 45 degrees south latitude). SPLAT! can only handle those two formats.
  4. Process the topography data into SPLAT! files via the function wavetrace.main.process_topography
  5. Compute signal coverage reports, which include GeoTIFF signal strength contour maps, from the processed transmitter and topography data via the function wavetrace.main.compute_coverage

See the IPython notebook ipynb/examples.ipynb for a detailed example.

Additionally, you can call the most useful functions in the module wavetrace.main through Wavey, a command line interface for Wavetrace implemented in the module wavetrace.cli.

Documentation

In docs and on Rawgit here

Further Reading

Authors

  • Chris Guest (2013-06)
  • Alex Raichev (2016-08)

About

Radio propagation modelling

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 93.9%
  • Jupyter Notebook 6.1%