Radio propagation modelling
Switch branches/tags
Nothing to show
Clone or download
Latest commit b2a5256 Oct 31, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Updated get_geoid_height URL May 7, 2017
ipynb Cleaned up May 8, 2017
wavetrace Update gitlab API calls from v3 to v4. Oct 31, 2018
CHANGELOG v4.0.3 release Oct 31, 2018
LICENSE.txt Added ESRI Shapefile export options. Will test more next time. Jan 13, 2017
requirements.txt Update Python libraries. Oct 30, 2018 v4.0.3 release Oct 31, 2018



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



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:


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


  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


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.


In docs and on Rawgit here

Further Reading


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