hoche / splat

SPLAT! is an RF Signal Propagation, Loss, And Terrain analysis tool for the spectrum between 20 MHz and 20 GHz. This is a copy of the code written by John Magliacane, heavily modified to clean up the code and take advantage of multithreading. This incorporates John's antenna height modifications from the as-yet-unreleased SPLAT 1.4.3.
http://www.qsl.net/kd2bd/splat.html
GNU General Public License v2.0
27 stars 6 forks source link

SPLAT!

A Terrestrial RF Path and Terrain Analysis Tool for Unix/Linux

About

This version is a refactoring of the code in 1.5, along with some enhancements to support GDAL. It otherwise does exactly the same calculations, and has the bugfixed and enhancements of 1.5, including multithreading and GDAL support.

The "classic" SPLAT version 1.5 is also available as a separate branch. It is based off John Magliacane's 1.4.2 release, but with a few bugfixes. However, we recommend this 2.0 branch for both stability and performance.

Future version may either use OpenCL or Vulkan to hand computation off to a graphics card in the hopes of even more speed improvements. In preparation for this, itwom3.0 was made fully C99-compliant, as all the current implementations of OpenCL drivers require that. (Later versions of OpenCL allow C++, but none of the common GPU drivers support that).

Building

For this version, you must have CMake and either gcc or clang installed, and it must be a version that supports at least C++11 .

You also need several utility libraries:

and gnuplot for generating graphs.

You can generally get these via system packages. For instance:

Centos 7:

yum install cmake bzip2-devel zlib-devel libpng-devel libjpeg-turbo-devel libgdal-devel gnuplot

Debian (Buster) and Ubuntu (18.04 LTS):

apt-get install cmake libbz2-dev zlib1g-dev libjpeg-dev libpng-dev libgdal-dev gnuplot

OSX (High Sierra):

Homebrew

brew install cmake jpeg libpng libgdal gnuplot

MacPorts

port install cmake jpeg libpng libgdal gnuplot

Example Build on Ubuntu 18.04 LTS

As an example, a build on Ubuntu 18.04 LTS might look like this:

sudo apt install git cmake
git clone https://github.com/hoche/splat.git
sudo apt install libbz2-dev zlib1g-dev libjpeg-dev libpng-dev libgdal-dev gnuplot
cd splat/build
cmake ..
make

Microsoft Windows

See README_VisualStudio.md

Installation

After building, run

make install

Running

Topography data must be downloaded and SPLAT Data Files must be generated using the included srtm2sdf, postdownload, or usgs2sdf utilities before using SPLAT! Instructions for doing so are included in the documentation.

It is a good practice to create a working directory for SPLAT! use under your home directory:

mkdir $HOME/splat-work

Then:

cd $HOME/splat-work

before invoking SPLAT!

In this manner, all associated SPLAT! working files can be kept in a common directory.

It is important to realize that when analyzing regional coverage areas of transmitters, repeaters, or cell sites, SPLAT! Data Files need to be available for the entire region surrounding the site(s) being analyzed. SPLAT! Data Files can be placed under your SPLAT! working directory, or under a separate directory specified in your $HOME/.splat_path file so SPLAT! can easily find them.

Please read the README file under the utils directory for information on the utilities included with SPLAT!.

Please read the documentation under docs directory, or consult the program's man page for more information and examples of SPLAT! use.

Changes

The build system has been converted to CMake.

To Do

Acknowledgements

This project and code is based on the original SPLAT! version 1.4.2 by John A. Magliacane, KD2BD: http://www.qsl.net/kd2bd/splat.html