SPLAT! “Because the world isn’t flat!”
You may (or may not?) know that I do a lot of work with fixed applications of 802.11a/b technology. I’ve been working with 802.11 since about 2001 or so, when Rowan Air in Chanute first went up. What a colossal flop that was - but that was due to two things:
- Bad managment
- At the time, the 802.11 CPE was way too expensive
Since that time, a lot has changed. I’ve also gained a lot of real world experiance with wireless technology. Still, sometimes it’s hard to ‘guesstimate’ if a particular link will work or not. Using DeLorme TopoUSA 5’s excellent topographical data and profiling features did a passable job, but there were still unanswered questions. Then I found SPLAT!. This software is so freaking cool it will make your head spin. What it’s for is taking topographical data, tossing it in a blender with your RF data, and spitting out an RF coverage map that looks like someone shot a paintball at a map on the wall.
The man page is pretty darn good, too. I didn’t have any trouble figuring out how to make it work. Basically what you do is this:
- Download and compile SPLAT!
- Download and convert the appropriate USGS data for your area:
usgs2sdf wichita-e usgs2sdf wichita-w
- Download and the appropriate US Census data for cartogaphic boundries (I suggest using counties).
- Download and convert the appropriate city boundries from US Census data:
citydecoder pl34 pl36 pl42 | sort > cities.dat
Where “pl34″ is the place data file you downloaded. For example, Kansas is “20″ so place data is pl20 and county data is co20.
That’s it for prep work, now you are ready to do RF analysis! However, that’s where you start with more prep work for the analysis. You need to tell SPLAT what to check out with two files that specify the physical caracteristics of your transmitter. First you need a qth file such as this one for my Independence access point:
Independence AP 37.2247 95.7101 150
This tells SPLAT that my antenna named “Independence AP” is at 37.2247 lattitude and 95.7101 longitude, and 150 feet AGL (or “Above Ground Level”). Next, you need to tell it the RF caracteristics of your transmitter with a lrp file with the same name as your qth file:
15.000 ; Earth Dielectric Constant (Relative Permittivity) 0.005 ; Earth Conductivity (Siemens per meter) 301.000 ; Atmospheric bending constant (N-Units) 2437.00 ; Frequency in Mhz (20Mhz to 20Ghz) 0 ; Polarization (0 = Horizontal, 1 = Vertical) 0.9 ; Fraction of situations (50% of locations) 0.9 ; Fraction of time (50% of the time)
To be perfectly honest with you, I have no idea what any of those are except the frequency and Polarization. Those two are obvious. By the way, if you’re working with wifi it’s Vertically polarized if you aren’t sure.
Now you’re ready to actually shoot a paintball at the map:
splat -t transmitter.qth -c 20 -b countyboundries.dat placesboundries.dat -s cities-decoded.dat -o outputfile
This will tell splat to analize your transmitter for LOS on a receiving antenna 20 feet AGL with boundry data from countyboundries.dat and placesboundries.dat, with place names from cities-decoded.dat, then write it all out to “outputfile” as a pixelmap file. I then usually convert this to a png with the “convert” utility, but you can do whatever you want with it.
So that’s all there is to it! It sounds complex, but it’s really quite simple. Once you do all the one-time prep work of getting USGS and Census data downloaded and converted, there isn’t much to it. You don’t even really have to make the .rlp file (SPLAT has some sensable defaults), and there are a few installation tidbits I didn’t touch on. I leave it as an excercise to the reader to figure out some of the finer details