SPLAT!(1)
๐ SPLAT!(1) โ KD2BD Software ๐
okay bestie, sit down, hydrate, because we're about to talk about SPLAT! โ aka the splat command โ aka An RF Signal Propagation, Loss, And Terrain analysis tool. yes that's the whole vibe. it's giving "your fave physics homework but make it iconic" โจ
๐ NAME ๐
splat โ An RF Signal Propagation, Loss, And Terrain analysis tool. that's it, that's the name, no notes ๐ซถ
โจ SYNOPSIS โจ
like literally just run it, but with the right little flags okay:
splat
[-t transmitter_site.qth]
[-r receiver_site.qth]
[-c rx antenna height for LOS coverage analysis (feet/meters) (float)]
[-L rx antenna height for ITM coverage analysis (feet/meters) (float)]
[-p terrain_profile.ext]
[-e elevation_profile.ext]
[-h height_profile.ext]
[-H normalized_height_profile.ext]
[-l ITM_profile.ext]
[-o topographic_map_filename.ppm]
[-b cartographic_boundary_filename.dat]
[-s site/city_database.dat]
[-d sdf_directory_path]
[-m earth radius multiplier (float)]
[-f frequency (MHz) for Fresnel zone calculations (float)]
[-R maximum coverage radius (miles/kilometers) (float)]
[-dB threshold beyond which contours will not be displayed]
[-gc ground clutter height (feet/meters) (float)]
[-fz Fresnel zone clearance percentage (default = 60)]
[-ano alphanumeric output file name]
[-ani alphanumeric input file name]
[-udt user_defined_terrain_file.dat]
[-log logfile.ext]
[-n]
[-N]
[-nf]
[-sc]
[-dbm]
[-ngs]
[-geo]
[-kml]
[-gpsav]
[-metric]
[-olditm]
no cap, that's a lot of flags, and we're gonna get to every single one of them later. patience, bestie, we're doing this in order ๐
๐ฆ DESCRIPTION ๐ฆ
so SPLAT! is this genuinely powerful terrestrial RF propagation and terrain analysis tool, and it works in the spectrum between 20 MHz and 20 GHz. that's the range, memorize it, it's on the test (there's no test, but still).
SPLAT! is free software, and it's designed to run on Unix and Linux-based workstations. redistribution and/or modification is permitted under the terms of the GNU General Public License, Version 2</>, as published by the Free Software Foundation</>. and okay, important part, listen up: adoption of SPLAT! source code in proprietary or closed-source applications is a violation of this license and is strictly forbidden. like, do not do that. periodt. ๐ซ
SPLAT! is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ๐ญ (this is the legal equivalent of "no refunds bestie")
๐ INTRODUCTION ๐
so what do people actually do with SPLAT!? glad you asked, because the list is lowkey stacked:
- the visualization, design, and link budget analysis of wireless Wide Area Networks (WANs)
- commercial and amateur radio communication systems above 20 MHz
- microwave links
- frequency coordination and interference studies
- the prediction of analog and digital terrestrial radio and television contour regions
and the data it hands you?? chef's kiss. SPLAT! provides RF site engineering data such as:
- great circle distances and bearings between sites
- antenna elevation angles (uptilt)
- depression angles (downtilt)
- antenna height above mean sea level
- antenna height above average terrain
- bearings, distances, and elevations to known obstructions
- Irregular Terrain Model path attenuation
- received signal strength
plus, as a little treat, it also gives you the minimum antenna height requirements needed to clear terrain, the first Fresnel zone, and any user-definable percentage of the first Fresnel zone. ๐
SPLAT! produces reports, graphs, and high resolution topographic maps that depict line-of-sight paths, and regional path loss and signal strength contours โ and through those you can obtain expected coverage areas of transmitters and repeater systems. and when you're doing line-of-sight and Irregular Terrain Model analyses in situations where multiple transmitter or repeater sites are employed, SPLAT! determines individual and mutual areas of coverage within the network specified. mutual. we love a collaborative queen ๐
๐ง INPUT FILES ๐ง
SPLAT! is a command-line driven application, and it reads its input data through a number of data files. some of these files are mandatory for successful execution of the program, while others are optional. here's the breakdown:
mandatory files (no skips, no substitutions):
- digital elevation topography models in the form of SPLAT Data Files (SDF files)
- site location files (QTH files)
- Irregular Terrain Model parameter files (LRP files)
optional files (the fun extras):
- city location files
- cartographic boundary files
- user-defined terrain files
- path loss input files
- antenna radiation pattern files
- color definition files
๐ธ SPLAT DATA FILES ๐ธ
SPLAT! imports topographic data in the form of SPLAT Data Files (SDFs). these files may be generated from a number of information sources. so, in the United States, SPLAT Data Files can be generated through U.S. Geological Survey Digital Elevation Models (DEMs) using the postdownload and usgs2sdf utilities included with SPLAT!. USGS Digital Elevation Models compatible with these utilities may be downloaded from:
http://edcftp.cr.usgs.gov/pub/data/DEM/250/.
significantly better resolution and accuracy can be obtained through the use of SRTM Version 2 digital elevation models, especially when supplemented by USGS-derived SDF data. these one-degree by one-degree models are the product of the Space Shuttle STS-99 Radar Topography Mission, and are available for most populated regions of the Earth. SPLAT Data Files may be generated from 3 arc-second SRTM-3 data using the included srtm2sdf utility. SRTM-3 Version 2.1 data may be obtained through anonymous FTP from:
http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/
โ ๏ธ note that SRTM filenames refer to the latitude and longitude of the southwest corner of the topographic dataset contained within the file. so the region of interest must lie north and east of the latitude and longitude provided in the SRTM filename. this trips people up, don't let it be you ๐
even greater resolution and accuracy can be obtained by using 1 arc-second SRTM-1 Version 2.1 topography data. this data is available for the United States and its territories and possessions, and may be downloaded from:
http://dds.cr.usgs.gov/srtm/version2_1/SRTM1/
high resolution SDF files for use with SPLAT! HD may be generated from data in this format using the srtm2sdf-hd utility. ๐
despite the higher accuracy that SRTM data has to offer, some voids in the data sets exist. when voids are detected, the srtm2sdf and srtm2sdf-hd utilities replace them with corresponding data found in usgs2sdf generated SDF files. if USGS-derived SDF data is not available, voids are handled through adjacent pixel averaging, or direct replacement. (patching the plot holes, honestly ๐ฉน)
SPLAT Data Files contain integer value topographic elevations in meters referenced to mean sea level for 1-degree by 1-degree regions of the Earth. SDF files can be read by SPLAT! in either:
- standard format (
.sdf) as generated directly by theusgs2sdf,srtm2sdf, andsrtm2sdf-hdutilities, or - bzip2 compressed format (
.sdf.bz2)
since uncompressed files can be read slightly faster than files that have been compressed, SPLAT! searches for needed SDF data in uncompressed format first. if uncompressed data cannot be located, SPLAT! then searches for data in bzip2 compressed format. if no compressed SDF files can be found for the region requested, SPLAT! assumes the region is over water, and will assign an elevation of sea-level to these areas. ๐
this feature of SPLAT! makes it possible to perform path analysis not only over land, but also between coastal areas not represented by Digital Elevation Model data. however โ and this is the important bit โ this behavior of SPLAT! underscores the importance of having all the SDF files required for the region being analyzed if meaningful results are to be expected. no missing files, bestie, or the vibes will be off and so will your data ๐ญ
๐ SITE LOCATION (QTH) FILES ๐
SPLAT! imports site location information of transmitter and receiver sites analyzed by the program from ASCII files having a .qth extension. here's what lives inside a QTH file:
- the site's name
- the site's latitude (positive if North of the equator, negative if South)
- the site's longitude (in degrees West, 0 to 360 degrees, or degrees East 0 to -360 degrees)
- the site's antenna height above ground level (AGL)
each separated by a single line-feed character. the antenna height is assumed to be specified in feet unless followed by the letter m or the word meters in either upper or lower case. latitude and longitude information may be expressed in either decimal format (74.6864) or degree, minute, second (DMS) format (74 41 11.0). ๐ซถ
for example, a site location file describing television station WNJT-DT, Trenton, NJ (wnjt-dt.qth) might read as follows:
WNJT-DT
40.2828
74.6864
990.00
each transmitter and receiver site analyzed by SPLAT! must be represented by its own site location (QTH) file. one site, one file. main character energy per file, honestly ๐
๐ฆ IRREGULAR TERRAIN MODEL PARAMETER (LRP) FILES ๐
okay so bestie, if you want SPLAT! to figure out RF path loss, field strength, or received signal power level โ whether that's point-to-point or area prediction mode โ you need Irregular Terrain Model Parameter data files. no cap. โจ
The tea: SPLAT! reads this ITM parameter data from files that have the same base name as the transmitter site QTH file, except the extension is .lrp. And every LRP file looks like this (wnjt-dt.lrp):
15.000 ; Earth Dielectric Constant (Relative permittivity)
0.005 ; Earth Conductivity (Siemens per meter)
301.000 ; Atmospheric Bending Constant (N-units)
647.000 ; Frequency in MHz (20 MHz to 20 GHz)
5 ; Radio Climate (5 = Continental Temperate)
0 ; Polarization (0 = Horizontal, 1 = Vertical)
0.50 ; Fraction of situations (50% of locations)
0.90 ; Fraction of time (90% of the time)
46000.0 ; Effective Radiated Power (ERP) in Watts (optional)
so what happens if there's no LRP file matching your tx_site QTH file? SPLAT! goes hunting in the current working directory for a file called "splat.lrp". ๐ต๏ธ And if that one isn't there either? SPLAT! just assigns default parameters itself and writes out a matching "splat.lrp" file with those defaults into the current working directory, so you can go in and edit it however you want. iconic behavior honestly.
๐ธ Typical Earth dielectric constants & conductivity values ๐ธ
here's the cheat sheet, and the way these are laid out is dielectric constant then conductivity:
- Salt water โ 80, 5.000
- Good ground โ 25, 0.020
- Fresh water โ 80, 0.010
- Marshy land โ 12, 0.007
- Farmland, forest โ 15, 0.005
- Average ground โ 15, 0.005
- Mountain, sand โ 13, 0.002
- City โ 5, 0.001
- Poor ground โ 4, 0.001
๐ Radio climate codes used by SPLAT! ๐
- Equatorial (Congo)
- Continental Subtropical (Sudan)
- Maritime Subtropical (West coast of Africa)
- Desert (Sahara)
- Continental Temperate
- Maritime Temperate, over land (UK and west coasts of US & EU)
- Maritime Temperate, over sea
ngl, Continental Temperate is the one you'll see all the time โ it's common to big land masses in the temperate zone, like the United States. And for paths shorter than 100 km, Continental and Maritime Temperate climates are barely different at all. ๐
The seventh and eighth parameters in the .lrp file are the whole statistical analysis thing that the ITM model provides. In the example above, SPLAT! returns the maximum path loss happening in 50% of situations (that's fraction of situations, aka Location Variability) 90% of the time (that's fraction of time, aka Time Variability). Longley-Rice studies call this F(50,90). In the United States, F(50,90) is typically what's used for digital television (8-level VSB modulation), while F(50,50) is what analog (VSB-AM+NTSC) broadcasts use. ๐
want even more ITM propagation model parameter lore? the original page points you here:
http://www.its.bldrdoc.gov/resources/radio-propagation-software/itm/itm.aspxhttp://www.softwright.com/faq/engineering/prop_longley_rice.html
The last parameter in the .lrp file is the transmitter's Effective Radiated Power (ERP), and it's optional. Include it, and SPLAT! computes received signal strength levels and field strength level contours when it's doing ITM studies. Omit it, and path loss gets computed instead. ๐ซถ
You can override the ERP that's sitting in the .lrp file by using SPLAT!'s -erp command-line switch. And here's a lil pro move: if your .lrp file does have an ERP parameter but you actually want path loss contours instead of field strength contours, just assign the ERP to zero with the -erp switch โ no need to edit the .lrp file at all to get the same result. chef's kiss ๐
๐๏ธ CITY LOCATION FILES โจ
You can import the names and locations of cities, tower sites, or literally any other points of interest and plot them on the topographic maps SPLAT! generates. ๐บ๏ธ SPLAT! pulls city and location names from ASCII files that hold the location's name, latitude, and longitude. Every field is separated by a comma. Every record is separated by a single line feed character. And just like with the .qth files, latitude and longitude can be written in either decimal or degree, minute, second (DMS) format. ๐
for example (cities.dat):
Teaneck, 40.891973, 74.014506
Tenafly, 40.919212, 73.955892
Teterboro, 40.859511, 74.058908
Tinton Falls, 40.279966, 74.093924
Toms River, 39.977777, 74.183580
Totowa, 40.906160, 74.223310
Trenton, 40.219922, 74.754665
You can import a total of five separate city data files at a time, and there is no limit to how big those files can be. ๐
SPLAT! reads city data on a "first come/first served" basis and only plots locations whose annotations don't conflict with the annotations of locations read earlier in the current city data file, or in previous files. This keeps your SPLAT! topographic maps from looking cluttered, but it also means: important locations go toward the beginning of the first city data file, and less important locations go further down the list or into the subsequent files. The way that ordering literally decides what shows upโฆ ๐ญ
You can make city data files by hand in any text editor, import them from other sources, or derive them from data available from the U.S. Census Bureau using the citydecoder utility that ships with SPLAT!. That data is available free of charge via the Internet at:
http://web.archive.org/web/20130331172800/http://www.census.gov/geo/www/cob/bdy_files.html
and it must be in ASCII format. ๐
๐ง CARTOGRAPHIC BOUNDARY DATA FILES ๐
You can also import cartographic boundary data to plot the boundaries of cities, counties, or states on the topographic maps SPLAT! generates. ๐ธ Such data has to be in the form of ARC/INFO Ungenerate (ASCII Format) Metadata Cartographic Boundary Files, and it's available from the U.S. Census Bureau via the Internet at:
http://web.archive.org/web/20130331144934/http://www.census.gov/geo/www/cob/co2000.html#ascii
and
http://web.archive.org/web/20130507075658/http://www.census.gov/geo/www/cob/pl2000.html#ascii
You can import a total of five separate cartographic boundary files at a time. And bestie, good news: if you've already imported county boundaries, you do not need to import state boundaries. save yourself the effort fr fr ๐
โญ PROGRAM OPERATION โญ
SPLAT! gets invoked from the command line with a series of switches and arguments. Because SPLAT! is a CPU and memory intensive application, this kind of interface keeps overhead low and plays super nicely with scripted (batch) operations. You can also change SPLAT!'s CPU and memory scheduling priority with the Unix nice command. โจ
The number and type of switches you pass to SPLAT! decide its mode of operation and how it generates output data. And here's the slay part: nearly all of SPLAT!'s switches can be cascaded in any order on the command line when you invoke the program. ๐
Literally just typing splat on the command line gives you a summary of SPLAT!'s command line options:
--==[ SPLAT! v1.4.2 Available Options... ]==--
-t txsite(s).qth (max of 4 with -c, max of 30 with -L)
-r rxsite.qth
-c plot LOS coverage of TX(s) with RX antenna at X feet/meters AGL
-L plot path loss map of TX based on an RX at X feet/meters AGL
-s filename(s) of city/site file(s) to import (5 max)
-b filename(s) of cartographic boundary file(s) to import (5 max)
-p filename of terrain profile graph to plot
-e filename of terrain elevation graph to plot
-h filename of terrain height graph to plot
-H filename of normalized terrain height graph to plot
-l filename of path loss graph to plot
-o filename of topographic map to generate (.ppm)
-u filename of user-defined terrain file to import
-d sdf file directory path (overrides path in ~/.splat_path file)
-m earth radius multiplier
-n do not plot LOS paths in .ppm maps
-N do not produce unnecessary site or obstruction reports
-f frequency for Fresnel zone calculation (MHz)
-R modify default range for -c or -L (miles/kilometers)
-sc display smooth rather than quantized contour levels
-db threshold beyond which contours will not be displayed
-nf do not plot Fresnel zones in height plots
-fz Fresnel zone clearance percentage (default = 60)
-gc ground clutter height (feet/meters)
-ngs display greyscale topography as white in .ppm files
-erp override ERP in .lrp file (Watts)
-ano name of alphanumeric output file
-ani name of alphanumeric input file
-udt name of user defined terrain input file
-kml generate Google Earth (.kml) compatible output
-geo generate an Xastir .geo georeference file (with .ppm output)
-dbm plot signal power level contours rather than field strength
-log copy command line string to this output file
-gpsav preserve gnuplot temporary working files after SPLAT! execution
-metric employ metric rather than imperial units for all user I/O
-olditm invoke older ITM propagation model rather than the newer ITWOM
The command-line options for splat and splat-hd are identical. And the -log command line switch makes all invoked command line options get logged to a file of your choosing (logfile.txt), like this:
splat -t tx_site -r rx_site -s nj_cities -o topo_map -log logfile.txt
SPLAT! operates in two distinct modes: point-to-point mode, and area prediction mode. Either a line-of-sight (LOS) or Irregular Terrain (ITM) propagation model can be invoked by the user. And when you're doing line-of-sight analysis, you can specify True Earth, four-thirds Earth, or any other user-defined Earth radius you want. ๐๐ซ
โจ POINT-TO-POINT ANALYSIS โจ
okay bestie, this is the main character mode of SPLAT!. you can use it to do line-of-sight terrain analysis between two site locations. like, two spots. on the earth. and it tells you if they can see each other. iconic.
for example:
splat -t tx_site.qth -r rx_site.qth
this invokes a line-of-sight terrain analysis between the transmitter specified in tx_site.qth and the receiver specified in rx_site.qth using a True Earth radius model, and it writes a SPLAT! Path Analysis Report to the current working directory. the report has details of the transmitter and receiver sites, and it identifies the location of any obstructions detected along the line-of-sight path. and if an obstruction can be cleared by raising the receive antenna to a greater altitude, SPLAT! will indicate the minimum antenna height required for a line-of-sight path to exist between the transmitter and receiver locations specified. ๐
heads up bestie: imperial units (miles, feet) are what you get unless you add the -metric switch to SPLAT!'s command line options:
splat -t tx_site.qth -r rx_site.qth -metric
if the antenna has to be raised a significant amount, this determination may take a few moments. like, be patient, it's thinking. ๐ง โจ and note: the results provided are the minimum necessary for a line-of-sight path to exist, and in the case of this simple example, they do not take Fresnel zone clearance requirements into consideration.
qth extensions are assumed by SPLAT! for QTH files, and they're optional when you're specifying -t and -r arguments on the command line. SPLAT! automatically reads all SPLAT Data Files necessary to conduct the terrain analysis between the sites specified. it searches for the required SDF files in the current working directory first. if the needed files aren't found, SPLAT! then searches in the path specified by the -d command-line switch:
splat -t tx_site -r rx_site -d /cdrom/sdf/
an external directory path may also be specified by placing a .splat_path file under the user's home directory. this file must contain the full directory path of last resort to all the SDF files. the path in the $HOME/.splat_path file must be of the form of a single line of ASCII text:
/opt/splat/sdf/
and it can be generated using any text editor. no cap. ๐ซถ
๐ธ the graphs, the whole graphs, and nothing but the graphs ๐ธ
a graph of the terrain profile between the receiver and transmitter locations as a function of distance from the receiver can be generated by adding the -p switch:
splat -t tx_site -r rx_site -p terrain_profile.png
SPLAT! invokes gnuplot when generating graphs. the filename extension you specify to SPLAT! determines the format of the graph produced. .png will produce a 640x480 color PNG graphic file, while .ps or .postscript will produce postscript output. output in formats such as GIF, Adobe Illustrator, AutoCAD dxf, LaTeX, and many others are available. please consult gnuplot, and gnuplot's documentation, for details on all the supported output formats. iykyk. ๐
a graph of elevations subtended by the terrain between the receiver and transmitter as a function of distance from the receiver can be generated by using the -e switch:
splat -t tx_site -r rx_site -e elevation_profile.png
the graph produced using this switch illustrates the elevation and depression angles resulting from the terrain between the receiver's location and the transmitter site from the perspective of the receiver's location. a second trace is plotted between the left side of the graph (receiver's location) and the location of the transmitting antenna on the right. this trace illustrates the elevation angle required for a line-of-sight path to exist between the receiver and transmitter locations. if the trace intersects the elevation profile at any point on the graph, then that is an indication that a line-of-sight path does not exist under the conditions given, and the obstructions can be clearly identified on the graph at the point(s) of intersection. ๐ฏ
a graph illustrating terrain height referenced to a line-of-sight path between the transmitter and receiver may be generated using the -h switch:
splat -t tx_site -r rx_site -h height_profile.png
a terrain height plot normalized to the transmitter and receiver antenna heights can be obtained using the -H switch:
splat -t tx_site -r rx_site -H normalized_height_profile.png
a contour of the Earth's curvature is also plotted in this mode. ๐
the first Fresnel Zone, and 60% of the first Fresnel Zone, can be added to height profile graphs by adding the -f switch, and specifying a frequency (in MHz) at which the Fresnel Zone should be modeled:
splat -t tx_site -r rx_site -f 439.250 -H normalized_height_profile.png
Fresnel Zone clearances other than 60% can be specified using the -fz switch as follows:
splat -t tx_site -r rx_site -f 439.250 -fz 75 -H height_profile2.png
a graph showing ITM path loss may be plotted using the -l switch:
splat -t tx_site -r rx_site -l path_loss_profile.png
as before, adding the -metric switch forces the graphs to be plotted using metric units of measure. the -gpsav switch instructs SPLAT! to preserve (rather than delete) the gnuplot working files generated during SPLAT! execution, allowing the user to edit these files and re-run gnuplot if desired. honestly? so thoughtful of it. ๐ฅน
๐ the Path Analysis Report ๐
when performing a point-to-point analysis, a SPLAT! Path Analysis Report is generated in the form of a text file with a .txt filename extension. the report contains bearings and distances between the transmitter and receiver, as well as the free-space and ITM path loss for the path being analyzed. the mode of propagation for the path is given as Line-of-Sight, Single Horizon, Double Horizon, Diffraction Dominant, or Troposcatter Dominant. additionally, if the receiver is located at the peak of a single obstruction or at the peak of a second obstruction, SPLAT! will report RX at Peak Terrain Along Path when operating under the ITWOM propagation model.
distances and locations to known obstructions along the path between transmitter and receiver are also provided. and if the transmitter's effective radiated power is specified in the transmitter's corresponding .lrp file, then predicted signal strength and antenna voltage at the receiving location is also provided in the Path Analysis Report. ๐
to determine the signal-to-noise (SNR) ratio at a remote location where random Johnson (thermal) noise is the primary limiting factor in reception:
SNR = T - NJ - L + G - NF
where:
Tis the ERP of the transmitter in dBW in the direction of the receiverNJis Johnson Noise in dBW (-136 dBWfor a 6 MHz television channel)Lis the path loss provided by SPLAT! in dB (as a positive number)Gis the receive antenna gain in dB over isotropicNFis the receiver noise figure in dB
T may be computed as follows:
T = TI + GT
where:
TIis the actual amount of RF power delivered to the transmitting antenna in dBWGTis the transmitting antenna gain (over isotropic) in the direction of the receiver (or the horizon if the receiver is over the horizon)
to compute how much more signal is available over the minimum necessary to achieve a specific signal-to-noise ratio:
Signal_Margin = SNR - S
where S is the minimum required SNR ratio (15.5 dB for ATSC (8-level VSB) DTV, 42 dB for analog NTSC television). math bestie moment fr fr. ๐งฎโจ
๐บ๏ธ topographic maps ๐บ๏ธ
a topographic map may be generated by SPLAT! to visualize the path between the transmitter and receiver sites from yet another perspective. topographic maps generated by SPLAT! display elevations using a logarithmic grayscale, with higher elevations represented through brighter shades of gray. the dynamic range of the image is scaled between the highest and lowest elevations present in the map. the only exception to this is sea-level, which is represented using the color blue. ๐
topographic output is invoked using the -o switch:
splat -t tx_site -r rx_site -o topo_map.ppm
the .ppm extension on the output filename is assumed by SPLAT!, and is optional.
in this example, topo_map.ppm will illustrate the locations of the transmitter and receiver sites specified. in addition, the great circle path between the two sites will be drawn over locations for which an unobstructed path exists to the transmitter at a receiving antenna height equal to that of the receiver site (specified in rx_site.qth).
it may be desirable to populate the topographic map with names and locations of cities, tower sites, or other important locations. a city file may be passed to SPLAT! using the -s switch:
splat -t tx_site -r rx_site -s cities.dat -o topo_map
up to five separate city files may be passed to SPLAT! at a time following the -s switch. ๐๏ธ
county and state boundaries may be added to the map by specifying up to five U.S. Census Bureau cartographic boundary files using the -b switch:
splat -t tx_site -r rx_site -b co34_d00.dat -o topo_map
๐ multiple transmitters, one receiver ๐
in situations where multiple transmitter sites are in use, as many as four site locations may be passed to SPLAT! at a time for analysis:
splat -t tx_site1 tx_site2 tx_site3 tx_site4 -r rx_site -p profile.png
in this example, four separate terrain profiles and obstruction reports will be generated by SPLAT!. a single topographic map can be specified using the -o switch, and line-of-sight paths between each transmitter and the receiver site indicated will be produced on the map, each in its own color:
- the path between the first transmitter specified to the receiver will be in green
- the path between the second transmitter and the receiver will be in cyan
- the path between the third transmitter and the receiver will be in violet
- the path between the fourth transmitter and the receiver will be in sienna
slay. four paths, four vibes. ๐
๐ PPM files and how to deal with them ๐
SPLAT! generated topographic maps are 24-bit TrueColor Portable PixMap (PPM) images. they may be viewed, edited, or converted to other graphic formats by popular image viewing applications such as xv, The GIMP, ImageMagick, and XPaint. PNG format is highly recommended for lossless compressed storage of SPLAT! generated topographic output files. ImageMagick's command-line utility easily converts SPLAT!'s PPM files to PNG format:
convert splat_map.ppm splat_map.png
another excellent PPM to PNG command-line utility is available at: http://www.libpng.org/pub/png/book/sources.html. as a last resort, PPM files may be compressed using the bzip2 utility, and read directly by The GIMP in this format.
the -ngs option assigns all terrain to the color white, and can be used when it is desirable to generate a map that is devoid of terrain:
splat -t tx_site -r rx_site -b co34_d00.dat -ngs -o white_map
the resulting .ppm image file can be converted to .png format with a transparent background using ImageMagick's convert utility:
convert -transparent "#FFFFFF" white_map.ppm transparent_map.png
transparent map era. we love to see it. ๐ฆโจ
โจ REGIONAL COVERAGE ANALYSIS โจ
okay bestie, so this is where SPLAT! really pops off ๐
It can take a transmitter or repeater site โ or a whole lil network of sites โ and predict the regional coverage for each one you specify. In this mode, SPLAT! can generate a topographic map showing the geometric line-of-sight coverage area of your sites, based on where each site is and how high the receive antenna is that wants to talk to it. To do a regional analysis, you hit it with the -c switch like this:
splat -t tx_site -c 30.0 -s cities.dat -b co34_d00.dat -o tx_coverage
So in this example SPLAT! makes a topographic map called tx_coverage.ppm that shows the predicted line-of-sight regional coverage of tx_site to receiving locations with antennas 30.0 feet above ground level (AGL). And if you used the -metric switch, the argument after -c gets read as meters instead of feet. The contents of cities.dat get plotted on the map, and so do the cartographic boundaries in co34_d00.dat. adorable, right? ๐
When it's plotting line-of-sight paths and areas of regional coverage, SPLAT! by default does not account for the effects of atmospheric bending. But bestie, you can change that with the Earth radius multiplier (-m) switch:
splat -t wnjt-dt -c 30.0 -m 1.333 -s cities.dat -b counties.dat -o map.ppm
An earth radius multiplier of 1.333 tells SPLAT! to use the "four-thirds earth" model for line-of-sight propagation analysis. Any appropriate earth radius multiplier is fair game, you pick it ๐
When it does a regional analysis, SPLAT! generates a site report for every station it analyzed. These reports are packed with the site's geographic location, its height above mean sea level, the antenna's height above mean sea level, the antenna's height above average terrain, and the height of the average terrain calculated toward the bearings of 0, 45, 90, 135, 180, 225, 270, and 315 degrees azimuth. so thorough, we love that for us ๐ธ
๐ฆ DETERMINING MULTIPLE REGIONS OF LOS COVERAGE ๐ฆ
SPLAT! can also flex and display line-of-sight coverage areas for as many as four separate transmitter sites on one common topographic map. like, look:
splat -t site1 site2 site3 site4 -c 10.0 -metric -o network.ppm
That plots the regional line-of-sight coverage of site1, site2, site3, and site4 based on a receive antenna sitting 10.0 meters above ground level. Then a topographic map gets written to the file network.ppm. The line-of-sight coverage areas of the transmitters get plotted in these colors (with their matching RGB values in decimal):
site1: Green(0,255,0)site2: Cyan(0,255,255)site3: Medium Violet(147,112,219)site4: Sienna 1(255,130,71)site1+site2: Yellow(255,255,0)site1+site3: Pink(255,192,203)site1+site4: Green Yellow(173,255,47)site2+site3: Orange(255,165,0)site2+site4: Dark Sea Green 1(193,255,193)site3+site4: Dark Turquoise(0,206,209)site1+site2+site3: Dark Green(0,100,0)site1+site2+site4: Blanched Almond(255,235,205)site1+site3+site4: Medium Spring Green(0,250,154)site2+site3+site4: Tan(210,180,140)site1+site2+site3+site4: Gold2(238,201,0)
And if you generate separate .qth files โ each one representing a common site location but a different antenna height โ then SPLAT! can make a single topographic map showing the regional coverage from as many as four separate locations on a single tower. main character energy fr ๐
๐ฅ PATH LOSS ANALYSIS ๐ฅ
Now if you swap the -c switch out for a -L switch, SPLAT! can generate an ITM path loss map, a field strength map, or a received power map for the transmitter site(s) you specified. Which kind of analysis you get depends on whether or not there's an -erp switch followed by a positive valued argument (or an equivalent ERP entry in the appropriate .lrp file), or whether or not there's a -dBm switch. This example would generate an ITM path loss map:
splat -t wnjt -L 30.0 -s cities.dat -b co34_d00.dat -o path_loss_map
In this mode, SPLAT! generates a multi-color map showing expected signal levels in the areas around the transmitter site. And there's a legend at the bottom of the map that correlates each color with a specific path loss range in decibels. so satisfying โจ
The -db switch lets you set a threshold โ beyond it, contours just won't get plotted on the map. For example, if a path loss beyond -140 dB is irrelevant to whatever survey you're doing, you can constrain SPLAT!'s path loss plot to the region bounded by the 140 dB attenuation contour like this:
splat -t wnjt-dt -L 30.0 -s cities.dat -b co34_d00.dat -db 140 -o plot.ppm
And heads up, the path loss contour threshold can be written as either a positive or a negative quantity ๐ซ
The path loss analysis range can be changed to a distance you pick using the -R switch. That argument has to be given in miles (or kilometers if you're using the -metric switch). And if you specify a range that's wider than the generated topographic map, SPLAT! will go ahead and perform ITM path loss calculations between all four corners of the area prediction map. it's giving thorough ๐ญ
The colors used to show contour regions in SPLAT! generated coverage maps can be tailored by you, bestie โ just create or modify SPLAT!'s color definition files ๐จ These color definition files have the same base name as the transmitter's .qth file, but they carry .lcf, .scf, and .dcf extensions. And if the necessary file doesn't exist in the current working directory when SPLAT! is run, then a file with default color definition parameters โ suitable for you to manually edit โ gets written into the current directory. convenient!
When a regional ITM analysis happens and the transmitter's ERP is not specified or is zero, SPLAT! reads a .lcf path loss color definition file that corresponds to the transmitter site (.qth) from the current working directory. And if no .lcf file matching the transmitter site is found, then SPLAT! automatically generates a default file suitable for manual editing. iykyk ๐ซถ
A path loss color definition file has this structure (wnjt-dt.lcf):
; SPLAT! Auto-generated Path-Loss Color Definition ("wnjt-dt.lcf") File
;
; Format for the parameters held in this file is as follows:
;
; dB: red, green, blue
;
; ...where "dB" is the path loss (in dB) and
; "red", "green", and "blue" are the corresponding RGB color
; definitions ranging from 0 to 255 for the region specified.
;
; The following parameters may be edited and/or expanded
; for future runs of SPLAT! A total of 32 contour regions
; may be defined in this file.
;
;
80: 255, 0, 0
90: 255, 128, 0
100: 255, 165, 0
110: 255, 206, 0
120: 255, 255, 0
130: 184, 255, 0
140: 0, 255, 0
150: 0, 208, 0
160: 0, 196, 196
170: 0, 148, 255
180: 80, 80, 255
190: 0, 38, 255
200: 142, 63, 255
210: 196, 54, 255
220: 255, 0, 255
230: 255, 194, 204
So if the path loss is less than 80 dB, the color Red (RGB = 255, 0, 0) gets assigned to that region. If the path loss is greater than or equal to 80 dB, but less than 90 db, then Dark Orange (255, 128, 0) gets assigned to the region. Orange (255, 165, 0) goes to regions with a path loss greater than or equal to 90 dB, but less than 100 dB, and so on and so on. Greyscale terrain gets displayed beyond the 230 dB path loss contour. And adding the -sc switch will smooth out the transitions between those quantized contour levels ๐
๐ FIELD STRENGTH ANALYSIS ๐
okay bestie, so here's the tea: if the transmitter's effective radiated power (ERP) is specified in the transmitter's .lrp file, or expressed on the command-line using the -erp switch, then instead of path loss you get field strength contours referenced to decibels over one microvolt per meter (dBuV/m):
splat -t wnjt-dt -L 30.0 -erp 46000 -db 30 -o plot.ppm
The -db switch can be used in this mode just like before, to limit the extent to which field strength contours are plotted. BUT โ and this is the plot twist โ when you're plotting field strength contours, the argument you give is interpreted as being expressed in dBuV/m.
SPLAT! field strength color definition files are literally siblings of the .lcf files used for plotting path loss, same energy, slightly different vibe:
; SPLAT! Auto-generated Signal Color Definition ("wnjt-dt.scf") File
;
; Format for the parameters held in this file is as follows:
;
; dBuV/m: red, green, blue
;
; ...where "dBuV/m" is the signal strength (in dBuV/m) and
; "red", "green", and "blue" are the corresponding RGB color
; definitions ranging from 0 to 255 for the region specified.
;
; The following parameters may be edited and/or expanded
; for future runs of SPLAT! A total of 32 contour regions
; may be defined in this file.
;
;
128: 255, 0, 0
118: 255, 165, 0
108: 255, 206, 0
98: 255, 255, 0
88: 184, 255, 0
78: 0, 255, 0
68: 0, 208, 0
58: 0, 196, 196
48: 0, 148, 255
38: 80, 80, 255
28: 0, 38, 255
18: 142, 63, 255
8: 140, 0, 128
So if the signal strength is greater than or equal to 128 dB over 1 microvolt per meter (dBuV/m), the region shows up Red (255, 0, 0). If it's greater than or equal to 118 dBuV/m but less than 128 dBuV/m, you get Orange (255, 165, 0), and so on down the list. Regions with signal strengths less than 8 dBuV/m get greyscale terrain. slay ๐
Signal strength contours for some common VHF and UHF broadcasting services in the United States, bestie, take notes:
Analog Television Broadcasting
------------------------------
Channels 2-6: City Grade: >= 74 dBuV/m
Grade A: >= 68 dBuV/m
Grade B: >= 47 dBuV/m
--------------------------------------------
Channels 7-13: City Grade: >= 77 dBuV/m
Grade A: >= 71 dBuV/m
Grade B: >= 56 dBuV/m
--------------------------------------------
Channels 14-69: Indoor Grade: >= 94 dBuV/m
City Grade: >= 80 dBuV/m
Grade A: >= 74 dBuV/m
Grade B: >= 64 dBuV/m
Digital Television Broadcasting
-------------------------------
Channels 2-6: City Grade: >= 35 dBuV/m
Service Threshold: >= 28 dBuV/m
--------------------------------------------
Channels 7-13: City Grade: >= 43 dBuV/m
Service Threshold: >= 36 dBuV/m
--------------------------------------------
Channels 14-69: City Grade: >= 48 dBuV/m
Service Threshold: >= 41 dBuV/m
NOAA Weather Radio (162.400 - 162.550 MHz)
------------------------------------------
Reliable: >= 18 dBuV/m
Not reliable: < 18 dBuV/m
Unlikely to receive: < 0 dBuV/m
FM Radio Broadcasting (88.1 - 107.9 MHz)
----------------------------------------
Analog Service Contour: 60 dBuV/m
Digital Service Contour: 65 dBuV/m
๐ฅ RECEIVED POWER LEVEL ANALYSIS ๐ฅ
Now, if the transmitter's effective radiated power (ERP) is specified in the transmitter's .lrp file, or expressed on the command-line using the -erp switch, AND the -dbm switch is invoked, then you get received power level contours referenced to decibels over one milliwatt (dBm):
splat -t wnjt-dt -L 30.0 -erp 46000 -dbm -db -100 -o plot.ppm
The -db switch can be used to limit the extent to which received power level contours are plotted. When plotting power level contours, the argument you give is interpreted as being expressed in dBm.
SPLAT! received power level color definition files have basically the same structure as the color definition files we just talked about, except the power levels in dBm can be either positive or negative, and they're limited to a range between +40 dBm and -200 dBm:
; SPLAT! Auto-generated DBM Signal Level Color Definition ("wnjt-dt.dcf") File
;
; Format for the parameters held in this file is as follows:
;
; dBm: red, green, blue
;
; ...where "dBm" is the received signal power level between +40 dBm
; and -200 dBm, and "red", "green", and "blue" are the corresponding
; RGB color definitions ranging from 0 to 255 for the region specified.
;
; The following parameters may be edited and/or expanded
; for future runs of SPLAT! A total of 32 contour regions
; may be defined in this file.
;
;
+0: 255, 0, 0
-10: 255, 128, 0
-20: 255, 165, 0
-30: 255, 206, 0
-40: 255, 255, 0
-50: 184, 255, 0
-60: 0, 255, 0
-70: 0, 208, 0
-80: 0, 196, 196
-90: 0, 148, 255
-100: 80, 80, 255
-110: 0, 38, 255
-120: 142, 63, 255
-130: 196, 54, 255
-140: 255, 0, 255
-150: 255, 194, 204
๐ฆ ANTENNA RADIATION PATTERN PARAMETERS ๐ฆ
Normalized field voltage patterns for a transmitting antenna's horizontal and vertical planes get imported automatically into SPLAT! whenever a path loss, field strength, or received power level coverage analysis is performed. Antenna pattern data is read from a pair of files that have the same base name as the transmitter and LRP files, but with .az and .el extensions for azimuth and elevation pattern files, respectively. And the specs about pattern rotation (if any) plus mechanical beam tilt and tilt direction (if any) are also tucked inside SPLAT! antenna pattern files. periodt.
So for example, the first few lines of a SPLAT! azimuth pattern file might look like this (kvea.az):
183.0
0 0.8950590
1 0.8966406
2 0.8981447
3 0.8995795
4 0.9009535
5 0.9022749
6 0.9035517
7 0.9047923
8 0.9060051
The first line of the .az file specifies the amount of azimuthal pattern rotation (measured clockwise in degrees from True North) that SPLAT! applies to the data in the .az file. After that comes azimuth headings (0 to 360 degrees) and their associated normalized field patterns (0.000 to 1.000), separated by whitespace. iconic.
The structure of SPLAT! elevation pattern files is slightly different. The first line of the .el file specifies the amount of mechanical beam tilt applied to the antenna. Heads up bestie: a downward tilt (below the horizon) is expressed as a positive angle, while an upward tilt (above the horizon) is expressed as a negative angle. That data is followed by the azimuthal direction of the tilt, separated by whitespace.
The rest of the file is elevation angles and their corresponding normalized voltage radiation pattern (0.000 to 1.000) values, separated by whitespace. Elevation angles must be specified over a -10.0 to +90.0 degree range. And just like the mechanical beamtilt convention, negative elevation angles represent elevations above the horizon, while positive angles represent elevations below the horizon. don't mix those up, fr fr ๐ญ
For example, the first few lines of a SPLAT! elevation pattern file might look like this (kvea.el):
1.1 130.0
-10.0 0.172
-9.5 0.109
-9.0 0.115
-8.5 0.155
-8.0 0.157
-7.5 0.104
-7.0 0.029
-6.5 0.109
-6.0 0.185
So in this example, the antenna is mechanically tilted downward 1.1 degrees towards an azimuth of 130.0 degrees. ๐
For best results, the resolution of azimuth pattern data should be specified to the nearest degree azimuth, and elevation pattern data resolution should be specified to the nearest 0.01 degrees. If the pattern data you specified doesn't reach this level of resolution, SPLAT! will interpolate the values provided to figure out the data at the required resolution โ though that may result in a loss in accuracy. ๐
๐พ EXPORTING AND IMPORTING REGIONAL CONTOUR DATA ๐พ
okay bestie, so listen โ running a regional coverage analysis off an ITM path analysis? that can take forever, especially if you're doing it over and over trying to figure out what happens to your predicted coverage area when you mess with a transmitter's antenna radiation pattern. like, we get it, you're curious, but the clock is clocking. โฐ๐ญ
good news: you can speed this whole thing up by exporting the contour data SPLAT! makes into an alphanumeric output (.ano) file. then you can go in, tweak that data to fold in your antenna pattern effects, and import it right back into SPLAT! to whip up a revised contour map basically instantly. and depending on how you invoke SPLAT!, those alphanumeric output files can describe regional path loss, signal strength, or received signal power levels. versatile queen ๐
for example, an alphanumeric output file with path loss info can be generated by SPLAT! for a receive site 30 feet above ground level over a 50 mile radius surrounding a transmitter site to a maximum path loss of 140 dB (this assumes ERP is not specified in the transmitter's .lrp file) using this syntax:
splat -t kvea -L 30.0 -R 50.0 -db 140 -ano pathloss.dat
but wait โ if ERP is specified in the .lrp file, or on the command line through the -erp switch, then your alphanumeric output file is gonna contain predicted field values in dBuV/m instead. and if you use the -dBm command line switch? then the alphanumeric output file contains receive signal power levels in dBm. no cap.
heads up bestie: SPLAT! alphanumeric output files can exceed many hundreds of megabytes. like, she's thicc. plan accordingly. ๐
these files contain info relating to the boundaries of the region they describe, followed by latitudes (degrees North), longitudes (degrees West), azimuths (referenced to True North), elevations (to the first obstruction), and then either path loss (in dB), received field strength (in dBuV/m), or received signal power level (in dBm) โ all without regard to the transmitting antenna's radiation pattern.
the first few lines of a SPLAT! alphanumeric output file could take on this appearance (pathloss.dat):
119, 117 ; max_west, min_west
35, 34 ; max_north, min_north
34.2265424, 118.0631096, 48.199, -32.747, 67.70
34.2270358, 118.0624421, 48.199, -19.161, 73.72
34.2275292, 118.0617747, 48.199, -13.714, 77.24
34.2280226, 118.0611072, 48.199, -10.508, 79.74
34.2290094, 118.0597723, 48.199, -11.806, 83.26 *
34.2295028, 118.0591048, 48.199, -11.806, 135.47 *
34.2299962, 118.0584373, 48.199, -15.358, 137.06 *
34.2304896, 118.0577698, 48.199, -15.358, 149.87 *
34.2314763, 118.0564348, 48.199, -15.358, 154.16 *
34.2319697, 118.0557673, 48.199, -11.806, 153.42 *
34.2324631, 118.0550997, 48.199, -11.806, 137.63 *
34.2329564, 118.0544322, 48.199, -11.806, 139.23 *
34.2339432, 118.0530971, 48.199, -11.806, 139.75 *
34.2344365, 118.0524295, 48.199, -11.806, 151.01 *
34.2349299, 118.0517620, 48.199, -11.806, 147.71 *
34.2354232, 118.0510944, 48.199, -15.358, 159.49 *
34.2364099, 118.0497592, 48.199, -15.358, 151.67 *
comments can be placed in the file if they're preceeded by a semicolon. and ngl, the vim text editor has proven capable of editing files of this size. iconic honestly. ๐
now, real talk โ just like with the antenna pattern files, negative elevation angles refer to upward tilt (above the horizon), while positive angles refer to downward tilt (below the horizon). these angles refer to the elevation to the receiving antenna at the height above ground level specified using the -L switch if the path between transmitter and receiver is unobstructed.
but if that path is obstructed? an asterisk (*) gets placed on the end of the line, and the elevation angle SPLAT! returns refers to the elevation angle to the first obstruction rather than the geographic location specified on the line. why, you ask? because the ITM model treats the energy reaching a distant point over an obstructed path as the result of energy scattered over the top of the first obstruction along the path. and since energy can't reach the obstructed location directly, the actual elevation angle to the destination over such a path becomes irrelevant. slay, physics. โจ
when you're modifying SPLAT! path loss files to reflect antenna pattern data, only the last numeric column should be amended โ to reflect the antenna's normalized gain at the azimuth and elevation angles specified in the file. programs and scripts capable of performing this task are left as an exercise for the user. (yes, that's you. you got this. ๐ซถ)
modified alphanumeric output files can be imported back into SPLAT! for generating revised coverage maps โ provided that the ERP and -dBm options are used as they were when the alphanumeric output file was originally generated:
splat -t kvea -ani pathloss.dat -s city.dat -b county.dat -o map.ppm
important bestie, don't skip this: alphanumeric output files generated bysplatcannot be used withsplat-hd, or vice-versa, due to the resolution incompatibility between the two versions of the program. also, each of the three types of alphanumeric output files are incompatible with one another โ so a file containing path loss data cannot be imported into SPLAT! to produce signal strength or received power level contours, etc. they don't mix. periodt. ๐
๐๏ธ USER-DEFINED TERRAIN INPUT FILES ๐๏ธ
so a user-defined terrain file is a user-generated text file containing latitudes, longitudes, and heights above ground level of specific terrain features you believe are important to the SPLAT! analysis you're running โ but that are noticeably absent from the SDF files being used. rude of them, honestly. you import it into a SPLAT! analysis using the -udt switch:
splat -t tx_site -r rx_site -udt udt_file.txt -o map.ppm
a user-defined terrain file has this appearance and structure:
40.32180556, 74.1325, 100.0 meters
40.321805, 74.1315, 300.0
40.3218055, 74.1305, 100.0 meters
terrain height is interpreted as being described in feet above ground level unless it's followed by the word meters โ and it gets added on top of the terrain specified in the SDF data for the locations specified.
be aware (fr fr, pay attention here) that each user-defined terrain feature you specify will be interpreted as being 3-arc seconds in both latitude and longitude in splat, and 1 arc-second in latitude and longitude in splat-hd. and features described in the user-defined terrain file that overlap previously defined features in the file are ignored by SPLAT! to avoid ambiguity. no double-dipping. ๐ซ
๐ณ GROUND CLUTTER ๐ณ
the height of ground clutter can be specified using the -gc switch:
splat -t wnjt-dt -r kd2bd -gc 30.0 -H wnjt-dt_path.png
the -gc switch has the effect of raising the overall terrain by the specified amount in feet (or meters if the -metric switch is invoked) โ except over areas at sea-level, and at the transmitting and receiving antenna locations. those stay untouched. main character exception energy. ๐
๐บ๏ธ SIMPLE TOPOGRAPHIC MAP GENERATION ๐บ๏ธ
in certain situations it may be desirable to generate a topographic map of a region without plotting coverage areas, line-of-sight paths, or generating obstruction reports. and bestie, there are several ways of doing this. pick your fighter: ๐
- if you wanna generate a topographic map illustrating the location of a transmitter and receiver site, along with a brief text report describing the locations and distances between the sites, then the
-nswitch should be invoked like so:
splat -t tx_site -r rx_site -n -o topo_map.ppm
- if no text report is desired, then the
-Nswitch is used:
splat -t tx_site -r rx_site -N -o topo_map.ppm
- if you want a topographic map centered about a single site out to a minimum specified radius instead, a command similar to the following can be used:
splat -t tx_site -R 50.0 -s NJ_Cities -b NJ_Counties -o topo_map.ppm
where -R specifies the minimum radius of the map in miles (or kilometers if the -metric switch is used). note that the tx_site name and location are not displayed in this example. if display of this information is desired, simply create a SPLAT! city file (-s option) and append it to the list of command-line options illustrated above. easy. โจ
and if the -o switch and output filename are omitted in these operations, topographic output is written to a file named tx_site.ppm in the current working directory by default. sneaky little default, iykyk.
๐ GEOREFERENCE FILE GENERATION ๐
topographic, coverage (-c), and path loss contour (-L) maps generated by SPLAT! may be imported into Xastir (X Amateur Station Tracking and Information Reporting) software โ and you do that by generating a georeference file using SPLAT!'s -geo switch:
splat -t kd2bd -R 50.0 -s NJ_Cities -b NJ_Counties -geo -o map.ppm
the georeference file generated will have the same base name as the -o file specified, but it'll have a .geo extension โ and it permits proper interpretation and display of SPLAT!'s .ppm graphics in Xastir software. she's compatible, she's polished, she's giving cross-platform. ๐
๐ GOOGLE MAP KML FILE GENERATION ๐
Keyhole Markup Language files compatible with Google Earth may be generated by SPLAT! when performing point-to-point or regional coverage analyses โ just invoke the -kml switch:
splat -t wnjt-dt -r kd2bd -kml
the KML file generated will have the same filename structure as a Path Analysis Report for the transmitter and receiver site names given, except it will carry a .kml extension.
once loaded into Google Earth (File --> Open), the KML file will annotate the map display with the names of the transmitter and receiver site locations. the viewpoint of the image will be from the position of the transmitter site looking towards the location of the receiver. the point-to-point path between the sites will be displayed as a white line, while the RF line-of-sight path will be displayed in green. and Google Earth's navigation tools let the user "fly" around the path, identify landmarks, roads, and other featured content. it's literally a whole vibe. ๐ฆ
when performing regional coverage analysis, the .kml file generated by SPLAT! will permit path loss or signal strength contours to be layered on top of Google Earth's display โ along with a corresponding color key in the upper left-hand corner. and the generated .kml file will have the same basename as that of the .ppm file normally generated. matching set, as she should. ๐
๐ DETERMINATION OF ANTENNA HEIGHT ABOVE AVERAGE TERRAIN ๐
okay bestie, so HAAT โ antenna height above average terrain โ SPLAT! works it out following the exact procedure from Federal Communications Commission Part 73.313(d). The way that works is: it samples terrain elevations along eight radials between 2 and 10 miles (3 and 16 kilometers) out from the site you're analyzing, then averages them for each 45 degrees of azimuth, starting with True North. Iconic, methodical, we love her.
and here's the lil catch โ if one or more of those radials lie entirely over water or over land outside the United States (aka areas where no USGS topography data exists), then those radials get omitted from the average terrain calculation. bye bye radial, you're not counted.
โ ๏ธ important note, no cap: SRTM-3 elevation data, unlike the older USGS data, extends beyond the borders of the United States. so HAAT results may not be in full compliance with FCC Part 73.313(d) in areas along the borders of the United States if the SDF files SPLAT! is using are SRTM-derived. it's giving "close enough but not legally certified" vibes, so know that.
when it's doing point-to-point terrain analysis, SPLAT! only figures out the antenna height above average terrain if enough topographic data has already been loaded by the program to do the point-to-point analysis. in most cases that's true! unless the site in question doesn't lie within 10 miles of the boundary of the topography data in memory. ๐
when it's doing area prediction analysis tho, enough topography data is normally loaded to do the average terrain calculations. under those conditions SPLAT! will hand you the antenna height above average terrain plus the average terrain above mean sea level for azimuths of 0, 45, 90, 135, 180, 225, 270, and 315 degrees, and drops all of that into the generated site report. and if one or more of the eight radials surveyed fall over water, or over regions where no SDF data is available, SPLAT! reports No Terrain for the radial paths affected. she's honest, we stan. ๐
โจ ADDITIONAL INFORMATION โจ
want the latest news and info about SPLAT! software? it's all on the official SPLAT! software web page, right here bestie:
http://www.qsl.net/kd2bd/splat.html
๐ AUTHORS ๐
the legends who built this, fr fr:
- John A. Magliacane, KD2BD
<kd2bd@amsat.org>โ Creator, Lead Developer ๐ - Doug McDonald
<mcdonald@scs.uiuc.edu>โ Original Longley-Rice ITM Model integration ๐ฅ - Ron Bentley
<ronbentley@embarqmail.com>โ Fresnel Zone plotting and clearance determination ๐ธ
and that's the whole page, bestie!! ๐ซถ this lil gem is from KD2BD Software, dated 27 June 2014, and yes the manual section is literally SPLAT!(1) โ go forth and plot those contours, you absolute main character. ๐โจ๐ฆ
๐ฆ where this page comes from
- debian bookworm: splat 1.4.2-3
- debian trixie: splat 1.4.2-3
- ubuntu jammy: splat 1.4.2-3build1
- ubuntu noble: splat 1.4.2-3build1
- ubuntu resolute: splat 1.4.2-3build2
- ubuntu stonking: splat 1.4.2-3build2
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms