From 4065603692ed9b67721cedef913acbd73c30f0cb Mon Sep 17 00:00:00 2001 From: N9OZB Date: Sat, 20 Jul 2019 16:58:07 -0500 Subject: [PATCH] Minor corrections, typos, etc. --- README.md | 52 +++++++++++++++++++++------------------- SignalServer_Manual.odt | Bin 25263 -> 25228 bytes 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b639804..cd5527b 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ Multi-threaded radio propagation simulator based upon SPLAT! by Alex Farrant QCV SPLAT! Project started in 1997 by John A. Magliacane, KD2BD +Some additional features and fixes by Aaron A. Collins, N9OZB + This server application will generate RF coverage predictions, producing either 2D profile plots (Point-to-Point) or 360 degree polar plots in WGS-84 projection as PPM Bitmaps. For detailed information and historical reference data related to this project see the SPLAT! documentation. Propagation models added to this project have been sourced from reputable academic sources and all efforts have been taken to ensure their accurate implementation. Not all models are ITU ratified and you use them entirely at your own risk. @@ -23,27 +25,28 @@ Additional programs/scripts will be required to prepare inputs such as .hgt tile ## File extensions and types used by signalserver: -.asc LIDAR topo data file in ASCII grid format. -.jpg LIDAR topo data file in JPEG format. -.sdf SPLAT! topo data file in SPLAT! format, lo-res 90m (from SRTM3). -.sdf.gz topo data file in SPLAT! data format, gzip compressed, lo-res 90m. -.sdf.bz2 topo data file in SPLAT! data format, bzip2 compressed, lo-res 90m. --hd.sdf SPLAT! topo data file in SPLAT! format, hi-res 30m (from SRTM1). --hd.sdf.gz topo data file in SPLAT! data format, gzip compressed, hi-res 30m. --hd.sdf.bz2 topo data file in SPLAT! data format, bzip2 compressed, lo-res 90m. -.scf signal level color palette file. -.lcf loss level color palette file. -.dcf dbm level color palette file. -.az SPLAT! antenna pattern azimuth data file. -.el SPLAT! antenna pattern elevation data file. -.lrp LIDAR antenna pattern data file. -.udt user defined terrain data clutter data text file. -.sh miscellaneous shell scripts and batch files. -.ppm portable pixmap - output plot graphic rendering (native). -.png portable network graphics - output plot graphic rendering (converted). -.kml Google Earth Keyhole Markup Language - output viewable with Google Earth. -.kmz Google Earth Keyhole Markup Language, compressed. - +``` +.asc LIDAR topo data file in ASCII grid format +.jpg LIDAR topo data file in JPEG format +.sdf SPLAT! topo data file in SPLAT! format, lo-res 90m (from SRTM3) +.sdf.gz topo data file in SPLAT! data format, gzip compressed, lo-res 90m +.sdf.bz2 topo data file in SPLAT! data format, bzip2 compressed, lo-res 90m +-hd.sdf SPLAT! topo data file in SPLAT! format, hi-res 30m (from SRTM1) +-hd.sdf.gz topo data file in SPLAT! data format, gzip compressed, hi-res 30m +-hd.sdf.bz2 topo data file in SPLAT! data format, bzip2 compressed, lo-res 90m +.scf signal level color palette file +.lcf loss level color palette file +.dcf dbm level color palette file +.az SPLAT! antenna pattern azimuth data file +.el SPLAT! antenna pattern elevation data file +.lrp LIDAR antenna pattern data file +.udt user defined terrain data clutter data text file +.sh miscellaneous shell scripts and batch files +.ppm portable pixmap - output plot graphic rendering (native) +.png portable network graphics - output plot graphic rendering (converted) +.kml Google Earth Keyhole Markup Language - output viewable with Google Earth +.kmz Google Earth Keyhole Markup Language, compressed +``` ## Installation ``` @@ -209,10 +212,11 @@ The remainder of the file consists of elevation angles and their radiation patte ./signalserverLIDAR -lid /data/LIDAR/Gloucester_2m.asc -lat 51.849 -lon -2.2299 -txh 15 -f 1800 -erp 1 -rxh 2 -rt -90 -dbm -m -o test3 -R 1 -pm 1 ``` ### Scripting -By using wrapper scripts like runsig.sh and genkmz.sh, you can streamline running signalserver by pre-setting some commonly used options in the runsig.sh file. Those options should the be ones you use every time you run signalserver, like "-m" for metric or "-sdf ./sdf_file_path", for example, so you won't have to specify those options every time you run it. The genkmz.sh file will convert the output ppm file into a .png with transparent background, then will convert it to a Google Earth Keyhole Markup Language (KML) file, and then it compresses it for size to a (KMZ) file. For example, using the provided sample runsig.sh and genkmz.sh: - +By using wrapper scripts like runsig.sh and genkmz.sh, you can streamline running signalserver by pre-setting some commonly used options in the runsig.sh file. Those options should be the ones you use every time you run signalserver, like "-m" for metric or "-sdf ./sdf_file_path", for example, so you won't have to specify those options every time you run it. The genkmz.sh file will convert the output ppm file into a .png with transparent background, then will convert it to a Google Earth Keyhole Markup Language (KML) file, and then it compresses it for size to a (KMZ) file. Here is an example of using the provided sample runsig.sh and genkmz.sh: +``` ### Plot 70cm Service contour, 700W ERP, 300 feet AGL, DB413-B, to 150 mi: sudo ./runsig.sh -lat 42.428889 -lon -87.812500 -txh 300 -f 446.000 -erp 700 -R 150 -res 600 -rel 50 -rt 39 -ant antenna/DB413-B -rot 225 -color color/blue -o example-service | ./genkmz.sh ### Plot 70cm Interference contour, 700W ERP, 300 feet AGL, DB413-B, to 150 mi: -sudo ./runsig.sh -lat 42.428889 -lon -87.812500 -txh 300 -f 446.000 -erp 700 -R 150 -res 600 -rel 10 -rt 21 -ant antenna/DB413-B -rot 225 -color color/blue -o example-service | ./genkmz.sh +sudo ./runsig.sh -lat 42.428889 -lon -87.812500 -txh 300 -f 446.000 -erp 700 -R 150 -res 600 -rel 10 -rt 21 -ant antenna/DB413-B -rot 225 -color color/blue -o example-interferece | ./genkmz.sh +``` diff --git a/SignalServer_Manual.odt b/SignalServer_Manual.odt index d4b5f4972a4b30bd94cd83f5b400b610ad1b8ec2..7b8f30f561943ec55da51de01a93629800f3989c 100644 GIT binary patch delta 16526 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 mMmYZl(8l