<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CloudRF</title>
	<atom:link href="https://cloudrf.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://cloudrf.com/</link>
	<description>Radio planning today</description>
	<lastBuildDate>Mon, 08 Jun 2026 08:57:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://cloudrf.com/wp-content/uploads/2021/05/CloudRF_logo_70px.png</url>
	<title>CloudRF</title>
	<link>https://cloudrf.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Tough Stump Rodeo 2026</title>
		<link>https://cloudrf.com/tough-stump-rodeo-2026/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Sun, 07 Jun 2026 21:13:26 +0000</pubDate>
				<category><![CDATA[Modelling]]></category>
		<category><![CDATA[Self-hosted]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=68218</guid>

					<description><![CDATA[<p>Overview The Tough Stump Rodeo is an outdoor edge technology demonstration set in rural Montana.Selected companies collaborate to integrate their capabilities with the ATAK common-operating-picture to complete communications challenges. CloudRF participated for the first time as a key enabler on the most challenging lane, the sub-terranean, which required participants to communicate and operate within an [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/tough-stump-rodeo-2026/">Tough Stump Rodeo 2026</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Overview</h2>



<p>The <a href="https://toughstump.com/rodeo">Tough Stump Rodeo</a> is an outdoor edge technology demonstration set in rural Montana.<br>Selected companies collaborate to integrate their capabilities with the ATAK common-operating-picture to complete communications challenges.</p>



<p><strong>CloudRF participated for the first time</strong> as a key enabler on the most challenging lane, the sub-terranean, which required participants to communicate and operate within an underground mine set in a steep ravine located 50km from the HQ in mountainous terrain.</p>



<p class="has-medium-font-size"><strong>With accurate planning, we quickly built a large  radio network with less nodes and greater reliability than could be achieved with basic LOS tools.</strong></p>



<h2 class="wp-block-heading">Data Preparation</h2>



<p>Our preparation started early as we needed to acquire high resolution data for the area to ensure accuracy. Prior to the event our data resolution in Montana was only 30m. We sourced 2m accuracy LiDAR from the USGS for the Ruby valley which we enhanced with 2m resolution tree canopy data from Meta.</p>



<p class="has-normal-font-size"><br><em>Based on feedback from previous years about trees around the mine, we knew accurate tree data would be essential.</em></p>



<p>The data was loaded to the public system, CloudRF, weeks prior to the event and side-loaded to our offline SOOTHSAYER servers as GeoTIFF files within a data package.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/06/ruby-valley-trees-lidar-1.jpg" rel="lightbox[68218]"><img fetchpriority="high" decoding="async" width="1024" height="524" src="https://cloudrf.com/wp-content/uploads/2026/06/ruby-valley-trees-lidar-1-1024x524.jpg" alt="" class="wp-image-68229" style="aspect-ratio:1.9542224810716367;width:602px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/06/ruby-valley-trees-lidar-1-1024x524.jpg 1024w, https://cloudrf.com/wp-content/uploads/2026/06/ruby-valley-trees-lidar-1-300x154.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/ruby-valley-trees-lidar-1-768x393.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/ruby-valley-trees-lidar-1-416x213.jpg 416w, https://cloudrf.com/wp-content/uploads/2026/06/ruby-valley-trees-lidar-1.jpg 1447w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">High resolution DTM and Tree canopy data in the Ruby Valley, MT</figcaption></figure>
</div>


<p></p>



<h2 class="wp-block-heading">Equipment</h2>



<p>We deployed with <strong>three offline SOOTHSAYER servers</strong> of varying size with several phones and tablets as clients:</p>



<ul class="wp-block-list">
<li class="has-normal-font-size">A standard HP <a href="https://www.hp.com/us-en/workstations/zbook-8.html">Z-Book</a> laptop running Windows/Podman (RTX4070 GPU capable of 15.6 TFLOPS)</li>



<li class="has-normal-font-size">A Carnegie Robotics <a href="https://www.carnegierobotics.com/cardshark">CardShark</a> computer running Ubuntu/Docker powered by a portable USB-C power bank (Jetson Orin NX capable of 3.7 TFLOPS) </li>



<li class="has-normal-font-size">A Solace Communications <a href="https://www.solacecomms.com/services-products/global-edge/">Global Edge</a> computer running Ubuntu/Docker powered by a larger USB-C power bank (Jetson Orin NX capable of 3.7 TFLOPS) </li>
</ul>



<p><em>Additionally,</em> <em>The Global Edge computer was prepared with our Trellisware API script which interfaces directly with a donor radio to model live network coverage.</em></p>



<h2 class="wp-block-heading">Site survey, Sunday</h2>



<p>As we were headed to a new area, we were keen to know as much as possible about the terrain which for communications means <strong>noise as much as topography</strong>.<br>We took a spectrum analyser up to the mine site on a wet Sunday to check out the noise in the L and S bands and after a long insertion hike due to a closed seasonal access road we were satisfied to find there was no RF noise there. </p>



<p>The nearest noise source was a cell tower up the Ruby valley below which due its location was not able to serve the area of interest. We were therefore able to use the Johnson Nyquist formula with high accuracy to predict the expected noise floor for a given bandwidth.</p>



<p>We modelled the Mine location with modest system profiles (low height/power) to see if we could identify any local relay opportunities. The mine was tricky as it was in a steep forest ravine so we stood at the entrance and observed where it could reach. This low tech study confirmed our modelling which highlighted a hill ~750m due west which just overlooked the mine and had excellent views across the Ruby valley to the south.</p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/06/mine-recce.jpg" rel="lightbox[68218]"><img decoding="async" width="768" height="1024" data-id="68238" src="https://cloudrf.com/wp-content/uploads/2026/06/mine-recce-768x1024.jpg" alt="" class="wp-image-68238" srcset="https://cloudrf.com/wp-content/uploads/2026/06/mine-recce-768x1023.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/mine-recce-225x300.jpg 225w, https://cloudrf.com/wp-content/uploads/2026/06/mine-recce-416x554.jpg 416w, https://cloudrf.com/wp-content/uploads/2026/06/mine-recce.jpg 800w" sizes="(max-width: 768px) 100vw, 768px" /></a><figcaption class="wp-element-caption">Gate is closed&#8230;and there&#8217;s bears :/</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/06/mine-spectrum.jpg" rel="lightbox[68218]"><img decoding="async" width="1000" height="753" data-id="68239" src="https://cloudrf.com/wp-content/uploads/2026/06/mine-spectrum.jpg" alt="" class="wp-image-68239" srcset="https://cloudrf.com/wp-content/uploads/2026/06/mine-spectrum.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/06/mine-spectrum-300x226.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/mine-spectrum-768x578.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/mine-spectrum-416x313.jpg 416w" sizes="(max-width: 1000px) 100vw, 1000px" /></a><figcaption class="wp-element-caption">No signals noted</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/06/mine-tree-shot.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="1000" height="670" data-id="68246" src="https://cloudrf.com/wp-content/uploads/2026/06/mine-tree-shot.jpg" alt="" class="wp-image-68246" srcset="https://cloudrf.com/wp-content/uploads/2026/06/mine-tree-shot.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/06/mine-tree-shot-300x201.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/mine-tree-shot-768x515.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/mine-tree-shot-416x279.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a><figcaption class="wp-element-caption">Relay hill seen through the trees</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/06/mine-rf-coverage.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="1000" height="597" data-id="68249" src="https://cloudrf.com/wp-content/uploads/2026/06/mine-rf-coverage.jpg" alt="" class="wp-image-68249" srcset="https://cloudrf.com/wp-content/uploads/2026/06/mine-rf-coverage.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/06/mine-rf-coverage-300x179.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/mine-rf-coverage-768x458.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/mine-rf-coverage-416x248.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a><figcaption class="wp-element-caption">RF coverage from outside the mine</figcaption></figure>
</figure>



<p>Using a mean site upon the hill within the painted coverage area we ran a second simulation with an extreme 40km radius to see <em>where</em> this could hit. We were pleased to see coverage on an embankment 35km down the ruby valley which was useful as the valley&#8217;s curved shape meant a relay would be required. </p>



<p>Next, we ran a simulation on the distant HQ location which revealed an area of mutual coverage. A plan was forming&#8230;</p>



<p><strong>When running long range heatmaps, the resolution becomes diluted</strong>. This is necessary to remain within processing limits as whilst 16 million point calculations are available due to the large GPUS we have on CloudRF, they are impractical for a battery powered Jetson which must share its output over a radio network on ATAK. <em>We also observed notable latency with fetching large KMZ files via the radio&#8217;s onboard Wi-Fi as it&#8217;s running an older 802.11 standard.</em></p>



<p>We used our plugin&#8217;s limit of 4MP which provides a high resolution result in a practical time of several seconds. Our solution to the &#8216;mountain repeater&#8217; problem whereby a distant tower is serving a remote location is the bounds feature. This API parameter defines a polygon which focuses processing effort to increase speed and accuracy.</p>



<p>As you can see from the images, the difference the bounds feature offers is significant. It allows the simulation of high resolution at long distances which previously would have been impractical with a &#8216;big heatmap&#8217;.</p>



<p>We drove to the relay we wanted to use and were disappointed to find it was on private land which was time well spent none the less. As a result we identified a secondary site on a layby to the north which was the best we could do.</p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/06/ball-place-lowres.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="1000" height="635" data-id="68258" src="https://cloudrf.com/wp-content/uploads/2026/06/ball-place-lowres.jpg" alt="" class="wp-image-68258" srcset="https://cloudrf.com/wp-content/uploads/2026/06/ball-place-lowres.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/06/ball-place-lowres-300x191.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/ball-place-lowres-768x488.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/ball-place-lowres-416x264.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a><figcaption class="wp-element-caption">Mine coverage</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/06/mutual-coverage.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="984" height="701" data-id="68259" src="https://cloudrf.com/wp-content/uploads/2026/06/mutual-coverage.jpg" alt="" class="wp-image-68259" srcset="https://cloudrf.com/wp-content/uploads/2026/06/mutual-coverage.jpg 984w, https://cloudrf.com/wp-content/uploads/2026/06/mutual-coverage-300x214.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/mutual-coverage-768x547.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/mutual-coverage-416x296.jpg 416w" sizes="auto, (max-width: 984px) 100vw, 984px" /></a><figcaption class="wp-element-caption">Mutual coverage</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/06/ball-place-focused-1.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="968" height="603" data-id="68260" src="https://cloudrf.com/wp-content/uploads/2026/06/ball-place-focused-1.jpg" alt="" class="wp-image-68260" srcset="https://cloudrf.com/wp-content/uploads/2026/06/ball-place-focused-1.jpg 968w, https://cloudrf.com/wp-content/uploads/2026/06/ball-place-focused-1-300x187.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/ball-place-focused-1-768x478.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/ball-place-focused-1-416x259.jpg 416w" sizes="auto, (max-width: 968px) 100vw, 968px" /></a><figcaption class="wp-element-caption">Focused mutual coverage</figcaption></figure>
</figure>



<h2 class="wp-block-heading">Setup, Monday</h2>



<p>Our radio partner trusted our recommendation and deployed a <a href="https://www.comrod.com/products/etams/">Comrod ETAMs mast</a> to the layby despite it not being recommended as one of the official repeater positions.<br>The first (15km) link back to the HQ was barely workable which aligned with the fringe heatmaps we had generated. The weak link was immediately made good by climbing the steep hill overlooking the HQ. <em>The additional height cleared the Fresnel zone which was obstructed by trees and buildings in the valley.</em></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/06/UCO-hill-relay.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="1000" height="690" src="https://cloudrf.com/wp-content/uploads/2026/06/UCO-hill-relay.jpg" alt="" class="wp-image-68267" srcset="https://cloudrf.com/wp-content/uploads/2026/06/UCO-hill-relay.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/06/UCO-hill-relay-300x207.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/UCO-hill-relay-768x530.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/UCO-hill-relay-416x287.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a><figcaption class="wp-element-caption">Improving the signal from a local hill</figcaption></figure>
</div>


<p>With the first link in,  focus shifted to the long link to the mine.</p>



<p>We drove up to the mine and headed out on foot to the exposed hillside we had identified from the mine. This was a steep and difficult route, in hot weather, with rattlesnakes and bears, which Alex H from Trellisware made no less than 5 times. Give that man a raise!</p>



<p>On the hill we used ATAK to navigate to the area on the track on the hill we had identified. This zone covered several prominent rocky outcrops which as we found were popular for sunbathing by snakes. Once in the zone, it became apparent that this would work as <strong>radios with low gain whips were connecting</strong> to the distant 35km relay. This link was boosted from workable to good, and fit for video, with the deployment of a Farfield Antennas APEX directional antenna.</p>



<p>Our relief at establishing communications was short lived as we were challenged to find a better spot. We used SOOTHSAYER on the CardShark server to simulate the midpoint relay to produce an updated layer. This layer was used to identify a better site nearby at a rocky outcrop on the hill. We relocated to the new site and were pleased to confirm a modest improvement to the link SNR. The scale in the change of location was minor given the 35km distance and the fact both sites had equally great views down the valley but the improvement was notable due to the shape of the convex hill and it validated accurate simulation over &#8216;looks good&#8217;.</p>



<p>During the excitement of closing the big one, we forgot to leave behind a radio at the mine to test the next link. This was soon rectified by a party which returned to the mine and confirmed a good link, which did not come as a surprise given the visibility from the mine and close proximity at ~750m.</p>



<p><strong>A very satisfying radio check from the mine was heard at the HQ 50km away around the valley, over 3 links. </strong></p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-team-photo-1.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="900" height="678" data-id="68277" src="https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-team-photo-1.jpg" alt="" class="wp-image-68277" srcset="https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-team-photo-1.jpg 900w, https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-team-photo-1-300x226.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-team-photo-1-768x579.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-team-photo-1-416x313.jpg 416w" sizes="auto, (max-width: 900px) 100vw, 900px" /></a><figcaption class="wp-element-caption">Staying hydrated</figcaption></figure>



<figure class="wp-block-image size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-equipment.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="900" height="1200" data-id="68291" src="https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-equipment.jpg" alt="" class="wp-image-68291" srcset="https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-equipment.jpg 900w, https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-equipment-225x300.jpg 225w, https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-equipment-768x1024.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/mine-relay-equipment-416x555.jpg 416w" sizes="auto, (max-width: 900px) 100vw, 900px" /></a><figcaption class="wp-element-caption">APEX antenna,  CardShark server, TW-950 Radio</figcaption></figure>
</figure>



<p>With the sites identified, the network was optimised with wired links between co-located relay nodes on <strong>alternative frequencies to increase throughput</strong>. There were other configuration changes higher up the OSI model also which are not covered here as we&#8217;re focused on establishing layer 1 only. The optimisations were designed to increase throughput and reduce latency to support both video and live UAS control.</p>



<h2 class="wp-block-heading">Live coverage mapping</h2>



<p>In our vehicle we kept our Global Edge server which had a higher endurance than the CardShark. This server was connected to a donor radio&#8217;s Wi-Fi access point as a client which enabled it to interact with the Trellisware API.</p>



<p>Our Trellisware python script fetches radio metadata to generate coverage heatmaps for the network using live settings including noise. This is presented as a network KML layer which is consumed by clients including ATAK.</p>



<p>We last demonstrated this in our office car park with our own TW-750 radios so it was exciting to use it on a mountain with a diverse network of different radios. We&#8217;re pleased to report it worked as designed after a tweak on the mountain to handle output from radios we&#8217;ve not worked with before. We&#8217;ve even heard a rumour the KML refresh may be lowered this year to support faster refresh rates, nearly <a href="https://github.com/deptofdefense/AndroidTacticalAssaultKit-CIV/pull/13">6 years after we requested this.</a></p>



<p>We also exercised the ATAK plugin&#8217;s Co-Opt function. This powerful feature allows any callsign on the map to be given a radio template which follows its position. As the callsign moves, the radio coverage moves. You can see a video of it on our youtube channel.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/06/global-edge-soothsayer-bonnet-rotated.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="900" height="1200" src="https://cloudrf.com/wp-content/uploads/2026/06/global-edge-soothsayer-bonnet-rotated.jpg" alt="" class="wp-image-68298" style="width:592px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/06/global-edge-soothsayer-bonnet-rotated.jpg 900w, https://cloudrf.com/wp-content/uploads/2026/06/global-edge-soothsayer-bonnet-225x300.jpg 225w, https://cloudrf.com/wp-content/uploads/2026/06/global-edge-soothsayer-bonnet-768x1024.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/global-edge-soothsayer-bonnet-416x555.jpg 416w" sizes="auto, (max-width: 900px) 100vw, 900px" /></a><figcaption class="wp-element-caption">Global Edge server running SOOTHSAYER</figcaption></figure>
</div>


<p></p>



<h2 class="wp-block-heading">Show time and interference</h2>



<p>The network was scheduled to deliver a live video feed of a drone exploring the mine. </p>



<p>Despite a day of successful testing,  leaving radios behind overnight in the mountains with wildlife and the elements meant unexpected issues were encountered which required local input to fix. On demo day an eleventh hour reset for the relay was promptly executed by Josh, who &#8216;hauled ass&#8217; whilst observing local speed limits to get up the valley and save the day.</p>



<p>The live video was streaming well on schedule via a local radio&#8217;s WiFi access point until the production tent filled with observers&#8230; At this time, the congestion within the 2.4GHz ISM band increased and the impact became obvious as the video deteriorated and then failed. The irony of engineering a 50km muti-hop data network in the mountains and failing at the last 2m inside the tent was a learning point. In hindsight, a wired connection to the tablet would have been safer and people should listen to Peter.</p>



<p>The WiFi link self restored due to Automatic Channel Selection (ACS) and normal service resumed with live UAS video streamed over the RF link under the direction of the HQ.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/06/subt-demo-video.jpg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="1000" height="750" src="https://cloudrf.com/wp-content/uploads/2026/06/subt-demo-video.jpg" alt="" class="wp-image-68299" style="aspect-ratio:1.333342163823249;width:622px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/06/subt-demo-video.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/06/subt-demo-video-300x225.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/06/subt-demo-video-768x576.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/06/subt-demo-video-416x312.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a><figcaption class="wp-element-caption">Live ATAK video relayed from the mine to the HQ</figcaption></figure>
</div>


<h2 class="wp-block-heading">Summary</h2>



<p>The event stress tested our capabilities to the limit, where it matters, and provided invaluable feedback we would never have found in a dozen trade shows or car park tests. We leave with very high confidence and a list of improvements and feature requests from the many customers and partners who we interacted with. </p>



<p>One of the most significant features will be the ability to <strong>expedite the site selection process for operators with a prompt to an LLM</strong> which can execute the multi-stage process of site selection using accurate radio templates. A lot of firms are chasing this AI dream but very few indeed have a mature, <strong>published</strong>, API to build upon.</p>



<p><em>We came prepared to model the inside of the mine using our 3D engine which was risky as we needed to acquire and then vectorise a large LiDAR scan from a robotics partner under a tight schedule. We acquired the model but hit formatting snags during the conversion to glTF so parked that task for another day. We did however produce a useful glTF to 3D tile script to present 3D models on ATAK which we will publish.</em></p>



<p>Despite the maturity, we&#8217;re still not elite enough to have our <a href="https://github.com/Cloud-RF/SOOTHSAYER-ATAK-plugin">open source plugin</a> listed on TAK.gov but as the push for published interfaces grows, we&#8217;re confident that sharing, not guarding, interfaces is the superior strategy for vendors serious about integration, more so in the age of AI. As more proof, we were pleased to see a shiny new plugin at this show that used our API with a radio API that was developed rapidly by a vendor without our knowledge.</p>



<p>Finally, for anyone still unsure if SOOTHSAYER works offline because our company has <em>Cloud</em> in the name, we can assure you it does as we do not own a Starlink and there is no cell coverage in the upper Ruby valley. </p>



<p>For more offline field tests see our <a href="https://youtube.com/cloudrfdotcom">Youtube channel</a>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/06/City-Brew-Coffee-Bozeman-1.jpeg" rel="lightbox[68218]"><img loading="lazy" decoding="async" width="1024" height="703" src="https://cloudrf.com/wp-content/uploads/2026/06/City-Brew-Coffee-Bozeman-1-1024x703.jpeg" alt="" class="wp-image-68283" style="aspect-ratio:1.456645056726094;width:716px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/06/City-Brew-Coffee-Bozeman-1-1024x703.jpeg 1024w, https://cloudrf.com/wp-content/uploads/2026/06/City-Brew-Coffee-Bozeman-1-300x206.jpeg 300w, https://cloudrf.com/wp-content/uploads/2026/06/City-Brew-Coffee-Bozeman-1-768x527.jpeg 768w, https://cloudrf.com/wp-content/uploads/2026/06/City-Brew-Coffee-Bozeman-1-416x286.jpeg 416w, https://cloudrf.com/wp-content/uploads/2026/06/City-Brew-Coffee-Bozeman-1.jpeg 1254w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">CloudRF celebrating like a privately funded company in City Brew Coffee, Bozeman</figcaption></figure>
</div><p>The post <a href="https://cloudrf.com/tough-stump-rodeo-2026/">Tough Stump Rodeo 2026</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How a passing Warship took out a town&#8217;s Internet</title>
		<link>https://cloudrf.com/how-a-passing-warship-took-out-a-towns-internet/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 13:29:13 +0000</pubDate>
				<category><![CDATA[Modelling]]></category>
		<category><![CDATA[Theory]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=64507</guid>

					<description><![CDATA[<p>Modelling Radar and Wireless interference in the 5GHz range Background In the early morning of the 4th of July 2025, the Australian warship HMAS Canberra sailed down the west coast of the North Island of New Zealand. It had its navigation radar on, surveying the sea for obstacles. At the same time, residents along the [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/how-a-passing-warship-took-out-a-towns-internet/">How a passing Warship took out a town&#8217;s Internet</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading has-medium-font-size">Modelling Radar and Wireless interference in the 5GHz range</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/HMAS_Canberra_with_a_USAF_MH-60_during_Talisman_Sabre_2021-scaled.jpg" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="617" src="https://cloudrf.com/wp-content/uploads/2026/04/HMAS_Canberra_with_a_USAF_MH-60_during_Talisman_Sabre_2021-1024x617.jpg" alt="" class="wp-image-63697" srcset="https://cloudrf.com/wp-content/uploads/2026/04/HMAS_Canberra_with_a_USAF_MH-60_during_Talisman_Sabre_2021-1024x617.jpg 1024w, https://cloudrf.com/wp-content/uploads/2026/04/HMAS_Canberra_with_a_USAF_MH-60_during_Talisman_Sabre_2021-300x181.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/04/HMAS_Canberra_with_a_USAF_MH-60_during_Talisman_Sabre_2021-768x463.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/04/HMAS_Canberra_with_a_USAF_MH-60_during_Talisman_Sabre_2021-1536x925.jpg 1536w, https://cloudrf.com/wp-content/uploads/2026/04/HMAS_Canberra_with_a_USAF_MH-60_during_Talisman_Sabre_2021-2048x1234.jpg 2048w, https://cloudrf.com/wp-content/uploads/2026/04/HMAS_Canberra_with_a_USAF_MH-60_during_Talisman_Sabre_2021-416x251.jpg 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">HMAS Canberra off the coast of Queensland, Australia (U.S. Air Force photo by 1st Lt. Joshua Thompson)</figcaption></figure>
</div>


<h2 class="wp-block-heading">Background</h2>



<p>In the early morning of the 4th of July 2025, the Australian warship HMAS Canberra sailed down the west coast of the North Island of New Zealand. It had its navigation radar on, surveying the sea for obstacles. At the same time, residents along the coast found their wireless residential and business internet failing. The story soon hit the local news sites which<a href="https://www.abc.net.au/news/2025-06-07/australian-ship-navigation-radar-new-zealand-internet/105388702"> spread across the globe.</a></p>



<p>For most people, having their Wi-Fi supposedly jammed by a warship isn’t a regular occurrence so it’s not a surprise the story went viral. However, a lot of the explanations were incomplete and didn&#8217;t explain the science behind the issue.</p>



<p>Using the tools offered by CloudRF, we can recreate the events <strong>and learn</strong> how radar and wireless comms interact.</p>



<h2 class="wp-block-heading">The Radar System: SAAB Sea Giraffe AMB</h2>



<p>First, a clarification. Maritime navigation radar is not a monolithic category. Commercially, the most common bands are X-band (~9.5 GHz) and S-band (~3 GHz), both of which are regulated for civilian maritime use and appear on everything from fishing trawlers to container ships. Military vessels frequently also carry C-band systems (~5.5 GHz), which offer a useful engineering trade-off: better range and resolution against small surface targets than S-band, but with less atmospheric attenuation than X-band.</p>



<p>On board the HMAS Canberra, there is only one named C band radar, the SAAB Sea Giraffe AMB. From the brochure <em>“The SEA GIRAFFE AMB is a medium range, multi-role surveillance radar optimized for detecting small air and surface targets with high update rate in all kinds of environments, including the littorals”</em> which is ideal for transiting the rugged coastlines of New Zealand.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/04/Sea-Girfraffe.jpg" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="300" height="225" src="https://cloudrf.com/wp-content/uploads/2026/04/Sea-Girfraffe.jpg" alt="" class="wp-image-63694" style="width:438px;height:auto"/></a><figcaption class="wp-element-caption">SAAB Sea Giraffe, image sourced from Radartutorial.eu</figcaption></figure>
</div>


<p>Naturally, full information on this system is not publicly available, so we shall have to try and source as much as possible and then estimate the remaining parameters. This will be saved as template in CloudRF and used for multiple calculations:</p>



<pre class="wp-block-code"><code>{
&nbsp; &nbsp; "site": "SeaGiraffe",
&nbsp; &nbsp; "network": "HMASCanberra",
&nbsp; &nbsp; "engine": 1,
&nbsp; &nbsp; "coordinates": 1,
&nbsp; &nbsp; "transmitter": {
&nbsp; &nbsp; &nbsp; &nbsp; "lat": -39.478009,
&nbsp; &nbsp; &nbsp; &nbsp; "lon": 173.687817,
&nbsp; &nbsp; &nbsp; &nbsp; "alt": 43,
&nbsp; &nbsp; &nbsp; &nbsp; "frq": 5550,
&nbsp; &nbsp; &nbsp; &nbsp; "txw": 25000,
&nbsp; &nbsp; &nbsp; &nbsp; "bwi": 100,
&nbsp; &nbsp; &nbsp; &nbsp; "powerUnit": "W"
&nbsp; &nbsp; },
&nbsp; &nbsp; "receiver": {
&nbsp; &nbsp; &nbsp; &nbsp; "lat": 0,
&nbsp; &nbsp; &nbsp; &nbsp; "lon": 0,
&nbsp; &nbsp; &nbsp; &nbsp; "alt": 8,
&nbsp; &nbsp; &nbsp; &nbsp; "rxg": 0,
&nbsp; &nbsp; &nbsp; &nbsp; "rxs": -64
&nbsp; &nbsp; },
&nbsp; &nbsp; "feeder": {
&nbsp; &nbsp; &nbsp; &nbsp; "flt": 1,
&nbsp; &nbsp; &nbsp; &nbsp; "fll": 0,
&nbsp; &nbsp; &nbsp; &nbsp; "fcc": 0
&nbsp; &nbsp; },
&nbsp; &nbsp; "antenna": {
&nbsp; &nbsp; &nbsp; &nbsp; "mode": "template",
&nbsp; &nbsp; &nbsp; &nbsp; "txg": 30,
&nbsp; &nbsp; &nbsp; &nbsp; "txl": 0,
&nbsp; &nbsp; &nbsp; &nbsp; "ant": 1,
&nbsp; &nbsp; &nbsp; &nbsp; "azi": 0,
&nbsp; &nbsp; &nbsp; &nbsp; "tlt": 0,
&nbsp; &nbsp; &nbsp; &nbsp; "pol": "v"
&nbsp; &nbsp; },
&nbsp; &nbsp; "model": {
&nbsp; &nbsp; &nbsp; &nbsp; "pm": 4,
&nbsp; &nbsp; &nbsp; &nbsp; "pe": 3,
&nbsp; &nbsp; &nbsp; &nbsp; "ked": 2,
&nbsp; &nbsp; &nbsp; &nbsp; "rel": 50
&nbsp; &nbsp; },
&nbsp; &nbsp; "environment": {
&nbsp; &nbsp; &nbsp; &nbsp; "elevation": 2,
&nbsp; &nbsp; &nbsp; &nbsp; "landcover": 1,
&nbsp; &nbsp; &nbsp; &nbsp; "buildings": 1,
&nbsp; &nbsp; &nbsp; &nbsp; "obstacles": 0,
&nbsp; &nbsp; &nbsp; &nbsp; "clt": "Temperate.clt"
&nbsp; &nbsp; },
&nbsp; &nbsp; "output": {
&nbsp; &nbsp; &nbsp; &nbsp; "units": "m",
&nbsp; &nbsp; &nbsp; &nbsp; "col": "GREEN.dBm",
&nbsp; &nbsp; &nbsp; &nbsp; "out": 2,
&nbsp; &nbsp; &nbsp; &nbsp; "nf": -94,
&nbsp; &nbsp; &nbsp; &nbsp; "res": 60,
&nbsp; &nbsp; &nbsp; &nbsp; "rad": 120
&nbsp; &nbsp; }
</code></pre>



<p>First, we can estimate the transmission power to be around 25kW which in this case is going to be our peak power.</p>



<p>We will set our bandwidth to be 40MHz which gives us single digit meter range resolution, though this maybe too high for more general surveillance, these types of radars can adjust their bandwidth to help search for specific features.</p>



<p>We shall set our center frequency to be 5550MHz which places us comfortably within the C band range.</p>



<p>Our last two variables relate to our antenna. Radar antennas are naturally placed on a ships mast, and the HMAS Canberra has several. The exact height isn’t available, but we know the tallest point on the Canberra is “45cm below the Sydney Harbour Bridge” which is roughly 49m above sea level. Looking at the vessel, there are two towers which are shorter than the aft tower. We can see from photos of the Canberra that the sea giraffe is in the middle tower. By subtracting a few metres gives a transmit height of roughly 43m.</p>



<p>For the antenna itself, we will use it&#8217;s rotation our advantage and model the system as a dipole, giving uniform coverage in all directions. With the template set up, we can make a prediction of the signal strength around the ship and see the radar’s potential coverage which by design is significant.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/RadarSignalPropagation.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" src="https://cloudrf.com/wp-content/uploads/2026/04/RadarSignalPropagation-1024x640.png" alt="" class="wp-image-63835" srcset="https://cloudrf.com/wp-content/uploads/2026/04/RadarSignalPropagation-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/RadarSignalPropagation-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/RadarSignalPropagation-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/RadarSignalPropagation-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/RadarSignalPropagation-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/RadarSignalPropagation-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Ship&#8217;s RADAR coverage</figcaption></figure>
</div>


<p>As we can see from the scale of the image, the HMAS Canberra’s radar signal propagates more than 150Km from the origin. However, as the <strong>signal must return to be sensed</strong>, we can use the radar model to give a rough indication of received power for a given radar cross section. In the image below an RCS of 10m2 at a height of 10m was used, giving much lower return values demonstrating why radar signals need so much more transmit power compared to regular communications.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/10RCSReturn.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" src="https://cloudrf.com/wp-content/uploads/2026/04/10RCSReturn-1024x640.png" alt="" class="wp-image-63838" srcset="https://cloudrf.com/wp-content/uploads/2026/04/10RCSReturn-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/10RCSReturn-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/10RCSReturn-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/10RCSReturn-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/10RCSReturn-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/10RCSReturn-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">RADAR detection range for a 10m2 cross section (ship or plane)</figcaption></figure>
</div>


<h2 class="wp-block-heading">5G Fixed Wireless Access</h2>



<p>On the other side of this situation, there are several privately owned and operated Fixed Wireless Access (FWA) networks providing rural communities internet access. In New Zealand, many WISPs utilise unlicensed RF spectrum under GURL licences. For a rural area at least, there are enough open channels and limited ranges that networks can dynamically operate around each other without causing significant interference issues.</p>



<p>To develop an understanding how a network provides coverage, a <strong>fictional FWA tower</strong> is templated in Cloud RF and used to give wireless coverage over the small town of Opunake on the East Coast. We can use Radio Spectrum New Zealand’s licensing requirements to establish reasonable power, frequency and tilt requirements. We set our receiver at 5m to represent a rooftop in the nearby towns.</p>



<p>For frequencies we can implement Radio Spectrum Management New Zealand&#8217;s FWA allocation depicted below.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/IEEEChannels.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="399" src="https://cloudrf.com/wp-content/uploads/2026/04/IEEEChannels-1024x399.png" alt="" class="wp-image-64276" srcset="https://cloudrf.com/wp-content/uploads/2026/04/IEEEChannels-1024x399.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/IEEEChannels-300x117.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/IEEEChannels-768x300.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/IEEEChannels-416x162.png 416w, https://cloudrf.com/wp-content/uploads/2026/04/IEEEChannels.png 1087w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<h2 class="wp-block-heading">5G FWA template</h2>



<pre class="wp-block-code"><code>{


&nbsp; &nbsp; "site": "Site-A",

&nbsp; &nbsp; "network": "NZ-WISP",

&nbsp; &nbsp; "engine": 1,

&nbsp; &nbsp; "coordinates": 1,

&nbsp; &nbsp; "transmitter": {

&nbsp; &nbsp; &nbsp; &nbsp; "lat": -39.283647,

&nbsp; &nbsp; &nbsp; &nbsp; "lon": 173.810227,

&nbsp; &nbsp; &nbsp; &nbsp; "alt": 22,

&nbsp; &nbsp; &nbsp; &nbsp; "frq": 5550,

&nbsp; &nbsp; &nbsp; &nbsp; "txw": 0.01,

&nbsp; &nbsp; &nbsp; &nbsp; "bwi": 40,

&nbsp; &nbsp; &nbsp; &nbsp; "powerUnit": "W"

&nbsp; &nbsp; },

&nbsp; &nbsp; "receiver": {

&nbsp; &nbsp; &nbsp; &nbsp; "lat": 0,

&nbsp; &nbsp; &nbsp; &nbsp; "lon": 0,

&nbsp; &nbsp; &nbsp; &nbsp; "alt": 5,

&nbsp; &nbsp; &nbsp; &nbsp; "rxg": 23,

&nbsp; &nbsp; &nbsp; &nbsp; "rxs": -105

&nbsp; &nbsp; },


&nbsp; &nbsp; "antenna": {

&nbsp; &nbsp; &nbsp; &nbsp; "mode": "template",

&nbsp; &nbsp; &nbsp; &nbsp; "txg": 23,

&nbsp; &nbsp; &nbsp; &nbsp; "txl": 0,

&nbsp; &nbsp; &nbsp; &nbsp; "ant": 3587,

&nbsp; &nbsp; &nbsp; &nbsp; "azi": 310,

&nbsp; &nbsp; &nbsp; &nbsp; "tlt": 1,

&nbsp; &nbsp; &nbsp; &nbsp; "pol": "v"

&nbsp; &nbsp; },

&nbsp; &nbsp; "model": {

&nbsp; &nbsp; &nbsp; &nbsp; "pm": 4,

&nbsp; &nbsp; &nbsp; &nbsp; "pe": 2,

&nbsp; &nbsp; &nbsp; &nbsp; "ked": 2,

&nbsp; &nbsp; &nbsp; &nbsp; "rel": 50

&nbsp; &nbsp; },

&nbsp; &nbsp; "environment": {

&nbsp; &nbsp; &nbsp; &nbsp; "elevation": 2,

&nbsp; &nbsp; &nbsp; &nbsp; "landcover": 1,

&nbsp; &nbsp; &nbsp; &nbsp; "buildings": 1,

&nbsp; &nbsp; &nbsp; &nbsp; "obstacles": 0,

&nbsp; &nbsp; &nbsp; &nbsp; "clt": "Temperate.clt"

&nbsp; &nbsp; },

&nbsp; &nbsp; "output": {

&nbsp; &nbsp; &nbsp; &nbsp; "units": "m",

&nbsp; &nbsp; &nbsp; &nbsp; "col": "LTE.dBm",

&nbsp; &nbsp; &nbsp; &nbsp; "out": 2,

&nbsp; &nbsp; &nbsp; &nbsp; "nf": -90,

&nbsp; &nbsp; &nbsp; &nbsp; "res": 20,

&nbsp; &nbsp; &nbsp; &nbsp; "rad": 30

&nbsp; &nbsp; }

}</code></pre>



<p>Selecting channel 110 sets the center frequency to 5.55GHz, and a coverage map can be created for the fictional site.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/WISPSiteA.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" src="https://cloudrf.com/wp-content/uploads/2026/04/WISPSiteA-1024x640.png" alt="" class="wp-image-64294" srcset="https://cloudrf.com/wp-content/uploads/2026/04/WISPSiteA-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/WISPSiteA-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/WISPSiteA-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/WISPSiteA-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/WISPSiteA-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/WISPSiteA-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Fictional hillside FWA site on NZ coastline. </figcaption></figure>
</div>


<p>From the coverage prediction, we can see that the relatively low power WISP is still receivable from nearly 20Km away with a clear line of sight for a 40MHz link. So, for any coast facing towers, there’s a good chance their signal can be <strong>detected offshore well past the intended service range</strong>. </p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/WispNetwork.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" src="https://cloudrf.com/wp-content/uploads/2026/04/WispNetwork-1024x640.png" alt="" class="wp-image-64297" srcset="https://cloudrf.com/wp-content/uploads/2026/04/WispNetwork-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/WispNetwork-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/WispNetwork-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/WispNetwork-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/WispNetwork-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/WispNetwork-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Fictional 5GHz FWA network</figcaption></figure>
</div>


<h2 class="wp-block-heading">Dynamic Frequency Selection</h2>



<p>As part of the licence requirements, radios using these bands are equipped with Dynamic Frequency Selection (DFS). This is an intentional safety mechanism <a href="https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1652-1-201105-I!!PDF-E.pdf">recommended by the ITU</a> to prioritise and protect Maritime radio navigation systems. The goal is to <strong>prevent interference by triggering a shutdown</strong> upon detecting radar pulses. The priority is to protect the radar picture which is safety critical.</p>



<p>Above a threshold, a received pulse will cause the wireless device to <strong>switch to a different frequency or shutdown </strong>it’s radio. It will listen out until it can no longer detect radar pulses before returning to that frequency and transmitting again so is performing automated de-confliction.</p>



<p>For our FWA systems, the threshold is set to -64dBm from a radar, received by a reference dipole with 0 dBi gain which is very easy to set up in Cloud RF by adjusting receiver sensitivity up to -64dBm and then remapping the coverage. In the image below, the areas in green represent a radar signal above the threshold that will trigger DFS.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/Static.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="576" src="https://cloudrf.com/wp-content/uploads/2026/04/Static-1024x576.png" alt="" class="wp-image-63826" srcset="https://cloudrf.com/wp-content/uploads/2026/04/Static-1024x576.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/Static-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/Static-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/Static-1536x864.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/Static-416x234.png 416w, https://cloudrf.com/wp-content/uploads/2026/04/Static.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Coverage at the threshold which will trigger DFS interference logic</figcaption></figure>
</div>


<p>As we can see, the radar signal easily covers the coastline and extends deeper into the mountainous areas. However, this is just a fixed location and not representative of the dynamic coverage of the moving platform.</p>



<h2 class="wp-block-heading">Estimating the Full Extent of the Outage.</h2>



<p>Rather than picking and analysing a single spot, we can recreate a similar course sailed by the HMAS Canberra and then use points along this track to build a comprehensive understanding of the impacted coastline.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>



<p>We know that the ship sailed down the west coast of the north island before heading into the cook straight on the way to its destination in Wellington. It’s not clear when the ships radar was switched to a different frequency and it is not possible to get historic coordinates like commercial shipping so likely course has been chosen.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/Sailing.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" src="https://cloudrf.com/wp-content/uploads/2026/04/Sailing-1024x640.png" alt="" class="wp-image-64363" srcset="https://cloudrf.com/wp-content/uploads/2026/04/Sailing-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/Sailing-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/Sailing-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/Sailing-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/Sailing-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/Sailing-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Simulated course for the ship</figcaption></figure>
</div>


<p>Using automatic processing, we can use the radar template to efficiently model coverage for each point and then use <a href="https://cloudrf.com/documentation/04_web_interface_functions.html#super-layer">Superlayer</a> to combine these results into a single layer.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/FullGreenCoverage.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" src="https://cloudrf.com/wp-content/uploads/2026/04/FullGreenCoverage-1024x640.png" alt="" class="wp-image-63832" srcset="https://cloudrf.com/wp-content/uploads/2026/04/FullGreenCoverage-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/FullGreenCoverage-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/FullGreenCoverage-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/FullGreenCoverage-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/FullGreenCoverage-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/FullGreenCoverage-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Super layer for the moving RADAR</figcaption></figure>
</div>


<p>Using our templated radar, we can see that the entire coastline on the West Coast is a above the power threshold that would trigger DFS. We can also see that northern coastal and mountainous areas of the South Island. This aligns with the reported outages and also <strong>shows affected areas which may not have made the news</strong>.</p>



<p>On the west coast, we can see that the gentle slope up from the coast towards Mt Taranaki offers little obstruction to the radar signal.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/0416111550_FinalCNZRainbow_PPA_RadarCover_PPA.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1000" height="647" src="https://cloudrf.com/wp-content/uploads/2026/04/0416111550_FinalCNZRainbow_PPA_RadarCover_PPA.png" alt="" class="wp-image-63778" srcset="https://cloudrf.com/wp-content/uploads/2026/04/0416111550_FinalCNZRainbow_PPA_RadarCover_PPA.png 1000w, https://cloudrf.com/wp-content/uploads/2026/04/0416111550_FinalCNZRainbow_PPA_RadarCover_PPA-300x194.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/0416111550_FinalCNZRainbow_PPA_RadarCover_PPA-768x497.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/0416111550_FinalCNZRainbow_PPA_RadarCover_PPA-416x269.png 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a></figure>
</div>


<p>From the coverage maps it is safe to conclude that the outage was caused by the DFS triggers rather than physical interference on the antennas. It was an inconvenience for the affected businesses and customers but an effective demonstration of spectrum co-existence technology working as intended.  </p>



<p>For many readers of the subsequent news articles, it was the first time they had learnt that <strong>a ship can disable internet access, and it&#8217;s</strong> <strong>a standard</strong> <strong>baked into radio equipment</strong>.</p>



<h2 class="wp-block-heading" id="block-fc13f5b2-347a-4e51-99ec-b2686305cc0f">What if there wasn’t DFS?</h2>



<p id="block-dbb99a25-6370-477c-9cd0-fd6d33243156">When viewing these images, it might be tempting to ask the question, “Why does this radar system need protecting? And what would happen to the FWA network if DFS wasn’t required?</p>



<p id="block-e260d15b-1338-4e95-86b8-975e10444e46">To do that, it is necessary need to investigate both emitters to see how the two networks could interfere with each other.</p>



<h2 class="wp-block-heading" id="block-a2c7ea9b-b081-47dd-98fa-698326517d81">Radar Signal Interference on the WISP.</h2>



<p id="block-6e3cd10b-80db-43c7-8ee3-3ea3ba5b3cc8">To establish the interference of one network upon another is a straight forward task with the <a href="https://cloudrf.com/documentation/04_web_interface_functions.html#interference-analysis">interference tool</a>. However, before we can jump straight into the analysis, we need to make sure we are comparing apples to apples.</p>



<p id="block-2092f41b-33f2-4a97-866d-74ae2f6b605b">To begin with, radar signals are typically circular polarised. However, our FWA is vertically polarised so we will have some polarisation loss which will be estimated at -3dB.</p>



<p id="block-68a4d0ef-c88d-4fd2-9f19-6c3fa66df3db">Additionally, the centre frequency our radar system and bandwidth is not always the same as our radio channels, we will need to compare across the range of channels to see how the radar system affects adjacent channels rather than just co-channel interference.</p>



<p id="block-096e82f3-bc37-49e8-b35e-ae1748db5a6b">Referring back to the RSMNZ chart, we can see that many channels are varying bandwidths. For this analysis, we will focus on the 40MHz 802.11 channels.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">802.11 Channel Number</th><th class="has-text-align-left" data-align="left">Centre Frequency (MHz)</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">102</td><td class="has-text-align-left" data-align="left">5510</td></tr><tr><td class="has-text-align-left" data-align="left">110</td><td class="has-text-align-left" data-align="left">5550</td></tr><tr><td class="has-text-align-left" data-align="left">118</td><td class="has-text-align-left" data-align="left">5590</td></tr><tr><td class="has-text-align-left" data-align="left">126</td><td class="has-text-align-left" data-align="left">5630</td></tr><tr><td class="has-text-align-left" data-align="left">134</td><td class="has-text-align-left" data-align="left">5670</td></tr><tr><td class="has-text-align-left" data-align="left">142</td><td class="has-text-align-left" data-align="left">5710</td></tr></tbody></table></figure>



<p id="block-e5f3f426-1611-4d88-af97-e8bab692de37">Using our FWA templates, we can quickly produce coverage maps and then use the interference tool in Cloud RF to see how the ship&#8217;s radar will impact connectivity on these channels of interest. Recalling that we are using a 40MHz radar signal centred at 5550MHz, we would expect to see interference within the range of 5530-5570MHz. This would overlap with channels 102 and 100, leaving the rest of the spectrum clear.</p>



<p></p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-3 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/5550MHz.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" data-id="64303" src="https://cloudrf.com/wp-content/uploads/2026/04/5550MHz-1024x640.png" alt="" class="wp-image-64303" srcset="https://cloudrf.com/wp-content/uploads/2026/04/5550MHz-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/5550MHz-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/5550MHz-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/5550MHz-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/5550MHz-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/5550MHz-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">5550MHz</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/5590MHz.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" data-id="64309" src="https://cloudrf.com/wp-content/uploads/2026/04/5590MHz-1024x640.png" alt="" class="wp-image-64309" srcset="https://cloudrf.com/wp-content/uploads/2026/04/5590MHz-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/5590MHz-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/5590MHz-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/5590MHz-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/5590MHz-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/5590MHz-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">5590MHz</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/5670MHz.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" data-id="64312" src="https://cloudrf.com/wp-content/uploads/2026/04/5670MHz-1024x640.png" alt="" class="wp-image-64312" srcset="https://cloudrf.com/wp-content/uploads/2026/04/5670MHz-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/5670MHz-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/5670MHz-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/5670MHz-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/5670MHz-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/5670MHz-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">5670MHz</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">Wideband interference on nearby channels</figcaption></figure>



<p>By using the interference tool, we can see that the simplistic assumption was only half-right and the relative strength of the <strong>radar signal has caused interference outside of it&#8217;s 40MHz bandwidth</strong>. Adjacent channel interference can still be observed up to 5630MHz before it drops away leaving channels 134 and 142 clear.</p>



<p class="has-medium-font-size"><strong>Signal power is shaped like a bell</strong> <strong>and is wider in practice than on paper.</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/04/bells.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="805" height="455" src="https://cloudrf.com/wp-content/uploads/2026/04/bells.png" alt="" class="wp-image-64549" style="aspect-ratio:1.7692551059865715;width:426px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/04/bells.png 805w, https://cloudrf.com/wp-content/uploads/2026/04/bells-300x170.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/bells-768x434.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/bells-416x235.png 416w" sizes="auto, (max-width: 805px) 100vw, 805px" /></a><figcaption class="wp-element-caption">Adjacent bells overlapping</figcaption></figure>
</div>


<p>As the radar bandwidth was assumed to be 40MHz, there is a possibility the actual SEA Giraffe could have used a wider bandwidth which would have caused wider adjacent channel interference, leaving none of the 40MHz 802.11 viable. So given the high levels of adjacent channel interreference we can safely say that without DFS, these WISPs would still be dealing with a significant outage until the ship had passed.</p>



<h2 class="wp-block-heading">WISP Interference on the Radar Screen.</h2>



<p>If the radar is so powerful, why is priority given to it compared with low power home networking equipment?</p>



<p>For that reason, it is worth looking at the effect of interference on a radar return. First and foremost, we need to understand the purpose of the radar is to aid navigation.  Radio navigation is critical for detecting hazards when visibility is poor. For a military ship, particularly a helicopter carrier, surveillance and coordination of close airspace is also a key task. </p>



<p>Measuring interference is not easy as the exact relationship between the wireless transmission and the radar receiver is complex however we can model some educated assumptions to show the potential effect.</p>



<p>First, not all the power from the coastal signal will be absorbed by the radar antenna due to polarisation and what is makes it to the radar screen will be further attenuated by the receiver’s processing gain as the radar will use spreading codes, beamforming and other techniques to improve selectivity and mitigate interference. To model them, we&#8217;d need very detailed information on the Sea Giraffe which is not publicly available.  </p>



<p>What we can observe, however, is the <strong>rise of the noise floor</strong> due to the addition of WISP transmissions around the ship and this will impact the signal-to-noise ratio (SNR) before signal processing.</p>



<p>First, we will use a FWA channel that is entirely within the bandwidth of the radar signal to keep spectral density simple. For this case we will use channel 110 at 5550MHz.</p>



<p>The noise floor is given by the combination of the radar&#8217;s thermal noise, the power of the FWA signal and other sources. Noise is computed using the signal power divided by Boltzmann&#8217;s constant.</p>



<p></p>



<p class="has-text-align-center"><math><msub><mi>N</mi><mi>floor</mi></msub><mo>=</mo><mi>k</mi><mi>T</mi><mi>B</mi><mo>+</mo><msub><mi>P</mi><mi>WISP</mi></msub></math></p>



<p class="has-text-align-center"><math><mi>Δ</mi><msub><mi>N</mi><mi>floor</mi></msub><mo>≈</mo><mfrac><msub><mi>P</mi><mrow><mi>WISP</mi><mo>(</mo><mi>in-band</mi><mo>)</mo></mrow></msub><mrow><mi>k</mi><mi>T</mi><mi>B</mi></mrow></mfrac></math></p>



<p class="has-text-align-center"><math><mi>Δ</mi><msub><mi>N</mi><mi>floor</mi></msub><mo>(</mo><mi>dB</mi><mo>)</mo><mo>≈</mo><mn>10</mn><msub><mo>log</mo><mn>10</mn></msub><mfrac><msub><mi>P</mi><mrow><mi>WISP</mi><mo>(</mo><mi>in-band</mi><mo>)</mo></mrow></msub><mrow><mi>k</mi><mi>T</mi><mi>B</mi></mrow></mfrac></math></p>



<p>As the radar noise floor is relatively constant, by using Cloud RF, we can generate received power predictions and then use the <a href="https://cloudrf.com/documentation/02_web_interface_intro.html#noise-floor">noise database</a> feature to visualise the effect of a changing noise floor on radar return coverage.</p>



<p>We will use another fictional FWA site that is pointing out along the coast, providing coverage to a coastal town. From this tower, the signal propagates beyond it’s intended audience and is received by the ship’s antenna. </p>



<p>To address the change from vertical to circular polarisation, we can factor in a -3dB loss.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/WispToRadar.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" src="https://cloudrf.com/wp-content/uploads/2026/04/WispToRadar-1024x640.png" alt="" class="wp-image-63988" srcset="https://cloudrf.com/wp-content/uploads/2026/04/WispToRadar-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/WispToRadar-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/WispToRadar-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/WispToRadar-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/WispToRadar-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/WispToRadar-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Ship&#8217;s course traversing a local wireless network</figcaption></figure>
</div>


<p>At our reference points, we can see that the ship travels through the FWA coverage, which peaks at around -76dBm <strong>despite being over 16km away from the receiver</strong>. This is because our radar antenna is elevated and it has a high 30dBi gain. As both systems are working on channel 110, all of this received power is in band for the radar and<strong> adds to the noise floor.</strong></p>



<p>With a value for WISPs sorted, we can calculate the Radar Thermal Noise Floor at 40 MHz.</p>



<p class="has-text-align-center has-medium-font-size">N = kTB = 1.38×10⁻²³ × 290 × 40×10⁶ = <strong>-108 dBm</strong></p>



<p>And then converting to mW we can see that our new noise value is dominated by our WISP signal due to the orders of magnitude in difference.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Noise Sources</th><th>Power (mW)</th></tr></thead><tbody><tr><td>Thermal noise (-108 dBm)</td><td>1.585 × 10⁻¹¹</td></tr><tr><td>WISP in band (-76 dBm)</td><td>2.512 × 10⁻⁸</td></tr><tr><td>Combined</td><td>≈ 2.512 × 10⁻⁸ (-76dBm)</td></tr></tbody></table></figure>



<p>For a simple SNR equation, this much noise will lead to a drastic reduction in detection range. In reality, the Sea Giraffe will have front end filtering and signal processing techniques built in to significantly boost it&#8217;s signal ratio and maintain a clear picture. It is also important to note that this interference will only be coming from one angle, which makes it&#8217;s effect asymmetric.</p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/76dBm.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" data-id="64255" src="https://cloudrf.com/wp-content/uploads/2026/04/76dBm-1024x640.png" alt="" class="wp-image-64255" srcset="https://cloudrf.com/wp-content/uploads/2026/04/76dBm-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/76dBm-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/76dBm-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/76dBm-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/76dBm-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/76dBm-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">High noise</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/108dBm.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" data-id="64258" src="https://cloudrf.com/wp-content/uploads/2026/04/108dBm-1024x640.png" alt="" class="wp-image-64258" srcset="https://cloudrf.com/wp-content/uploads/2026/04/108dBm-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/108dBm-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/108dBm-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/108dBm-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/108dBm-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/108dBm-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Uniform noise</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/NoiseNugget.png" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="1024" height="640" data-id="64270" src="https://cloudrf.com/wp-content/uploads/2026/04/NoiseNugget-1024x640.png" alt="" class="wp-image-64270" srcset="https://cloudrf.com/wp-content/uploads/2026/04/NoiseNugget-1024x640.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/NoiseNugget-300x188.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/NoiseNugget-768x480.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/NoiseNugget-1536x960.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/NoiseNugget-2048x1280.png 2048w, https://cloudrf.com/wp-content/uploads/2026/04/NoiseNugget-416x260.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Variable noise</figcaption></figure>
</figure>



<p>From the different coverage plots, we can see that varying noise sources change coverage significantly and as RADAR is a directional array, a blind spot can be directional.</p>



<p>We can see that there is potential that increased noise in the C band could lead to a notable reduction in radar picture accuracy which presents a danger to maritime navigation, which has priority.</p>



<p>From the analysis, it is clear that the DFS system functioned as intended. It kept the ship&#8217;s navigation systems safe from interference at the cost of a temporary disruption for the coastal communities. </p>



<p>To prevent this happening, visiting warships could be given spectrum assignments clear of civilian infrastructure, or could signal their intentions in advance to local spectrum authorities. Vigilant spectrum surveillance could also provide early warning of anomalies which could be communicated to local spectrum users.</p>



<p></p>



<h2 class="wp-block-heading">Coastal interference demo</h2>



<p>Because we&#8217;ve leveraged the Cloud RF API and made templates, we can package our multi-step static analysis into a <strong>dynamic and simple tool</strong>. Using everybody&#8217;s new team member, Claude, we have published a simple tool which can demonstrate the signal strength for a ship&#8217;s radar as received by a coastal network.</p>



<p>Explore the tool here: <a href="https://cloud-rf.github.io/CloudRF-API-clients/slippy-maps/radar_interference_demo.html">https://cloud-rf.github.io/CloudRF-API-clients/slippy-maps/radar_interference_demo.html</a></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/HMASDEMO.gif" rel="lightbox[64507]"><img loading="lazy" decoding="async" width="468" height="462" src="https://cloudrf.com/wp-content/uploads/2026/04/HMASDEMO.gif" alt="" class="wp-image-64369"/></a><figcaption class="wp-element-caption">Animation from the coastal interference demo </figcaption></figure>
</div>


<h2 class="wp-block-heading">References</h2>



<p>HMAS Canberra <a href="https://www.dvidshub.net/image/6755556/us-special-operations-australian-navy-accomplish-combined-black-hawk-deck-landings">https://www.dvidshub.net/image/6755556/us-special-operations-australian-navy-accomplish-combined-black-hawk-deck-landings</a></p>



<p>HMAS Canberra Capabilities, <a href="https://www.navy.gov.au/capabilities/ships-boats-and-submarines/hmas-canberra-iii">https://www.navy.gov.au/capabilities/ships-boats-and-submarines/hmas-canberra-iii</a></p>



<p>SAAB Sea Giraffe AMB, <a href="https://www.radartutorial.eu/19.kartei/07.naval/karte038.de.html">https://www.radartutorial.eu/19.kartei/07.naval/karte038.de.html</a></p>



<p><a href="https://www.rnz.co.nz/news/world/563357/hmas-canberra-accidentally-blocks-wireless-internet-and-radio-services-in-new-zealand">HMAS Canberra accidentally blocks wireless internet and radio services in New Zealand | RNZ News</a></p>



<p><a href="https://www.theguardian.com/australia-news/2025/jun/06/australian-navy-ship-accidentally-blocks-wifi-across-parts-of-new-zealand">Australian navy ship accidentally blocks internet and radio across parts of New Zealand | Australian military | The Guardian</a></p>
<p>The post <a href="https://cloudrf.com/how-a-passing-warship-took-out-a-towns-internet/">How a passing Warship took out a town&#8217;s Internet</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Optimising drone detection with RF simulation</title>
		<link>https://cloudrf.com/optimising-drone-detection-with-rf-simulation/</link>
		
		<dc:creator><![CDATA[Matt]]></dc:creator>
		<pubDate>Tue, 21 Apr 2026 15:20:34 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=62370</guid>

					<description><![CDATA[<p>The rapid growth of Counter Unmanned Aerial Systems (C-UAS) across government, public, and commercial sectors has increased the need for&#160;accurate&#160;modelling to improve sensor siting and effectiveness. This blog explores how Counter- (C-UAS) and RADAR systems can be modelled efficiently within CloudRF to optimise siting and improve their effectiveness. The challenge&#160; The&#160;methodology&#160;for&#160;operating&#160;sensors varies depending on the environment in which they [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/optimising-drone-detection-with-rf-simulation/">Optimising drone detection with RF simulation</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-medium-font-size">The rapid growth of Counter Unmanned Aerial Systems (C-UAS) across government, public, and commercial sectors has increased the need for&nbsp;accurate&nbsp;modelling to improve sensor siting and effectiveness.</p>



<p>This blog explores how Counter- (C-UAS) and RADAR systems can be modelled efficiently within CloudRF to optimise siting and improve their effectiveness.</p>



<h1 class="wp-block-heading">The challenge&nbsp;</h1>



<p>The&nbsp;methodology&nbsp;for&nbsp;operating&nbsp;sensors varies depending on the environment in which they are&nbsp;operating:</p>



<p>In dense urban environments, high-rise buildings reduce Line&nbsp;Of&nbsp;Sight (LOS) and block ultra high frequency signals, creating what are commonly referred to as urban canyons. An example of this effect for a poorly sited sensor at street level is shown in the screenshot below.&nbsp; In such environments, reliable coverage is limited to areas where a clear Line-Of-Sight (LOS) path exists.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-6.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-6.png" alt="" class="wp-image-62430" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-6.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-6-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-6-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-6-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption"><em>Coverage in&nbsp;Dallas, from an S-band receiver operating&nbsp;at 2 m AGL, with the drone height at 50 m AGL.&nbsp;</em></figcaption></figure>
</div>


<p>By contrast, in <strong>open rural environments</strong>, where terrain and structural obstructions are minimal, significantly&nbsp;greater&nbsp;and more consistent coverage is achieved using the same transmitter configuration. This comparison highlights the substantial impact that the environment has upon system performance.&nbsp;</p>



<p>Similar challenges arise in environments where <strong>vegetation screening</strong> is present, particularly in forested and jungle regions. Dense foliage, tree canopies, and uneven terrain can significantly obstruct LOS. These factors degrade the performance of C-UAS and RADAR systems by reducing detection ranges and creating coverage gaps. As a result, system effectiveness is biased towards clearings or elevated positions where partial LOS above vegetation can be&nbsp;maintained.&nbsp;&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-7.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-7.png" alt="" class="wp-image-62436" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-7.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-7-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-7-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-7-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Best Site Analysis for a transmitter&nbsp;operating&nbsp;at 2 m AGL, with the receiver positioned at 50 m AGL in Sweden.</figcaption></figure>
</div>


<p>Operators in obstacle-dense environments&nbsp;are therefore required to&nbsp;invest&nbsp;significant time&nbsp;in&nbsp;identifying&nbsp;suitable siting locations to maximise their equipment’s performance. This can be a challenging task due to access restrictions and the time&nbsp;required&nbsp;to conduct map studies and pre-deployment reconnaissance. These activities are resource-intensive and place&nbsp;additional&nbsp;demands on system operators who may already be&nbsp;operating&nbsp;under tight time constraints.&nbsp;</p>



<p>Time invested in developing and optimising siting locations can be quickly undermined by the introduction of new obstacles that block LOS. These obstructions may take various forms, ranging from temporary structures erected for events to newly constructed buildings. Such changes can significantly degrade system performance and&nbsp;necessitate&nbsp;reassessment and reconfiguration of established sites.&nbsp;</p>



<p>An often-overlooked challenge across all operating environments is spectrum noise. Noise levels vary significantly between locations and&nbsp;fluctuate&nbsp;due to changing environmental and human activity. While pre-event site visits and planning can help&nbsp;establish&nbsp;baseline conditions,&nbsp;increased traffic&nbsp;during an&nbsp;event&nbsp;such&nbsp;as a motorsport or a music festival&nbsp;can raise noise levels to unprecedented levels,&nbsp;degrading system&nbsp;performance&nbsp;and detection reliability.&nbsp;&nbsp;</p>



<p>Another challenge facing teams is whether they are looking to counter the Unmanned Aerial Vehicle (UAV) or the controller. Locating the controller can vary in complexity depending on how the drone is&nbsp;operating. A drone&nbsp;operating&nbsp;on the 2.4GHz ISM band may stand out against the normal radio environment due to its&nbsp;relatively strong&nbsp;and&nbsp;distinctive&nbsp;spiky&nbsp;FSK signal, whereas a drone&nbsp;operated&nbsp;via LTE or 5G SA will be more difficult to distinguish among dense cellular traffic.&nbsp;</p>



<p class="has-medium-font-size"><strong>Terrain, buildings, vegetation, and RF noise constrain coverage, making site&nbsp;selection key to system effectiveness.</strong>&nbsp;</p>



<h1 class="wp-block-heading">The Solution&nbsp;</h1>



<p>Modelling coverage and&nbsp;identifying&nbsp;transmission sites for these systems can be done quickly and effectively using tools which are accessible to not only radio engineers but <strong><span style="text-decoration: underline;">operators</span></strong> on CloudRF.&nbsp;&nbsp;</p>



<p>The first step to using the system efficiently is to setup a template. This is how we can save our settings for systems and reference them quickly for future calculations. Templates include information about the transmission and receiving station(s), such as heights, frequencies, power, antennas and environmental factors, some of which are discussed further below.&nbsp;&nbsp;</p>



<h2 class="wp-block-heading has-medium-font-size"><strong>Making the Template&nbsp;</strong></h2>



<p>When designing a template for a C-UAS or RADAR system, we should apply&nbsp;additional&nbsp;consideration to the following:&nbsp;</p>



<h4 class="wp-block-heading"><strong><em>Height Measurement</em>&nbsp;</strong></h4>



<p>We can specify the height unit to be measured as Above Ground Level (AGL) or Above Sea Level (ASL), in either metres or feet. RADAR systems looking to&nbsp;locate&nbsp;fixed wing platforms are better suited for Feet ASL, whilst UAVs which use &#8220;GPS height&#8221; reference Metres AGL as their primary height reference, especially for restrictions which are also communicated as AGL. For example, consumer drones are restricted to 120m (400ft) AGL in the UK.</p>



<p class="has-black-color has-cyan-bluish-gray-background-color has-text-color has-background has-link-color wp-elements-5ef460695f0c40ad7c3c0865191b6a1c"><em>Running calculations in ASL is recommended for experienced users of CloudRF. When the transmitter location is changed, the height will need to be adjusted to consider the ground beneath. If not adjusted correctly, transmitters and receivers can be placed underground by accident resulting in an error. </em></p>



<p><strong>&nbsp;Use AGL for UAV operations and ASL for high-altitude RADAR targets to match the domain/system altitude references.</strong>&nbsp;</p>



<h4 class="wp-block-heading"><strong>Model</strong>&nbsp;&nbsp;</h4>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-16.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="404" height="255" src="https://cloudrf.com/wp-content/uploads/2026/04/image-16.png" alt="" class="wp-image-62697" style="width:385px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-16.png 404w, https://cloudrf.com/wp-content/uploads/2026/04/image-16-300x189.png 300w" sizes="auto, (max-width: 404px) 100vw, 404px" /></a></figure>
</div>


<p>When designing a template for a RADAR system, the dedicated RADAR model should be used. This model is more that just line of sight as it uses a Radar Cross Section (RCS) value, allowing operators to define the size of targets they intend to detect where a drone has a smaller RCS (0.04) than a plane ( 6.0 ) which limits it&#8217;s detection range compared with a plane. By configuring&nbsp;appropriate RCS&nbsp;values, the model can more accurately&nbsp;represent&nbsp;real-world detection performance.&nbsp;</p>



<p>For a counter-UAS (C-UAS) system, the recommended model is ITU-R P.1812 with an average context, 50% reliability and diffraction turned off. This combination of model and diffraction will simulate the high frequencies&nbsp;and line-of-sight coverage utilised&nbsp;by C-UAS systems and has been proven to be the most accurate model during <a href="https://cloudrf.com/choosing-an-rf-propagation-model/" type="post" id="60042">our model testing</a>.</p>



<p></p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-17.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="392" height="232" src="https://cloudrf.com/wp-content/uploads/2026/04/image-17.png" alt="" class="wp-image-62700" style="width:383px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-17.png 392w, https://cloudrf.com/wp-content/uploads/2026/04/image-17-300x178.png 300w" sizes="auto, (max-width: 392px) 100vw, 392px" /></a></figure>
</div>


<p class="has-normal-font-size"><strong>Use the RADAR model with RCS values of 0.05 for air-surveillance and ITU-R P.1812 (diffraction off) for UHF C-UAS sensors.</strong>&nbsp;</p>



<p></p>



<p></p>



<h4 class="wp-block-heading"><strong>Environment</strong>&nbsp;</h4>



<p>Obstacles affecting system coverage can be configured within CloudRF through the Environment submenu.&nbsp;</p>



<p>CloudRF provides access to extensive global clutter datasets, including 10m land cover, 2m building data, and, in selected regions, 2m LiDAR and tree canopy height data.&nbsp;&nbsp;</p>



<p>An interactive map showing the availability of this data can be accessed at the following link &#8211;&nbsp;<a href="https://api.cloudrf.com/API/terrain" target="_blank" rel="noreferrer noopener">https://api.cloudrf.com/API/terrain</a>&nbsp;</p>



<p><em><a href="https://cloudrf.com/soothsayer/" type="page" id="6612">SOOTHSAYER</a><sup>TM</sup> users can import their own LiDAR in addition to&nbsp;CloudRFs&nbsp;DEM archive.&nbsp;</em></p>



<p>For added accuracy, obstacle attenuation can be fine-tuned using clutter profiles, allowing operators to accurately&nbsp;represent&nbsp;real-world conditions. This level of customisation enables precise coverage predictions and improves confidence in system performance assessments especially at lower frequencies where NLOS attenuation needs to be considered as well as LOS.</p>



<p>To deal with temporary or new obstacles not currently in the DEM dataset, users&nbsp;can enable&nbsp;the &#8216;My Obstacles&#8217; feature to manually draw or upload a KMZ/Geojson&nbsp;of the obstacle(s) to be included in the coverage prediction.&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="900" height="363" src="https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights.png" alt="" class="wp-image-61392" srcset="https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights.png 900w, https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights-300x121.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights-768x310.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights-416x168.png 416w" sizes="auto, (max-width: 900px) 100vw, 900px" /></a></figure>
</div>


<h4 class="wp-block-heading"><strong>Noise</strong>&nbsp;</h4>



<p>Noise is often an overlooked factor in radio network planning, yet its impact on coverage and performance is significant. By incorporating measured or simulated noise data, the planning environment will more accurately replicate real-world radio conditions. </p>



<p>This enables operators to reflect variations in the operating environment  whether accounting for daily commuter traffic patterns or preparing for <strong>large-scale events such as concerts and sporting fixtures, where spectrum density and interference levels both increase substantially.</strong>&nbsp;&nbsp;</p>



<p>Noise is a factor within the template&#8217;s environment block. This value can either be manually entered eg. -100dBm or referenced from&nbsp;an&nbsp;uploaded dataset from multiple locations, creating a visible noise layer on the map.&nbsp;&nbsp;</p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-18.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="388" height="289" src="https://cloudrf.com/wp-content/uploads/2026/04/image-18.png" alt="" class="wp-image-62715" style="aspect-ratio:1.3425981073390245;width:370px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-18.png 388w, https://cloudrf.com/wp-content/uploads/2026/04/image-18-300x223.png 300w" sizes="auto, (max-width: 388px) 100vw, 388px" /></a></figure>
</div>


<p>Live noise can also be simulated in calculations&nbsp;by using&nbsp;networked SDRs. We have&nbsp;published&nbsp;an example capability here:&nbsp;<a href="https://github.com/Cloud-RF/DORA" target="_blank" rel="noreferrer noopener">https://github.com/Cloud-RF/DORA</a>&nbsp;</p>



<p><strong>Our recommended default settings are for Landcover and Buildings to be ON with the Temperate clutter profile which represents dense trees.</strong>&nbsp;</p>



<p>If you do not know the noise figure at your receiver, enter -100dBm which is typical of the ISM 2.4GHz band but will vary widely by location. Noise is measured across a channel so should be measured with the appropriate bandwidth. Johnson-Nyquist theory means (channel) noise increases with bandwidth and to a lesser extent, temperature.</p>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><tbody><tr><td><strong>Bandwidth MHz</strong></td><td><strong>Channel Noise dBm</strong></td></tr><tr><td>1</td><td>-114</td></tr><tr><td>10</td><td>-104</td></tr><tr><td>20</td><td>-101</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><strong>Tools &amp; Features&nbsp;</strong></h2>



<p>Once we have created a&nbsp;system template,&nbsp;we can use&nbsp;it with a number of&nbsp;tools to&nbsp;identify&nbsp;a transmission site and then&nbsp;determine&nbsp;the effective coverage from that location.&nbsp;</p>



<h4 class="wp-block-heading"><strong>Best Site Analysis (BSA)&nbsp;</strong></h4>



<p>BSA is a powerful search tool designed to&nbsp;identify&nbsp;optimal&nbsp;transmitter placement locations defined by a geographical area.&nbsp;It performs hundreds of tests rapidly with a GPU in an area using a full propagation model with transmitter parameters. Positions are graded and then ranked to present the results as a heatmap image.</p>



<p><em>“The examples used in this document have been generated using KMZ and&nbsp;GeoJSON&nbsp;files. These can be imported into the User Interface (UI) via the Import Menu – Best Site Analysis. This is our recommended way to use the tool, as the simulation can be re-run with the same defined area and speed up the process when comparing a variety of height levels. There are&nbsp;numerous&nbsp;ways of doing this. Numerous software packages can do this; KMZ files can be created in Google Earth,&nbsp;and GeoJSON&nbsp;files can be created via geojson.io”</em>&nbsp;</p>



<p>BSA is particularly valuable for&nbsp;identifying&nbsp;viable&nbsp;transmitter sites that may be overlooked through traditional planning methods such as &#8220;walking the ground&#8221; for example. By automating complex visibility analysis, users obtain actionable results within minutes, significantly reducing the time and effort associated with manual studies.&nbsp;</p>



<p>The recommended locations require interpretation. For example, if you are working with a DSM LiDAR model which contains water, this may be ranked as an efficient site. An operator will likely discount this, but that doesn&#8217;t mean that an adversary will as <a href="https://www.youtube.com/watch?v=T_tFSWZXKN0">launching a drone from a boat is effective</a>.</p>



<p class="has-medium-font-size"><strong>BSA ranks the most effective transmitter locations within an area using inter-visibility scoring.</strong>&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-21.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="1024" height="647" src="https://cloudrf.com/wp-content/uploads/2026/04/image-21-1024x647.png" alt="" class="wp-image-62745" style="aspect-ratio:1.5827358490566037;width:706px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-21-1024x647.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/image-21-300x189.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-21-768x485.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-21-416x263.png 416w, https://cloudrf.com/wp-content/uploads/2026/04/image-21.png 1034w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Mountain Lake analysis showing both the lake and ridges as good sites within the area of interest</figcaption></figure>
</div>


<h4 class="wp-block-heading"><strong>Area Calculation&nbsp;</strong></h4>



<p>Once suitable candidate sites have been&nbsp;located, we can use the <strong>Area </strong>endpoint via the UI or API to see the coverage of our system at various heights. The heights chosen for the receiver will depend on the asset that we are looking to target with the C-UAS or radar system, for example 100m AGL.</p>



<p>The heatmaps created by the Area endpoint show the coverage of the transmitter to the receiver using the settings prescribed in the template. Heatmaps are useful for&nbsp;identifying&nbsp;<strong>areas with and without coverage</strong> and can&nbsp;assist&nbsp;in the&nbsp;decision-making&nbsp;process for the deployment of&nbsp;additional&nbsp;assets to further enhance coverage.&nbsp;&nbsp;</p>



<p><strong>&nbsp;Area calculations can show coverage from a candidate site and expose gaps and shadowed airspace.</strong>&nbsp;</p>



<h4 class="wp-block-heading"><strong>Best Server<em>&nbsp;</em></strong></h4>



<p>Best Server is a feature which can be used with an established network. The Best Server tool will check each node for coverage to the designated receiver location. This allows the coverage from a large network of radios to be checked at various heights quickly, a common requirement when planning C-UAS, Radar or any Ground-To-Air transmission.&nbsp;</p>



<p><strong>&nbsp;Best Server&nbsp;identifies&nbsp;which network nodes can affect a target at a given height and location.</strong>&nbsp;</p>



<h2 class="wp-block-heading"><strong>Case Study 1 – C-UAS Site Selection &#8211; Texas, USA&nbsp;</strong></h2>



<p><em>Difficulty: Easy</em>&nbsp;</p>



<p>This case study evaluates&nbsp;optimal&nbsp;C-UAS siting and coverage performance in the vicinity of a major sports stadium in Arlington, Texas.&nbsp;</p>



<h4 class="wp-block-heading"><em><strong>Inputs</strong>&nbsp;</em></h4>



<ul class="wp-block-list">
<li><em>C-UAS template</em>&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li><em>Defined area of interest</em>&nbsp;</li>
</ul>



<h4 class="wp-block-heading"><strong><em>Process</em></strong>&nbsp;</h4>



<ul class="wp-block-list">
<li><em>Best Site Analysis to generate and score candidate locations</em>&nbsp;</li>
</ul>



<h4 class="wp-block-heading"><strong><em>Outputs</em></strong>&nbsp;</h4>



<ul class="wp-block-list">
<li><em>Coverage heatmaps per site (multi-height Area analysis)</em>&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li><em>Identification of coverage gaps and shadowed regions</em>&nbsp;</li>
</ul>



<h4 class="wp-block-heading"><strong><em>Decisions</em></strong>&nbsp;</h4>



<ul class="wp-block-list">
<li><em>Select primary deployment site(s)</em>&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li><em>Position&nbsp;additional&nbsp;systems for full airspace coverage</em>&nbsp;</li>
</ul>



<p>The system represented by the template in this simulation is an omnidirectional C-UAS system,&nbsp;operating&nbsp;at 2.4GHz, with a 3m tall antenna. For the&nbsp;initial&nbsp;survey, the receiver height is set to 150m AGL, this can be reduced for more in-depth planning throughout the planning process.&nbsp;&nbsp;&nbsp;</p>



<p>The model used for this survey is ITU-R P.1812, with diffraction turned off. Within the city of Arlington, there is 2m LiDAR available, which has been selected by setting the Environment to Surface/DSM (LiDAR), and a resolution of 2m.&nbsp;&nbsp;</p>



<p>With the template for the C-UAS created, Best Site Analysis can now be used to&nbsp;identify&nbsp;optimal&nbsp;locations for siting the system.&nbsp;&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-8.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-8.png" alt="" class="wp-image-62439" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-8.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-8-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-8-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-8-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption"><em>Best Site Analysis IVO Dallas Cowboys Stadium, Arlington, Texas, with a 3m AGL transmitter and a receiver at 150m AGL.&nbsp;</em>&nbsp;</figcaption></figure>
</div>


<p>After defining the desired area of coverage, we are presented with a layer with sites scored according to their intervisibility.&nbsp;&nbsp;</p>



<p>Using the slider to filter out lower-scoring positions, areas with higher intervisibility can be highlighted on the map.&nbsp;</p>



<p>Based on the analysis, the highest-scoring sites were located on the roof of the stadium and towards the car parks on the South side of the stadium.&nbsp;&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-1.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="834" height="469" src="https://cloudrf.com/wp-content/uploads/2026/04/image-1.png" alt="" class="wp-image-62376" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-1.png 834w, https://cloudrf.com/wp-content/uploads/2026/04/image-1-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-1-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-1-416x234.png 416w" sizes="auto, (max-width: 834px) 100vw, 834px" /></a><figcaption class="wp-element-caption">Filtered Best Site Analysis Results, highlighting high-scoring sites.</figcaption></figure>
</div>


<p class="has-black-color has-cyan-bluish-gray-background-color has-text-color has-background has-link-color has-medium-font-size wp-elements-664724bf132cd6b953dc31887d6ebb9f"><em>“For best practice, we recommend evaluating&nbsp;numerous&nbsp;positions. In the above example, the centre of the stadium is the&nbsp;optimal&nbsp;position. However, it is not&nbsp;in a practical sense, i.e. is the stadium roof safe? Other considerations could include access rights,&nbsp;sustainment&nbsp;and logistical requirements.”</em>&nbsp;</p>



<p>With these positions&nbsp;identified, the Area endpoint can be used to evaluate the coverage.&nbsp;&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image.png" alt="" class="wp-image-62373" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Coverage from the Tx to an RX at 150m AGL.</figcaption></figure>
</div>


<p>Setting the receiver at a height of 150m AGL, there is good coverage within a 5km radius of the transmitter. The weakest areas of coverage are directly overhead of the transmitter, where the null of the dipole has the lowest gain.&nbsp;&nbsp;</p>



<p>UAVs can&nbsp;operate&nbsp;at different heights so coverage should be evaluated at a variety of receiver heights within the local threat capability. For the next&nbsp;simulation,&nbsp;the height of the receiver is set to 10m AGL.&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-9.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-9.png" alt="" class="wp-image-62448" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-9.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-9-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-9-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-9-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Coverage from the Tx to an Rx at 10m AGL.</figcaption></figure>
</div>


<p>The coverage of the C-UAS system is now reduced. Obstacles in the environment, including buildings and trees, have a greater effect on the signal, blocking the line of sight and reducing overall coverage.&nbsp;&nbsp;</p>



<p>A particular point of focus is the area directly around the transmitter. Due to the curvature of the roof and the relative height of the building compared to the ground, positioning the C-UAS system on the roof creates shadows around 400m away from the stadium, where there is no coverage.&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-3.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-3.png" alt="" class="wp-image-62379" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-3.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-3-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-3-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-3-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Coverage from the Tx located centrally on the stadium.</figcaption></figure>
</div>


<p>One chain of thought for solving this issue could be to position the transmitter on the side of the stadium.&nbsp;By changing position and re-running the simulation, there&nbsp;is an improvement in coverage to the South of the stadium, but now the stadium is blocking a large majority of the signal to the North, requiring the deployment of further systems to provide coverage in the area&nbsp;required.&nbsp;</p>



<p>Having multiple sensors improves system resilience to failure or interference and improves detection.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-2.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-2.png" alt="" class="wp-image-62382" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-2.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-2-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-2-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-2-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Coverage from the Tx located on the southern side of the stadium.</figcaption></figure>
</div>


<p>Alternate locations&nbsp;identified&nbsp;during the&nbsp;initial&nbsp;Best Site Analysis can also be assessed for deployment of the C-UAS system. For example, positioning the transmitter in the car park to the south of the stadium allows us to save a site template and quickly generate 3D airspace coverage using the 3D-Airspace script. This enables rapid visualisation of coverage performance at multiple altitudes.&nbsp;</p>



<p>This script will create a KMZ showing multiple layers based on the height of the receiver. In this case, with&nbsp;an&nbsp;upper ceiling of 150m, the script will create layers every fifteen meters.&nbsp;</p>



<p>The script using these requests is available via&nbsp;<a href="https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/python/3d-airspace" target="_blank" rel="noreferrer noopener">https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/python/3d-airspace</a>.&nbsp;</p>



<p>&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-10.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="523" src="https://cloudrf.com/wp-content/uploads/2026/04/image-10.png" alt="" class="wp-image-62451" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-10.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-10-300x174.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-10-768x446.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-10-416x241.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Results from 3D Airspace Analysis.</figcaption></figure>
</div>


<p>From this analysis, there is greater coverage of the southern side of the stadium, previously in the shadow of the C-UAS site on the rooftop. The stadium itself is still acting as a major&nbsp;obstacle;&nbsp;the deployment of multiple systems would be&nbsp;required&nbsp;to cover the entire stadium area.&nbsp;&nbsp;</p>



<p>Adding multiple systems into this network and creating a single layer to&nbsp;demonstrate&nbsp;coverage is possible by using the Superlayer tool, allowing commanders and operators to get a clear overview of sensor coverage.&nbsp;&nbsp;</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained"><div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-4.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-4.png" alt="" class="wp-image-62385" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-4.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-4-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-4-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-4-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Superlayer of multiple C-UAS systems.</figcaption></figure>
</div></div></div>



<p>The Best Server tool can also be used to evaluate a network of C-UAS systems.&nbsp;Using the established network, a UAV can then be added into the simulation, flying at a height&nbsp;of&nbsp; 25m in the example below. This can then show us which C-UAS would be able to&nbsp;have an effect on&nbsp;the UAV. In the example below, the UAV at 25m AGL has a link to the C-UAS systems in the northern area, whilst the systems deployed on the rooftop and in the southern car park are being blocked by obstacles.&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-11.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-11.png" alt="" class="wp-image-62454" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-11.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-11-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-11-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-11-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Best Server being used with the C-UAS network to identify coverage from several nodes.</figcaption></figure>
</div>


<p><strong>BSA&nbsp;identifies&nbsp;viable&nbsp;deployment positions, and multi-height Area analysis shows where&nbsp;additional&nbsp;systems are required for full stadium coverage.&nbsp;Best Server can be used to quickly identify coverage from selected positions to a central receiver. </strong></p>



<h2 class="wp-block-heading"><strong>Case Study 2 – Finding the Operator – Dartmoor, UK&nbsp;</strong></h2>



<p><em>Difficulty: Moderate</em>&nbsp;</p>



<p>CloudRF can be used for simulating both transmitters and receivers in a&nbsp;real-world&nbsp;environment. In this case study the template and tools used will show how the simulation results can be interpreted to understand where the ground control station (GCS) could&nbsp;possibly be&nbsp;located.&nbsp;</p>



<h4 class="wp-block-heading"><strong><em>Inputs</em></strong>&nbsp;</h4>



<ul class="wp-block-list">
<li><em>DF sensor template</em>&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li><em>Sensor height and frequency</em>&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li><em>Line of Bearing (LOB)</em>&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li><em>Measured received power</em>&nbsp;</li>
</ul>



<h4 class="wp-block-heading"><strong><em>Process</em></strong>&nbsp;</h4>



<ul class="wp-block-list">
<li><em>Path-loss calculation using DF-derived constraints</em>&nbsp;</li>
</ul>



<h4 class="wp-block-heading"><strong><em>Outputs</em></strong>&nbsp;</h4>



<ul class="wp-block-list">
<li><em>Probable GCS transmitter locations</em>&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li><em>dB error score per location</em>&nbsp;</li>
</ul>



<h4 class="wp-block-heading"><strong><em>Decisions</em></strong>&nbsp;</h4>



<ul class="wp-block-list">
<li><em>Prioritise ground search locations</em>&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li><em>Assess the control range of the UAV</em>&nbsp;</li>
</ul>



<p>DF sensors are essential for a C-UAS team&nbsp;in order to&nbsp;locate&nbsp;both the UAV and the corresponding control station. These systems can come in a variety of formats and may use various methods to&nbsp;determine&nbsp;a Line&nbsp;Of&nbsp;Bearing (LOB) to the transmitter.&nbsp;&nbsp;</p>



<p>Direction Finding (DF) sensors are typically deployed in multiples to generate several Lines of Bearing (LOBs), enabling triangulation and the establishment of a Position Fix (PF) at the point of intersection. However, this&nbsp;represents&nbsp;an ideal scenario. In practice, operational constraints such as&nbsp;logistics, network limitations, and&nbsp;manpower&nbsp;availability may restrict deployment to a single asset, significantly reducing geo-location accuracy.&nbsp;</p>



<p>In the following example, CloudRF&#8217;s API is being used to help a C-UAS team with a single DF system to identify&nbsp;possible <strong>locations&nbsp;of a UAS ground control station (GCS).&nbsp;</strong></p>



<p>&nbsp;The&nbsp;methodology&nbsp;for doing this is not dissimilar from the standard way of using the software, with the user creating a template for the asset they are looking to&nbsp;locate. For this example, the height of the DF system was set to 8m, and the ground control station was set to 2m.&nbsp;&nbsp;Measured units are changed to Path&nbsp;Loss which shows possible signal coverage irrespective of power levels and is <strong>recommended when working with unknown power levels or receivers.</strong></p>



<p>By filtering the results of this simulation through parameters collected by the DF system, such as the LOB and received power of the signal, possible&nbsp;transmit&nbsp;sites can be&nbsp;identified&nbsp;on the map, scored with colours representing error in dB.</p>



<p>This result can provide operators with a greater understanding of where a rogue transmitter could be&nbsp;located&nbsp;with just one DF system, increasing the efficiency of a single team.&nbsp;For more on this concept see our <a href="https://cloudrf.com/enhancing-radio-direction-finding-with-rf-simulation/" type="post" id="53534">DF blog.</a></p>



<p>&nbsp;In the screenshot below, a single LOB has been used to evaluate a large area to&nbsp;determine&nbsp;several&nbsp;possible sites. False positives in nearby dead ground are expected which can be quickly discounted using other sources of information.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-12.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="627" src="https://cloudrf.com/wp-content/uploads/2026/04/image-12.png" alt="" class="wp-image-62457" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-12.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-12-300x209.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-12-768x534.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-12-416x289.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Path loss modelling  for a UAV&nbsp;ground station&nbsp;in&nbsp;Dartmoor,&nbsp;UK&nbsp;</figcaption></figure>
</div>


<p>Once a location has been&nbsp;identified, operators can use the Area endpoint to evaluate the coverage of this transmitter to&nbsp;determine&nbsp;the threat range of the UAS. This can be done within the UI as&nbsp;demonstrated&nbsp;in the screenshot below.&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-13.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="507" src="https://cloudrf.com/wp-content/uploads/2026/04/image-13.png" alt="" class="wp-image-62460" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-13.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-13-300x169.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-13-768x432.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-13-416x234.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Area calculation showing the coverage of the ground station across Dartmoor, UK&nbsp;</figcaption></figure>
</div>


<p>For evaluating the coverage of the ground station at various altitudes, a <a href="https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/python/3d-airspace">3d-airspace&nbsp;script</a> can be used to recursively model coverage efficiently at ascending heights. </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-14.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="229" src="https://cloudrf.com/wp-content/uploads/2026/04/image-14.png" alt="" class="wp-image-62463" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-14.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-14-300x76.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-14-768x195.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-14-416x106.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">Console view of running the 3D Airspace Analysis with timestamps.&nbsp;</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-15.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="901" height="510" src="https://cloudrf.com/wp-content/uploads/2026/04/image-15.png" alt="" class="wp-image-62466" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-15.png 901w, https://cloudrf.com/wp-content/uploads/2026/04/image-15-300x170.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-15-768x435.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-15-416x235.png 416w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption class="wp-element-caption">3D Airspace&nbsp;Analysis&nbsp;of the Ground Station&nbsp;located&nbsp;IVO&nbsp;Dartmoor, UK&nbsp;</figcaption></figure>
</div>


<p class="has-medium-font-size"><strong>&nbsp;A single DF sensor combined with path-loss modelling significantly reduces a large search area</strong>.</p>



<h2 class="wp-block-heading"><strong>Integrating AI&nbsp;</strong></h2>



<p>An open architecture with published documentation and examples enables Large Language Models (LLMs) to quickly build custom interfaces and tools to leverage the Open API.</p>



<p>Here is an example sensor placement interface built with Claude, which exploits the <a href="https://cloudrf.com/documentation/developer/#tag/Create/operation/multilink">new Multilink API</a> to show coverage for a UAS. The tool uses pre-defined templates, so it <strong>requires no RF engineering skill</strong> or training to move the sensors to achieve coverage with high confidence.</p>



<p>Live demo link: <a href="https://cloud-rf.github.io/CloudRF-API-clients/slippy-maps/leaflet-drone-detection.html">https://cloud-rf.github.io/CloudRF-API-clients/slippy-maps/leaflet-drone-detection.html</a></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/04/image-5.png" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="1024" height="510" src="https://cloudrf.com/wp-content/uploads/2026/04/image-5-1024x510.png" alt="" class="wp-image-62400" srcset="https://cloudrf.com/wp-content/uploads/2026/04/image-5-1024x510.png 1024w, https://cloudrf.com/wp-content/uploads/2026/04/image-5-300x149.png 300w, https://cloudrf.com/wp-content/uploads/2026/04/image-5-768x382.png 768w, https://cloudrf.com/wp-content/uploads/2026/04/image-5-1536x765.png 1536w, https://cloudrf.com/wp-content/uploads/2026/04/image-5-416x207.png 416w, https://cloudrf.com/wp-content/uploads/2026/04/image-5.png 1896w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Multilink API Demo</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/04/C-UAS-demo.gif" rel="lightbox[62370]"><img loading="lazy" decoding="async" width="684" height="416" src="https://cloudrf.com/wp-content/uploads/2026/04/C-UAS-demo.gif" alt="" class="wp-image-63730"/></a><figcaption class="wp-element-caption">C-UAS demo animation</figcaption></figure>
</div>


<h2 class="wp-block-heading"><strong>Conclusion</strong>&nbsp;</h2>



<p>Pre-deployment planning for C-UAS and RADAR systems is resource intensive and traditionally required expert input. </p>



<p>By standardising system parameters in reusable templates and using efficient analysis tools powered by open APIs, modern operators can model entire networks quickly and accurately without compromising quality.&nbsp;</p>



<p>Optimal&nbsp;locations are not always the most obvious or the most practical. A single system rarely provides complete protection in complex environments so a layered, networked approach, validated&nbsp;through high resolution simulation, enables continuous airspace coverage and ensures that assets are positioned for maximum effect.&nbsp;</p>
<p>The post <a href="https://cloudrf.com/optimising-drone-detection-with-rf-simulation/">Optimising drone detection with RF simulation</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SOOTHSAYER 1.11 released</title>
		<link>https://cloudrf.com/soothsayer-1-11-released/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 16:04:59 +0000</pubDate>
				<category><![CDATA[Self-hosted]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=61209</guid>

					<description><![CDATA[<p>The first feature release of 2026 brings new MANET APIs with receiver antenna patterns, a major container refactor, offline 3D terrain, high accuracy tree canopy data and simpler licensing. Multi link API This API is designed for mesh and MANET networks and has already replaced the points API for the MANET tool on CloudRF. The [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/soothsayer-1-11-released/">SOOTHSAYER 1.11 released</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading has-large-font-size">The first feature release of 2026 brings new MANET APIs with receiver antenna patterns, a major container refactor, offline 3D terrain, high accuracy tree canopy data and simpler licensing.</h2>



<h2 class="wp-block-heading">Multi link API</h2>



<p>This API is designed for mesh and MANET networks and has already replaced the points API for the MANET tool on CloudRF. The Points API will endure for modelling an array of transmitters to a single receiver, like a route, but Multi-link takes it up a gear and tests <em>all </em>radios to each other, at once.</p>



<p>By passing in the entire network in a single API request, this is much more efficient than recursive requests and because of this it is able to model hundreds of bi-directional links in milliseconds without a GPU.</p>



<p>In the example below, 10 S-Band mesh radios around the Isle of Wight were modelled using Bullington diffraction with a single API request in 0.14s. </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/03/multilink-manet-1.jpg" rel="lightbox[61209]"><img loading="lazy" decoding="async" width="1000" height="592" src="https://cloudrf.com/wp-content/uploads/2026/03/multilink-manet-1.jpg" alt="" class="wp-image-61344" srcset="https://cloudrf.com/wp-content/uploads/2026/03/multilink-manet-1.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/03/multilink-manet-1-300x178.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/03/multilink-manet-1-768x455.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/03/multilink-manet-1-416x246.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a></figure>
</div>


<p>Multi-link can be called with an array of &#8220;radios&#8221; which have distinct features and noise levels making this well suited to mixed networks with different systems and antennas. Each radio is tested to the others and antenna patterns and orientation are considered for both the origin and destination.</p>



<pre class="wp-block-code"><code>{
  "site": "Site",
  "ui": 3,
  "network": "test",
  "radios": &#91;
    {
      "lat": 50.67579947194087,
      "lon": -1.5873429660824838,
      "alt": 3,
      "frq": 2220,
      "txw": 2,
      "bwi": 2,
      "nf": "-110",
      "antenna": {
        "txg": 3,
        "txl": 0,
        "ant": 0,
        "azi": 0,
        "tlt": "0",
        "hbw": 360,
        "vbw": 25,
        "fbr": 3,
        "pol": "v"
      }
    },
   {...},
   {...},
   {...},
   {...}
  ],
  "model": {
    "pm": 10,
    "pe": 2,
    "ked": 2,
    "rel": "50"
  },
  "environment": {
    "elevation": 2,
    "landcover": 0,
    "buildings": 0,
    "obstacles": 0,
    "clt": "Temperate.clt"
  },
  "output": {
    "units": "m",
    "out": 2,
    "res": "30"
  }
}</code></pre>



<h3 class="wp-block-heading">Receiver antenna patterns</h3>



<p>Receiver antenna patterns are important when working with directional antennas.</p>



<p>Historically we&#8217;ve answered this with receive antenna gain only with the assumption that the antenna is orientated toward the transmitter. This worked for omni-directional antennas and directional antennas which move, but most don&#8217;t.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/beam-alignment.jpg" rel="lightbox[61209]"><img loading="lazy" decoding="async" width="647" height="696" src="https://cloudrf.com/wp-content/uploads/2026/03/beam-alignment.jpg" alt="" class="wp-image-61365" style="aspect-ratio:0.9296169907054016;width:369px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/beam-alignment.jpg 647w, https://cloudrf.com/wp-content/uploads/2026/03/beam-alignment-279x300.jpg 279w, https://cloudrf.com/wp-content/uploads/2026/03/beam-alignment-416x448.jpg 416w" sizes="auto, (max-width: 647px) 100vw, 647px" /></a></figure>
</div>


<p>By popular demand we&#8217;ve added this capability to the Multi link API but will not be adding another polar plot selector to the web interface as it is complex enough. If you are working with directional antennas the MANET tool will now allow you to model the impact of <strong>receive antenna nulls which are not obvious </strong>even with a clear line of sight.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/multi-azimith-receive-antennas.png" rel="lightbox[61209]"><img loading="lazy" decoding="async" width="1024" height="540" src="https://cloudrf.com/wp-content/uploads/2026/03/multi-azimith-receive-antennas-1024x540.png" alt="" class="wp-image-61302" srcset="https://cloudrf.com/wp-content/uploads/2026/03/multi-azimith-receive-antennas-1024x540.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/multi-azimith-receive-antennas-300x158.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/multi-azimith-receive-antennas-768x405.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/multi-azimith-receive-antennas-416x219.png 416w, https://cloudrf.com/wp-content/uploads/2026/03/multi-azimith-receive-antennas.png 1069w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Multi-azimuth and receive antennas demonstrating alignment and misalignment</figcaption></figure>
</div>


<h2 class="wp-block-heading">Container refactor</h2>



<p>We have <strong>consolidated 7 containers into 4 </strong>to reduce the size, complexity and management of multiple containers. The benefit is immediate from a much reduced download time for only 2GB of packed images (65% reduction) to a faster install and lower overall CVE score when scanned with vulnerability scanners.</p>



<p>The two GPU containers have been absorbed by a new &#8220;core&#8221; container, which is the largest. It&#8217;s logging has had work so you can filter for messages from a component (gpu_engine, 3d_engine, api) like the 3D engine for example:</p>



<pre class="wp-block-code"><code>$ docker logs --tail 100 --follow soothsayer-docker-core | grep 3d

&#91;3d_engine] starting...
&#91;3d_engine] Input path: /data/3D/input/
&#91;3d_engine] Data path: /data/
&#91;3d_engine] Output path: /data/
&#91;3d_engine] Number of CPU workers: 2
&#91;3d_engine] Number of GPU workers: 2
&#91;3d_engine] Checking license...</code></pre>



<p>The two web server containers (API and Frontend) have been consolidated into a single &#8220;httpd&#8221; container with a single .conf file making configuration changes simpler and improving visibility. Once installed the images are under 7GB.</p>



<pre class="wp-block-code"><code>$ docker image ls

soothsayer-loaded-image.localhost/soothsayer-docker-core:latest             c260a5993051       4.09GB          909MB        
soothsayer-loaded-image.localhost/soothsayer-docker-httpd:latest            e326003d5aff        145MB         36.8MB         
soothsayer-loaded-image.localhost/soothsayer-docker-map-proxy:latest        a1c286f0adb8       1.73GB          388MB   U         
postgres:16.13-bookworm                                                     7858a1a43bb2        616MB          155MB    U  </code></pre>



<h2 class="wp-block-heading">CVE scan reports </h2>



<p>We have integrated automated CVE scanning in our pipeline now to improve security visibility for procurement. </p>



<p>The HTML reports will live in a SBOM folder along with our XML Software Bill Of Materials for third party libraries. We know customers are struggling with approving software so we&#8217;re hoping to educate and assist with this process where we can. In the age of AI slop it has never been easier to spin up a 3D map with widgets but it&#8217;s much harder to maintain and assure that through the development life cycle.</p>



<p>SOOTHSAYER is built on Linux so it has bugs&#8230;.but they&#8217;re not all ours. Our goal is to detect and fix as many as possible before release and issue regular updates so customers can upgrade their software and remain protected.</p>



<p>For details on CVEs please email support@cloudrf.com</p>



<p>For bug fixes in our own software, see the full change log at the bottom of this blog.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/image-10.png" rel="lightbox[61209]"><img loading="lazy" decoding="async" width="817" height="189" src="https://cloudrf.com/wp-content/uploads/2026/03/image-10.png" alt="" class="wp-image-61440" style="aspect-ratio:4.323140353891084;width:760px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/image-10.png 817w, https://cloudrf.com/wp-content/uploads/2026/03/image-10-300x69.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/image-10-768x178.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/image-10-416x96.png 416w" sizes="auto, (max-width: 817px) 100vw, 817px" /></a><figcaption class="wp-element-caption">Example CVE report summary</figcaption></figure>
</div>


<p></p>



<h2 class="wp-block-heading">Offline 3D terrain</h2>



<p>Go to any industry trade show and you&#8217;ll see beautiful 3D maps with 3D terrain and 3D buildings. <strong>Very few are running offline</strong> and need to stream these layers from a commercial third party service, with third party terms and conditions.</p>



<p>We have invested in our own Quantized mesh generator so we can finally cut the cord with third party providers and offer 3D terrain, on Cesium, <strong>offline</strong>. We&#8217;re able to do this on the fly using local DEM data so if you want to improve the resolution, replace the GeoTIFF data in your folders.</p>



<p>This development is the first of several offline 3D layers with buildings and trees already in production. Keep an eye out for these on CloudRF this year.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/03/offline-3d-terrain.jpg" rel="lightbox[61209]"><img loading="lazy" decoding="async" width="1000" height="566" src="https://cloudrf.com/wp-content/uploads/2026/03/offline-3d-terrain.jpg" alt="" class="wp-image-61386" srcset="https://cloudrf.com/wp-content/uploads/2026/03/offline-3d-terrain.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/03/offline-3d-terrain-300x170.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/03/offline-3d-terrain-768x435.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/03/offline-3d-terrain-416x235.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a><figcaption class="wp-element-caption">Developer console showing terrain files served from localhost</figcaption></figure>
</div>


<h2 class="wp-block-heading">Accurate tree canopy data</h2>



<p>Last year we processed 2M tiles of tree canopy data from Meta into CloudRF. This is now available on SOOTHSAYER for Europe, the US and other regions on demand either online as streamed data or offline via a data package.</p>



<p>The precision data improves accuracy in areas which previously had only 10m Land Cover data with a mean height for the tree canopy. The screenshot below is from Scotland where previously trees were sampled at a consistent height eg. 10m. Trees are permeable and using the clutter profiles, users can set the density for species and seasons.</p>



<p>For more information on the tree data and Machine Learning model used see this Meta <a href="https://sustainability.atmeta.com/blog/2024/04/22/using-artificial-intelligence-to-map-the-earths-forests/" type="post" id="49327">blog post. </a></p>



<p>For some bedtime reading about vegetation attenuation values see <a href="https://www.itu.int/rec/R-REC-P.833">ITU-R P.833</a></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights.png" rel="lightbox[61209]"><img loading="lazy" decoding="async" width="900" height="363" src="https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights.png" alt="" class="wp-image-61392" srcset="https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights.png 900w, https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights-300x121.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights-768x310.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/tree-canopy-heights-416x168.png 416w" sizes="auto, (max-width: 900px) 100vw, 900px" /></a></figure>
</div>


<h3 class="wp-block-heading">Tree tiles by country</h3>



<p class="has-text-align-left">   2600 BELGIUM<br>   4560 DENMARK<br>  60360 France<br>  37640 GERMANY<br>   6780 IRELAND<br>  30100 ITALY<br>   8140 LATVIA<br>    520 LUXEMBOURG<br>   4720 NETHERLANDS<br>  63856 NORWAY<br>  33140 POLAND<br>   1530 PORTUGAL<br>  66480 SWEDEN<br>  27560 UK<br> 918080 USA</p>



<h2 class="wp-block-heading">Simpler licensing</h2>



<p>We&#8217;ve enjoyed handing out lots of SOOTHSAYER keys over the last year but our edge customers have had difficulty with the pseudo-random device ID for the host changing. The reason this changes is because it was based upon the physical MAC addresses on the host system. When these change, because the customer added a USB Ethernet adapter, the license must be re-issued which is frustrating when SOOTHSAYER has been prepared in one location then connected to a network elsewhere only to then stop.</p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/licensing-form.png" rel="lightbox[61209]"><img loading="lazy" decoding="async" width="566" height="402" src="https://cloudrf.com/wp-content/uploads/2026/03/licensing-form.png" alt="" class="wp-image-61416" style="aspect-ratio:1.4079760562832822;width:391px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/licensing-form.png 566w, https://cloudrf.com/wp-content/uploads/2026/03/licensing-form-300x213.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/licensing-form-416x295.png 416w" sizes="auto, (max-width: 566px) 100vw, 566px" /></a></figure>
</div>


<p>This issue was becoming a regular ticket for edge users on laptops especially but not users in Cloud environments with a static NIC so we have taken the decision to relax the MAC address requirement.</p>



<p>Users can now use a license key on different computers without fear of the device ID changing. It is still using public key cryptography so they cannot grant themselves extra time or more seats on a server as we&#8217;re not completely daft!</p>



<p>A license key now describes a customer, and expiry and a number of permitted seats for that server instance only.</p>



<h2 class="wp-block-heading">Changelog</h2>



<h2 class="wp-block-heading">1.11.0 03/2026</h2>



<ul class="wp-block-list">
<li>Deprecation: Removed <code>debian:bookworm-slim</code> container for testing GPU. Instead now uses the <code>soothsayer-docker-core</code> container.</li>



<li>Deprecation: Prompt to set database password during <code>install.sh</code> removed. Password is now always automatically set to a randomised string.</li>



<li>Deprecation: Removes unused and confusing <code>LICENSE_SEATS_LIMIT</code>, <code>LICENSE_EXPIRY</code> and <code>LICENSE_CUSTOMER_ID</code> keys from <code>.env</code>.</li>



<li>Deprecation: Device ID has been relaxed.</li>



<li>Feature: Added 3D tree coverage data for several European countries (Belgium, Denmark, France, Germany, Ireland, Italy, Latvia, Luxembourg, Netherlands, Norway, Poland, Portugal, Sweden, UK), and for the USA.</li>



<li>Feature: Considerably reduced container footprint, reducing to 4 total containers with a total disk size of <code>~5GB</code>.</li>



<li>Feature: All containers, excluding database, adjusted to use common <code>ubuntu:24.04</code> base image.</li>



<li>Feature: Added <code>SHARED_MEMORY_SIZE</code> option to change the DEM tile cache size.</li>



<li>Feature: Added optional <code>DB_SHM_SIZE</code> option to allow configurable shared buffer for PostgreSQL database.</li>



<li>Feature: Added <code>SKIP_SSL_CERTIFICATE_RESPIN</code> option to skip SSL certificate respin.</li>



<li>Feature: Added a check that the core container can reach the database.</li>



<li>Feature: Added RAM/disk usage checks to <code>start.sh</code>.</li>



<li>Feature: Added <code>scripts/install-custom-dem.sh</code> helper script.</li>



<li>Fix: Phase-tracing made non-interactive in <code>install.sh</code> with <code>ENABLE_PHASE_TRACING</code> variable.</li>



<li>Fix: Removed dependency for SOOTHSAYER to be installed when executing <code>system-details.sh</code> script.</li>



<li>Fix: Automatically set <code>data/license</code> directory permissions during each start.</li>



<li>Fix: Added maximum attempt catch when configuring GPU in <code>install.sh</code>.</li>



<li>Fix: MapProxy container adjusted to deploy using with production-ready configuration, rather than <code>serve-develop</code>.</li>



<li>Fix: Renames <code>LICENSE_MAX_RADIUS</code>, <code>LICENSE_MAX_POINTS_LIMIT</code> and <code>LICENSE_MAX_BSA_RADIUS</code> keys in <code>.env</code> to <code>MAX_RADIUS</code>, <code>MAX_POINT_COUNT</code> and <code>MAX_BSA_RADIUS</code>, respectively. This change was made to better reflect their usecase as they are not tied to licensing.</li>



<li>Fix: Improved error handling within database migration files.</li>



<li>Fix: Create GPU device nodes by running <code>nvidia-smi</code> in <code>start.sh</code> before bringing the containers up.</li>



<li>Update: API <code>3.33.0</code>, UI <code>3.26.0</code>, CPU Engine <code>1.20.0</code>, GPU Engine <code>1.15.0</code>, 3D Engine <code>0.2.4</code>, Midgard <code>1.0.0</code>, Bouncyball <code>0.4.4</code>, AntennaWizard <code>2.1.1</code>, Analysis Utilities (QRM2, SuperTool &amp; NoiseGen) <code>1.1.1</code>, Documentation <code>2.11.0</code>.</li>



<li>Update: Database container updated to <code>postgres:16.13-bookworm</code>.</li>
</ul>



<h3 class="wp-block-heading">API</h3>



<h4 class="wp-block-heading">3.33.0 (2026-03-31)</h4>



<ul class="wp-block-list">
<li>Deprecation: Legacy antenna validator and endpoints removed.</li>



<li>Deprecation: <code>html</code> key no longer included in calculation responses.</li>



<li>Improvement: Improved error logging for analysis utils.</li>



<li>Fix: Tilt validation forced as an integer for some calculation endpoints. Should instead be a numeric to allow for floating point values.</li>



<li>Fix: Missing noise data should return HTTP code <code>409</code> not <code>500</code>.</li>



<li>Fix: Custom clutter tiles not found by GPU engine.</li>



<li>Fix: Broken transmitter icon within <code>multisite</code> public links.</li>



<li>Fix: Fix issues with null noise names and group names.</li>



<li>Fix: <code>multilink</code> API ignoring multiple azimuths.</li>
</ul>



<h4 class="wp-block-heading">3.32.0 (2026-02-11)</h4>



<ul class="wp-block-list">
<li>Feature: Added <code>frequency</code> and <code>partial</code> to <code>/noise/clear</code> endpoint.</li>



<li>Feature: <code>multilink</code> endpoint includes receiver antenna pattern.</li>



<li>Feature: Added new <code>multilink</code> API for scalable mesh networks.</li>



<li>Improvement: Replaced public URL Google maps with Leaflet and CloudRF map layer</li>



<li>Fix: Set <code>output.mod</code> and <code>output.ber</code> to <code>nullable</code> when saving templates or MANET networks.</li>



<li>Fix: When retrieving a template which is not using BER units, set <code>output.mod</code> and <code>output.ber</code> values to <code>null</code> to avoid them being used and causing issues in subsequent requests.</li>



<li>Fix: Site and network names with numeric-only values are not being correctly interpreted as string length values.</li>



<li>Fix: Handle upper-case and lower-case values for antenna polarity.</li>
</ul>



<h4 class="wp-block-heading">3.31.0 (2026-01-23)</h4>



<ul class="wp-block-list">
<li>Feature: Antenna beamwidth (<code>antenna.hbw</code> and <code>antenna.vbw</code>) for <code>area</code> requests extended to lower limit of <code>1.0e-11</code>.</li>



<li>Feature: Improved azimuth validation failure message to highlight both single and multi-azimuth acceptance.</li>



<li>Feature: Standardised validation messages of <code>area</code>, <code>path</code>, <code>points</code> and <code>bsa</code>.</li>



<li>Fix: BER colour schema is unable to be used correctly for some <code>area</code> calls.</li>



<li>Fix: Azimuth validation allows <code>0</code> through to <code>360</code>, when it should be <code>0</code> to <code>359</code>.</li>



<li>Fix: Improved noise floor data-type casting for <code>path</code> and <code>points</code> requests.</li>



<li>Fix: Improved <code>points</code> inversion to handle multi-azimuth for MANET requests.</li>



<li>Fix: Added tilt inversion on <code>points</code> when using MANET requests.</li>



<li>Fix: PPA calls not correctly appending <code>_PPA</code> to site name.</li>



<li>Fix: Multisite calculations not applying <code>txl</code>.</li>



<li>Fix: <code>txl</code> only applied when <code>txg</code> is present fpr <code>path</code>, <code>points</code>, and <code>BSA</code> requests.</li>



<li>Fix: Fresnel zone incorrect when using imperial units</li>



<li>Fix: Path calcs erroring without <code>output.rad</code> present in the request.</li>



<li>Change: Path and points endpoints return an error, rather than a warning, if the receiver is underground.</li>
</ul>



<h4 class="wp-block-heading">3.30.1 (2025-12-30)</h4>



<ul class="wp-block-list">
<li>Fix: Path API noise floor not handling strings</li>



<li>Fix: Points API noise floor not handling strings</li>



<li>Fix: Points API azimuth reversed to align with MANET tool</li>
</ul>



<h4 class="wp-block-heading">3.30.0 (2025-12-15)</h4>



<ul class="wp-block-list">
<li>Fix: Reduced upper limit of BSA radius.</li>



<li>Fix: BSA units can incorrectly be used with <code>path</code> and <code>points</code> requests.</li>



<li>Fix: Removes acceptance of <code>output.rad</code> for <code>path</code> and <code>points</code> requests. Distance between points is used.</li>



<li>Fix: Using <code>output.out</code> value of <code>5</code> (BER) with <code>path</code> and <code>points</code> requests leads to mismatched validations for <code>output.mod</code> and <code>output.ber</code>.</li>



<li>Fix: Improved validation errors for <code>points</code> requests when missing <code>receiver.lat</code>, <code>receiver.lon</code> and <code>points</code>.</li>



<li>Fix: Removed support for <code>output.col</code> on <code>points</code> as colour schema is not necessary.</li>



<li>Fix: Removed required <code>transmitter.lat</code>, <code>transmitter.lon</code> and <code>transmitter.alt</code> values with <code>points</code> requests as they&#8217;re not needed.</li>



<li>Fix: HF skywave endpoint always placing receiver in the eastern hemisphere.</li>



<li>Fix: Noise endpoint incorrectly applying frequency filter.</li>



<li>Fix: Public link layer export not centering on calcs with negative values.</li>



<li>Enhancement: Added SNR21.dB colour key in support of ATAK plugin</li>
</ul>



<h4 class="wp-block-heading">3.29.0 (2025-11-10)</h4>



<ul class="wp-block-list">
<li>Deprecation: Removes support for <code>output.out</code>, <code>receiver.lat</code>, <code>receiver.lon</code>, and <code>receiver.rxs</code> for BSA. BSA has its own measured units, and the receiver location and some radio settings are not necessary for BSA calculations.</li>



<li>Feature: P.1546 replaced with P.1812 model.</li>



<li>Feature: Added <code>TREE</code> tile type to support high resolution 3D trees.</li>



<li>Feature: Opens up BSA calculations to all propagation and diffraction models, with the exception of FSPL.</li>



<li>Fix: Using BSA without a colour schema was returning a received power colour schema. Default schema of <code>BESTSITE.bsa</code> is used as a default.</li>



<li>Fix: Using BSA with an unknown clutter file doesn&#8217;t throw a validation error.</li>



<li>Fix: Give <code>calculation_adjusted</code> message if radius is increased to be able to cover <code>edges</code>.</li>



<li>Fix: Latitude and longitude values stored in the archive can lose precision in some circumstances.</li>



<li>Fix: Requesting reprojected images with malformed metadata can result in source images being deleted.</li>



<li>Fix: ERP is incorrectly calculated on a public link export.</li>



<li>Fix: Network name always gets stored as <code>BSA</code> in the archive when running BSA. Now uses the network name.</li>



<li>Fix: Return a 500 if there&#8217;s an issue with creating custom clutter.</li>
</ul>



<h4 class="wp-block-heading">3.28.0 (2025-09-04)</h4>



<ul class="wp-block-list">
<li>Feature: Improved documentation on SOOTHSAYER DEM Manager.</li>



<li>Feature: Added support for <code>frequency</code> filter on <code>/noise</code> endpoint.</li>



<li>Feature: Default location updated to Ibiza.</li>



<li>Feature: SOOTHSAYER system status page now shows services which are online but require a license.</li>



<li>Fix: Public link export is returning a HTTP 500.</li>



<li>Fix: SOOTHSAYER system status page is slow to load in offline environments.</li>



<li>Fix: Increased maximum timeout for <code>/merge</code> and <code>/mesh</code> to be able to handle larger requests.</li>



<li>Fix: Refreshed the warning message when clicking &#8220;Reset Database&#8221; in the administrator dashboard for SOOTHSAYER.</li>



<li>Fix: Antenna favourite button is not obvious in the antenna manager.</li>
</ul>



<h3 class="wp-block-heading">UI</h3>



<h4 class="wp-block-heading">3.26.0 (2026-03-31)</h4>



<ul class="wp-block-list">
<li>Feature: Add terrain selection to imagery layer selection.</li>



<li>Feature: Noise manager improvements including a refresh button and a filtered delete.</li>



<li>Feature: Loading templates with unfavourited antenna patterns will be be automatically favourited.</li>



<li>Fix: Clear password field after submitting login form.</li>



<li>Fix: Console error from requesting unavailable imagery levels.</li>



<li>Fix: Signal tooltip missing for image layers larger than 16MP.</li>



<li>Fix: Loading a template with a custom antenna pattern sometimes produces an incorrect antenna plot.</li>



<li>Fix: Loading a calculation with a custom antenna pattern doesn&#8217;t change the antenna mode.</li>



<li>Fix: HF Skywave templates unable to be saved.</li>



<li>Fix: Loading calculations from the archive didn&#8217;t set receiver sensitivity and noise floor correctly.</li>



<li>Fix: Loading AMSL calculations from the archive set the units to AGL.</li>



<li>Fix: Very high feeder loss efficiency considered &#8220;Good&#8221;.</li>



<li>Fix: Erroneous receiver sensitivity warnings when changing measured units.</li>



<li>Fix: Missing calculations from network when opening archive.</li>



<li>Fix: Noise floor and receiver sensitivity are no longer auto-adjusted when bandwidth is changed.</li>



<li>Fix: Disabling MANET during calculation can result in rogue layers being left on the map.</li>
</ul>



<h4 class="wp-block-heading">3.25.1 (2026-02-25)</h4>



<ul class="wp-block-list">
<li>Fix: Saving a template with a RCS value of 0 when not using RADAR</li>



<li>Fix: Elapsed time in console rounded off</li>
</ul>



<h4 class="wp-block-heading">3.25.0 (2026-02-12)</h4>



<ul class="wp-block-list">
<li>Feature: MANET links now calculated with a single Multilink request.</li>



<li>Fix: Retrieving a layer from archive with the default colour schema.</li>



<li>Fix: MANET link sensitivity mismatch when mixing units.</li>



<li>Fix: MANET using stale values for reports when links disabled.</li>
</ul>



<h4 class="wp-block-heading">3.24.3 (2026-02-09)</h4>



<ul class="wp-block-list">
<li>Fix: Added spin-lock to calculate button for GPU calculations.</li>



<li>Fix: RCS value not sent for points API requests using RADAR.</li>



<li>Fix: Multipoint links and route analysis imperial ASL logic moved to API</li>



<li>Fix: Loading MANET network from archive reporting missing <code>site</code>.</li>



<li>Fix: Improved handling of <code>output.mod</code> and <code>output.ber</code> when using BER units</li>
</ul>



<h4 class="wp-block-heading">3.24.2 (2026-01-15)</h4>



<ul class="wp-block-list">
<li>Feature: Add automatic validation for noise floor input.</li>



<li>Fix: MANET allows adding nodes with broken settings.</li>



<li>Fix: API validation failure for <code>output.ber</code> and <code>output.mod</code> when using MANET.</li>



<li>Fix: View reset working with D.M.S and MGRS</li>
</ul>



<h4 class="wp-block-heading">3.24.1 (2025-12-30)</h4>



<ul class="wp-block-list">
<li>Fix: MANET marker offset when dragging</li>



<li>Enhancement: fxaa smoothing applied to 3D terrain</li>
</ul>



<h4 class="wp-block-heading">3.24.0 (2025-12-29)</h4>



<ul class="wp-block-list">
<li>Fix: Map resolution uses devicePixelRatio to fix aliasing</li>



<li>Fix: FBR and RCS not being sent for PPA requests.</li>



<li>Fix: BER and modulation shouldn&#8217;t be sent for PPA requests if not using BER units.</li>



<li>Fix: Receiver sensitivity not necessary for PPA requests if using BER units.</li>



<li>Fix: BER units not using BER colour schemas.</li>
</ul>



<h4 class="wp-block-heading">3.23.1 (2025-12-11)</h4>



<ul class="wp-block-list">
<li>Fix: Units other than received power are not allowed with Best Server tool.</li>



<li>Fix: HF skywave path profile tool ignore reliability and context.</li>
</ul>



<h4 class="wp-block-heading">3.23.0 (2025-11-10)</h4>



<ul class="wp-block-list">
<li>Feature: Throw warning when receiver sensitivity lower than the selected colour schema.</li>



<li>Feature: Improved guidance for how to get details of failed calculations during auto-processing.</li>



<li>Fix: Auto-processing doesn&#8217;t support multi-azimuth.</li>



<li>Fix: Auto-processing not correctly validating non-numerical values.</li>



<li>Fix: Auto-processing incorrectly attempting to process values which have failed validation.</li>



<li>Fix: &#8220;Antenna ID not favourited&#8221; link during auto-processing doesn&#8217;t work when using antenna name.</li>



<li>Fix: Removed a phantom path profile legend entry with buildings, but not landcover, enabled.</li>



<li>Fix: Separates RSRP and received power in chart as both use dBm</li>
</ul>



<h4 class="wp-block-heading">3.22.0 (2025-10-26)</h4>



<ul class="wp-block-list">
<li>Feature: Organic 3D quantized terrain for CesiumJS</li>



<li>Feature: Import noise manager.</li>



<li>Improvement: Organic Geocoder for CesiumJS</li>



<li>Fix: Disabling bounds leaves behind small artifacts on the map.</li>
</ul>



<h4 class="wp-block-heading">3.21.0 (2025-10-02)</h4>



<ul class="wp-block-list">
<li>Improvement: ITU-R P.1546 superseded by ITU-R P.1812.</li>



<li>Deprecated: Cesium ion data to be removed in October 2025 following hostile ToS update threatening audits</li>



<li>Deprecated: Removed Cesium ion imagery for a selection of four including two user defined</li>



<li>Fix: Using altitudes with fractional values on <code>path</code> calls ignores the decimals.</li>
</ul>



<p></p>
<p>The post <a href="https://cloudrf.com/soothsayer-1-11-released/">SOOTHSAYER 1.11 released</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Choosing an RF Propagation Model</title>
		<link>https://cloudrf.com/choosing-an-rf-propagation-model/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 11:16:36 +0000</pubDate>
				<category><![CDATA[Modelling]]></category>
		<category><![CDATA[Theory]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=60042</guid>

					<description><![CDATA[<p>Author: Cameron Mickell A common question for novice planners is which RF propagation model is best for my technology? We have many different users employing diverse technologies, time constraints and accuracy requirements, so it is not always a quick answer but knowing about the key types of models and where to use them makes a [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/choosing-an-rf-propagation-model/">Choosing an RF Propagation Model</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Author: Cameron Mickell</p>



<h1 class="wp-block-heading" style="font-size:33px">A common question for novice planners is which RF propagation model is best for my technology?</h1>



<p>We have many different users employing diverse technologies, time constraints and accuracy requirements, so it is not always a quick answer but knowing about the key types of models and where to use them makes a big difference to accuracy. There isn’t a one size fits all approach to model selection for radio planning but there are definitely good defaults&#8230;</p>



<p class="has-large-font-size"><strong>TL;DR&nbsp;<em>We now recommend ITU-R P.1812 as a default model. </em></strong></p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59646" src="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1.png" alt="Egli prediction of LTE Coverage using Cloud RF" class="wp-image-59646" srcset="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59643" src="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1.png" alt="Ericsson 9999 prediction of LTE Coverage using Cloud RF" class="wp-image-59643" srcset="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
<figcaption class="blocks-gallery-caption wp-element-caption"><em>Same location, similar settings and yet very different coverage. Which is right?</em></figcaption></figure>



<p>To help answer this question in detail, we’ve decided to explain a little about each propagation model, describe some relevant use cases and then conduct a series of measurable experiments to compare model performance and offer practical recommendations for users who need a clear starting point so they can hit the ground running with their radio planning. In this blog, we will look at model types, when to use them and how to make an educated decision on which model to use for your radio project.</p>



<p class="has-large-font-size">Communications Technologies across the EM spectrum</p>



<p>First it is important to understand there are vastly different use cases for radio technologies across the electromagnetic spectrum. Each of these technologies have their own spectrum requirements, frequency, bandwidth and power limits which have a strong influence over any potential coverage or point to point link. However, more impactful than this, is the environment and the varied ways in which they interact with radio signals.</p>



<p>Terrain, buildings and vegetation all interact differently with radio waves of varying frequency and different propagation models attempt to capture these behaviours in different ways. Older (1960) models pre-date developments in high resolution data so while they may adapt well to situations like their intended use, like downtown Tokyo in the case of Okumura-Hata, they will under perform in other scenarios without adjustments.</p>



<p>Because of this complexity,&nbsp;<strong>choosing the right model depends not only on your radio system but also on the environment you’re operating in.</strong>&nbsp;Below is a quick overview of common technologies and where they sit in the spectrum. We will look at environment latter.Communications Technologies</p>



<h3 class="wp-block-heading"><strong>VHF (30–300&nbsp;MHz)</strong></h3>


<div class="wp-block-image">
<figure class="alignright size-large is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/image-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="863" height="863" src="https://cloudrf.com/wp-content/uploads/2026/03/image-1-edited.png" alt="" class="wp-image-60084" style="width:248px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/image-1-edited.png 863w, https://cloudrf.com/wp-content/uploads/2026/03/image-1-edited-300x300.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/image-1-edited-150x150.png 150w, https://cloudrf.com/wp-content/uploads/2026/03/image-1-edited-768x768.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/image-1-edited-324x324.png 324w, https://cloudrf.com/wp-content/uploads/2026/03/image-1-edited-416x416.png 416w, https://cloudrf.com/wp-content/uploads/2026/03/image-1-edited-100x100.png 100w" sizes="auto, (max-width: 863px) 100vw, 863px" /></a></figure>
</div>


<p>Use case: Wide area voice comms, typically extending to the radio horizon.</p>



<p>Propagation at VHF frequencies is highly effective over long distances due to strong diffraction, good performance over undulating terrain, and relatively low attenuation through vegetation. These characteristics make VHF particularly well-suited to wide area narrow band voice networks and maritime or land mobile radio.</p>



<p>VHF applications can cover both broadcast and two-way communications with the former having significantly bigger antennas mast and transmission power.</p>



<h3 class="wp-block-heading"><strong>LoRa / LPWAN (433 MHz and 868 MHz EU, 915MHz US)</strong></h3>


<div class="wp-block-image">
<figure class="alignleft size-thumbnail is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/image-2.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="150" height="150" src="https://cloudrf.com/wp-content/uploads/2026/03/image-2-150x150.png" alt="" class="wp-image-60087" style="width:167px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/image-2-150x150.png 150w, https://cloudrf.com/wp-content/uploads/2026/03/image-2-300x300.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/image-2-768x768.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/image-2-324x324.png 324w, https://cloudrf.com/wp-content/uploads/2026/03/image-2-416x416.png 416w, https://cloudrf.com/wp-content/uploads/2026/03/image-2-100x100.png 100w, https://cloudrf.com/wp-content/uploads/2026/03/image-2.png 833w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></figure>
</div>


<p>Use case: IoT devices, low power sensors, hobbyist networking</p>



<p>Propagation at these frequencies is general better through vegetation&nbsp;compared to higher frequencies, allowing the signals to penetrate foliage with relatively low attenuation leading to good overall range while supporting modest data rates that are well suited to low power IoT telemetry applications.</p>



<h3 class="wp-block-heading"><strong>L/S Band (1–2&nbsp;GHz / 2–4&nbsp;GHz)</strong></h3>


<div class="wp-block-image">
<figure class="alignright size-medium is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/image-3.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="277" height="300" src="https://cloudrf.com/wp-content/uploads/2026/03/image-3-277x300.png" alt="" class="wp-image-60090" style="aspect-ratio:0.9228611243536616;width:246px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/image-3-277x300.png 277w, https://cloudrf.com/wp-content/uploads/2026/03/image-3-945x1024.png 945w, https://cloudrf.com/wp-content/uploads/2026/03/image-3-768x832.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/image-3-416x451.png 416w, https://cloudrf.com/wp-content/uploads/2026/03/image-3.png 1257w" sizes="auto, (max-width: 277px) 100vw, 277px" /></a></figure>
</div>


<p>Rough equivalent: Wi-Fi, Broadcasting, Tactical radios, Microwave links</p>



<p>Use case: IP based networking, voice, short to medium range data links</p>



<p>These frequencies typically support distances up to several kilometers, depending on antenna height, power, and environmental clutter. Propagation in this range is sensitive to buildings and clutter, which limits range in dense areas but still provides reliable line-of-sight performance for short to medium distance networking. These frequencies support higher data rates than VHF or sub-GHz bands but at the expense of reduced penetration through walls and vegetation. These bands support higher data rate technologies such as Wi-Fi, video streaming or autonomous drones/robots.</p>



<h3 class="wp-block-heading"><strong>LTE / 4G / 5G (700 MHz – 2.6 GHz)</strong></h3>


<div class="wp-block-image">
<figure class="alignleft size-medium is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/image-4.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="199" height="300" src="https://cloudrf.com/wp-content/uploads/2026/03/image-4-199x300.png" alt="" class="wp-image-60093" style="aspect-ratio:0.6633351841569498;width:212px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/image-4-199x300.png 199w, https://cloudrf.com/wp-content/uploads/2026/03/image-4-678x1024.png 678w, https://cloudrf.com/wp-content/uploads/2026/03/image-4-768x1159.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/image-4-416x628.png 416w, https://cloudrf.com/wp-content/uploads/2026/03/image-4.png 960w" sizes="auto, (max-width: 199px) 100vw, 199px" /></a></figure>
</div>


<p>Use case: Mobile phones, tablets, broadband services</p>



<p>Propagation in the LTE bands offers a balanced compromise between range and capacity, allowing signals to travel several kilometres in outdoor environments while still maintaining the bandwidth needed for modern mobile broadband services. </p>



<p>Lower frequency LTE bands propagate further and diffract more effectively over terrain, whereas higher frequency bands are more affected by clutter and require denser cell deployments. This is why the uplink from the low power handset uses the lower bands as it has less path loss.</p>



<p>Because of this, LTE cells can have very different performance characteristics around terrain and clutter which makes choosing the right propagation model important. &nbsp;</p>



<p>Across all these technologies, the environment is a key factor in determining how far or how well you can communicate. Propagation models attempt to quantify just how much the environment is going to affect the behaviour of a signal to help engineers build out these complex communications systems.</p>



<h2 class="wp-block-heading">How do Propagation Models work?</h2>



<p>Radio Propagation Models provide mathematical formulas to give predictions for the behaviour of radio waves between two points. Typically, each model aims to estimate the path loss along a link. Through recursive testing of adjacent points, a wide area can be studied to produce a signal map.</p>



<p>Prediction of path loss is necessary for radio engineers and operators to create accurate link budgets and generate functional communication systems or sensors. Across all models, there are two principles:</p>



<p>The common principle of free space loss is that path loss increases with both distance and frequency. The plotted curves below demonstrate this well.</p>



<p>The next principle is that each model has a unique path loss for an identical link. These curves are representative of an ideal test case of transmitting to a receiver with line of sight across uniform terrain. &nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="800" height="800" src="https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500.png" alt="Graph of Path loss for ITM, Okumura-Hata, ITU-R P.1812, SUI, COST 231, Ericsson 9999, Egli and ITU-R P.525 for Choosing a Propagation Model." class="wp-image-59508" style="width:503px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500.png 800w, https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500-300x300.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500-150x150.png 150w, https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500-768x768.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500-324x324.png 324w, https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500-416x416.png 416w, https://cloudrf.com/wp-content/uploads/2026/03/PathlossComparisionforIrregularTerrianModelOkumaraHataCOST231ITU-RP1812StanfordUniversityInterimEricsson9999EgliInMHz1500-100x100.png 100w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a><figcaption class="wp-element-caption">Most models have similar curves with P.525 and SUI as the outliers</figcaption></figure>
</div>


<p>We can see different models give different results before budgeting for other sources of variation. In order to understand why this occurs we need to look at some of the key features of a model so we know when to select each one and how they work to use them effectively.</p>



<h2 class="wp-block-heading">Parts of a propagation model</h2>



<p>Each model is essentially an attempt to solve a planning problem for a communications problem. Sometimes these are very generic problems and others are tied to a specific technology and frequency range.&nbsp;<strong>This gives them very different reasons for existing</strong>.&nbsp;<strong>Bear in mind that some pre-date consumer computing!</strong>&nbsp;That leads researchers past and present to look for practical solutions which can come from theory or from practice to solve a wide range of communications research problems. This has led to two main types of radio propagation models: These are deterministic and empirical models.</p>



<h3 class="wp-block-heading">Deterministic Models</h3>



<p>Deterministic models are formulas which take input variables and consistently produce the same output as to opposed to “stochastic” models which are probabilistic. Researchers derive deterministic models from first principles and other phenomena to give the best possible representation of radio wave behaviour for a given set of assumptions and inputs. Both inputs and assumptions vary from model to model due to the complexity and motivation for the model.</p>



<p>For planners, this means the model always treats input factors consistently. It means that accurate inputs will lead to a high degree of accuracy in the output. The opposite, stochastic models, are more commonly used in fields like finance or weather modelling where there is uncertainty around a given input or future conditions.</p>



<h3 class="wp-block-heading">Empirical Models</h3>



<p>Empirical Models are data driven,built from survey data which is refined to produce a prediction of wave behaviour built on the prior observations. The advantage of these models is that they can act as ‘black‑box’ predictors that do not require describing the internal physics of the system yet still producing outputs that fit observed conditions.</p>



<p>The risk of using an empirical model is if it was made from tower data in a Japanese city and you use it with handheld radios in a desert, it will not perform well at all.</p>



<h2 class="wp-block-heading">Input Parameters</h2>


<div class="wp-block-image">
<figure class="alignleft size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/image-5.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="396" height="204" src="https://cloudrf.com/wp-content/uploads/2026/03/image-5.png" alt="" class="wp-image-60096" style="aspect-ratio:1.941187349731829;width:342px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/image-5.png 396w, https://cloudrf.com/wp-content/uploads/2026/03/image-5-300x155.png 300w" sizes="auto, (max-width: 396px) 100vw, 396px" /></a></figure>
</div>


<p>For both types of models, there are assumed input parameters that planners need to choose for a model to be applicable for their use case. For users, it is often unclear what each setting controls or how to choose an appropriate context</p>



<p>While propagation models provide the mathematical basis for predicting radio performance, their accuracy is ultimately constrained by the quality of the environmental data fed into them.&nbsp;</p>



<p><strong>Even the most sophisticated model cannot compensate for incomplete or low‑resolution terrain and clutter inputs.</strong>&nbsp;This makes environmental data one of the biggest contributory factors in successful RF planning.</p>



<h3 class="wp-block-heading">Terrain Data</h3>



<p>Terrain refers to the physical shape of the earth such as hills, valleys, ridges and slopes. These features directly affect radio propagation through shadowing, diffraction, and reflection. Planning tools represent terrain using tiles sized according to their chosen resolution. In CloudRF, the resolution can be adjusted from the Output section, with higher resolution leading to larger compute times, bigger output files and more accurate representation of the world.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/terrain-profile.jpg" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="900" height="366" src="https://cloudrf.com/wp-content/uploads/2026/03/terrain-profile.jpg" alt="" class="wp-image-60156" style="aspect-ratio:2.459080471002101;width:646px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/terrain-profile.jpg 900w, https://cloudrf.com/wp-content/uploads/2026/03/terrain-profile-300x122.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/03/terrain-profile-768x312.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/03/terrain-profile-416x169.jpg 416w" sizes="auto, (max-width: 900px) 100vw, 900px" /></a></figure>
</div>


<p>So, when to use a certain resolution? In CloudRF there are resolutions from 1m to 300m, however key thresholds to note are 2m, 10m and 30m which map to our source data.</p>



<ul class="wp-block-list">
<li>30m global datasets. Suitable for coarse planning or large areas. Limited detail often causes over‑optimistic coverage in built‑up or rugged environments. CloudRF is preloaded with 30m DSM coverage for most of the globe up to 60N with additional high latitude data for Scandinavia and Alaska.</li>



<li>10m national datasets and space based land cover (trees etc). The balance between performance and accuracy for tactical and commercial use. Well suited for coverage maps with radii up to 10s of kilometres.</li>



<li>2m LiDAR. Highly accurate and excellent for urban, industrial or complex terrain analysis. Particularly beneficial for UHF deployments in cities or complex industrial/agricultural sites. Because most propagation issues occur when line‑of‑sight is obstructed, a high terrain resolution gives a close fit to the real environment.</li>
</ul>



<h3 class="wp-block-heading">Clutter Data and Contexts</h3>



<p>Clutter describes man‑made or natural surface features that are&nbsp;<em>above</em>&nbsp;the terrain dataset—buildings, trees, industrial areas, bodies of water, or open ground. Different wavelengths interact with clutter in mostly predictable ways:</p>


<div class="wp-block-image">
<figure class="alignright size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/03/clutter-profile.jpg" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="315" height="204" src="https://cloudrf.com/wp-content/uploads/2026/03/clutter-profile.jpg" alt="" class="wp-image-60159" srcset="https://cloudrf.com/wp-content/uploads/2026/03/clutter-profile.jpg 315w, https://cloudrf.com/wp-content/uploads/2026/03/clutter-profile-300x194.jpg 300w" sizes="auto, (max-width: 315px) 100vw, 315px" /></a></figure>
</div>


<p><strong>VHF and lower tend to penetrate vegetation more effectively&nbsp;</strong>but are still attenuated by dense structures. UHF, LTE and Wi‑Fi suffer greater attenuation from foliage and urban environments. LoRa and LPWAN rely heavily on clutter accuracy for predicting street‑level performance.</p>



<p>Within CloudRF, clutter is represented as classification layers with associated nominal heights and attenuation values. Selecting the correct clutter model ensures that urban and rural areas are treated appropriately, since the losses applied can vary dramatically between tree canopy, suburban housing, or high‑rise commercial zones. This allows for clutter tuning which can help with fitting survey/calibration data to a prediction.</p>



<p>Instead of clutter, empirical models (Okumura-Hata, COST 231 and Ericsson 9999)&nbsp;<strong>use contexts</strong>&nbsp;as factors to help tune their attenuation to an environment. These contexts are fixed empirical curves intended to represent the average path loss for a typical environment. These contexts are urban, mixed (suburban) and unobstructed (open ground). Because of this they will often not be terrain aware and&nbsp;<strong>in our experience do not adapt well to real clutter</strong>. The graphs below show how contexts can vary pathloss in ways that aren’t always intuitive.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="800" height="800" src="https://cloudrf.com/wp-content/uploads/2026/03/ContextPathLossForEgliHataCOST231Ericsson1500MHzSuburban.png" alt="" class="wp-image-59175" style="width:551px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/ContextPathLossForEgliHataCOST231Ericsson1500MHzSuburban.png 800w, https://cloudrf.com/wp-content/uploads/2026/03/ContextPathLossForEgliHataCOST231Ericsson1500MHzSuburban-300x300.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/ContextPathLossForEgliHataCOST231Ericsson1500MHzSuburban-150x150.png 150w, https://cloudrf.com/wp-content/uploads/2026/03/ContextPathLossForEgliHataCOST231Ericsson1500MHzSuburban-768x768.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/ContextPathLossForEgliHataCOST231Ericsson1500MHzSuburban-324x324.png 324w, https://cloudrf.com/wp-content/uploads/2026/03/ContextPathLossForEgliHataCOST231Ericsson1500MHzSuburban-416x416.png 416w, https://cloudrf.com/wp-content/uploads/2026/03/ContextPathLossForEgliHataCOST231Ericsson1500MHzSuburban-100x100.png 100w" sizes="auto, (max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">Empirical high-low models with a suburban context</figcaption></figure>
</div>


<p>Now we know what kinds of inputs our models are expecting, it is worth understanding the differences with the models available on CloudRF.</p>



<h2 class="wp-block-heading">Model Bios</h2>



<h3 class="wp-block-heading">Irregular Terrain Model (Longley-Rice)&nbsp;</h3>



<p>The Longley-Rice model is an old but trusty general-purpose model developed to meet the needs of television broadcasting during the 1960s. As such, its input parameters have a focus on&nbsp;<strong>longer range high-low use cases</strong>. The model is named for its ability to account for terrain variations along the signal path. Naturally, ITM requires quality terrain data to achieve best performance. It can be used from 20MHz to 20GHz and has a range of 1-2000km for Antennas 0.5m to 3km in height.<a href="https://cloudrf.com/?page_id=59172"></a></p>



<h3 class="wp-block-heading">ITU–R P.1812</h3>



<p>The P.1812 model covers VHF and UHF bands and is recommended by the ITU since 2007 for terrestrial point‑to‑area services. The model incorporates Bullington multi-obstacle diffraction and is effective from&nbsp;<strong>30&nbsp;MHz to 3&nbsp;GHz</strong>, making it well suited for modern commercial wireless technologies. Like the ITM, it factors in changes in terrain and incorporates clutter data into its calculations allowing it to perform very well when supplied with high quality terrain and clutter data.</p>



<h3 class="wp-block-heading">General Purpose</h3>



<p>The General-Purpose model on CloudRF is the ITU-R P.525-2 model with an additional 20dB of attenuation. The P.525-2 model is the ITU recommended free space attenuation model. It can be&nbsp;<strong>used across all RF frequencies</strong>&nbsp;from VHF up into 100GHz. With accurate clutter and land cover data, this model can be tuned to achieve single digit variation from field measurements in rural or suburban environments. &nbsp;It is well suited to signals where both ends of a link are at ground level, like portable radio networks.&nbsp;<strong>This is outside of the comfort zone of typical high-low cellular models.</strong></p>



<h3 class="wp-block-heading">Okumura-Hata</h3>



<p>The Okumura-Hata model is used for path loss prediction in urban environments. It is empirically derived and suitable for use around urban environments.</p>



<p><strong>It assumes that the transmitter is much higher than the receiver.</strong>&nbsp;Specifically, 30m- 200m transmitter and 1-10m receiver heights for 1-20km. The frequency range of the original model is 150MHz – 1.5 GHz. These assumptions and range make this model best suited for cellular or broadcast environments. It uses an environment context to set its attenuation.</p>



<h3 class="wp-block-heading">COST 231-Hata</h3>



<p>This model is a popular extension of the Okumura-Hata model which brings the upper frequency to 2 GHz. COST (COopération européenne dans le domaine de la recherche Scientifique et Technique) began the Action 231 project to address the need to accurately model 2G mobile systems like GSM around 1995-1999. It was based data collected from multiple European cities to tune the model for urban environments. Because of this, it is best used in 1500-2000MHz range where the user is looking to model dynamic urban environments where LOS is often obstructed. Like the Okumura-Hata, it uses environmental contexts to be tune its attenuation.</p>



<h3 class="wp-block-heading">Ericsson 9999</h3>



<p>Ericsson extended the Hata model to 1900 MHz with special attention to the 4G and LTE use case in urban environments. Like the COST and Hata models, it’s environmental parameters can be adjusted for account for different scenarios such as rural, suburban or urban environments.</p>



<h3 class="wp-block-heading">Egli VHF/UHF</h3>



<p>The Egli model was developed by John Egli based his research with the US Army Signal Corp Labs in the early 1940s. The old model is empirically derived by capturing real world path loss across irregular terrain with dispersed clutter such as trees, buildings and other structures. The model typically expects 30-300m tall base stations to a mobile station at 1.5-10m height.&nbsp;<strong>Egli is suitable for VHF and UHF high-low cases below 1.5GHz</strong>. Unlike other empirical models on this list, it doesn’t use environmental contexts, so it is best suited for open rural settings.</p>



<h4 class="wp-block-heading">Model Bios Quick Reference Table</h4>



<figure class="wp-block-table alignfull is-style-stripes"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-left" data-align="left"><strong>Model</strong></td><td class="has-text-align-left" data-align="left"><strong>Frequency Range</strong></td><td class="has-text-align-left" data-align="left"><strong>Best Environments/Use</strong></td><td class="has-text-align-left" data-align="left"><strong>Terrain‑Aware?</strong></td><td class="has-text-align-left" data-align="left"><strong>Clutter or Context Use</strong></td><td class="has-text-align-left" data-align="left"><strong>Strengths</strong></td></tr><tr><td class="has-text-align-left" data-align="left">Irregular Terrain Model (Longley‑Rice)</td><td class="has-text-align-left" data-align="left"><em>20</em><em> </em><em>MHz&nbsp;</em><em>–</em><em>&nbsp;20</em><em> </em><em>GHz</em></td><td class="has-text-align-left" data-align="left"><em>Mixed terrain, rural, long‑range</em></td><td class="has-text-align-left" data-align="left"><em>Yes</em>.&nbsp;<em>Includes hybrid smooth earth diffraction</em></td><td class="has-text-align-left" data-align="left"><em>Use CloudRF Clutter profiles</em></td><td class="has-text-align-left" data-align="left"><em>Good for hilly/mountainous terrain; adaptable to many use cases</em></td></tr><tr><td class="has-text-align-left" data-align="left"><a href="https://www.itu.int/rec/R-REC-P.1812">ITU‑R P.1812</a></td><td class="has-text-align-left" data-align="left"><em>30</em><em> </em><em>MHz&nbsp;</em><em>–</em><em>&nbsp;3</em><em> </em><em>GHz</em></td><td class="has-text-align-left" data-align="left"><em>VHF/UHF area coverage, suburban–rural, mixed paths</em></td><td class="has-text-align-left" data-align="left"><em>Yes</em>.&nbsp;<em>Includes Delta Bullington Diffraction</em></td><td class="has-text-align-left" data-align="left"><em>Use CloudRF Clutter profiles</em></td><td class="has-text-align-left" data-align="left"><em>Excellent general‑purpose model; robust diffraction; needs accurate clutter</em></td></tr><tr><td class="has-text-align-left" data-align="left">General Purpose</td><td class="has-text-align-left" data-align="left"><em>1</em><em> </em><em>MHz&nbsp;</em><em>–</em><em>&nbsp;100</em><em> </em><em>GHz</em></td><td class="has-text-align-left" data-align="left"><em>Simple LOS, open areas, clutter‑tuned scenarios</em></td><td class="has-text-align-left" data-align="left"><em>Yes (with clutter added)</em></td><td class="has-text-align-left" data-align="left"><em>Use CloudRF Clutter profiles</em></td><td class="has-text-align-left" data-align="left"><em>Easy to use; fully wideband; predictable behaviour; optimistic without clutter.</em></td></tr><tr><td class="has-text-align-left" data-align="left">Okumura‑Hata</td><td class="has-text-align-left" data-align="left"><em>150</em><em> </em><em>MHz&nbsp;</em><em>–</em><em>&nbsp;1.5</em><em> </em><em>GHz</em></td><td class="has-text-align-left" data-align="left"><em>Urban Macro Cells</em></td><td class="has-text-align-left" data-align="left"><em>No</em></td><td class="has-text-align-left" data-align="left"><em>Urban/Suburban/Rural Contexts</em></td><td class="has-text-align-left" data-align="left"><em>Assumes high transmitter. Behaves poorly outside operating conditions.</em></td></tr><tr><td class="has-text-align-left" data-align="left">COST‑231 Hata</td><td class="has-text-align-left" data-align="left"><em>1.5</em><em> </em><em>GHz&nbsp;</em><em>–</em><em>&nbsp;2.0</em><em> </em><em>GHz</em></td><td class="has-text-align-left" data-align="left"><em>Urban Macro Cells</em></td><td class="has-text-align-left" data-align="left"><em>No</em></td><td class="has-text-align-left" data-align="left"><em>Urban/Suburban/Rural Contexts</em></td><td class="has-text-align-left" data-align="left"><em>Well validated for cities; good for obstructed LOS macro networks</em></td></tr><tr><td class="has-text-align-left" data-align="left">Ericsson 9999</td><td class="has-text-align-left" data-align="left"><em>~800</em><em> </em><em>MHz&nbsp;</em><em>–</em><em>&nbsp;1900</em><em> </em><em>MHz</em></td><td class="has-text-align-left" data-align="left"><em>Urban Macro Cells (GSM/LTE)</em></td><td class="has-text-align-left" data-align="left"><em>No</em></td><td class="has-text-align-left" data-align="left"><em>Urban/Suburban/Rural Contexts</em></td><td class="has-text-align-left" data-align="left"><em>Flexible; Needs calibration measurements; good for early LTE/GSM</em></td></tr><tr><td class="has-text-align-left" data-align="left">Egli VHF/UHF</td><td class="has-text-align-left" data-align="left"><em>&lt; 1.5</em><em> </em><em>GHz</em></td><td class="has-text-align-left" data-align="left"><em>Rural VHF/UHF</em></td><td class="has-text-align-left" data-align="left"><em>No</em></td><td class="has-text-align-left" data-align="left"><em>Nil</em></td><td class="has-text-align-left" data-align="left"><em>Useful for open rural coverage; good for broadcast-like paths; assumes tall base stations;</em></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><strong>Propagation Model Bake Off</strong></h2>


<div class="wp-block-image">
<figure class="aligncenter is-resized"><img loading="lazy" decoding="async" width="900" height="453" src="https://cloudrf.com/wp-content/uploads/2026/03/gbbo-1.jpg" alt="" class="wp-image-59916" style="aspect-ratio:1.9868150955313437;width:444px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/gbbo-1.jpg 900w, https://cloudrf.com/wp-content/uploads/2026/03/gbbo-1-300x151.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/03/gbbo-1-768x387.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/03/gbbo-1-416x209.jpg 416w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure>
</div>


<p>To help us make an informed model choice, we will conduct a series of tests using real world measurements and comparing model performance to our measured data. From this we will be able to compare results across models and see well that work without diving into clutter tunning. This will lead us to the point where it is possible to make a clear recommendation on what propagation model to choose to start a project.</p>



<h2 class="wp-block-heading">Defining accuracy</h2>



<p>To grade a model, we need to understand what values indicate an accurate model. When collecting measurements from the real world, there is always a hardware measurement error. Expensive test equipment is expensive for a reason and conversely a cheap SDR is unusable for power measurements.</p>



<p>For our tests, we expect a measurement error around 3 dB which would represent absolute accuracy.</p>



<p>A&nbsp;<strong>score of 3 – 6 dB would indicate an excellent result</strong>, 6 – 9 dB is a good match and up to 12 dB is ok. A score higher than 12 dB would be considered an inaccurate model and/or measurements.</p>



<p>Both the statistical mean and the Root Mean Square (RMS) are compared. Achieving a low mean is easy enough through over fitting results but a low RMS is much harder in an urban environment as high resolution clutter must be tuned to match diverse coverage results.</p>



<p>We will look at 41.5MHz, 200MHz, 800MHz, 1800MHz and 2100MHz which give us a broad frequency range to test across.</p>



<h2 class="wp-block-heading"><strong>VHF (41.5 &amp; 200MHz)</strong></h2>



<p>VHF broadcasting is an old and difficult problem where the long range and varying terrain can disrupt line of sight to the receiver. Power ranges are significantly higher and the antennas are mounted on very tall radios.</p>



<p>To test performance of models in the range, we referenced an ITU dataset collected by the ITU’s Study Group 3 which has a VHF broadcast data for various locations around UK, US and Europe. We will be using data from Ashkirk, Croydon and Emily Moor (41.5, 191.25, 196.25). Each area typically has over 1000 data points collected around the broadcast region, measured in field strength (dBμV). Using CloudRF, we can model expected field strength using a selection of models to see which best fits the data.</p>



<p>It should be noted that as this radius, terrain and clutter resolution is reduced on CloudRF due to commercial limits not present on a private server. However, as we have multiple large data sets, we can still be confident in our predictions if we see consistent performance results from case to case.</p>



<p>The first test involves a dataset collected from the Ashkirk broadcasting tower in Selkirkshire Scotland. The VHF antenna sits 192m above the ground, so it is very high compared to cellular or handheld radio use cases. The receive antenna is fixed at 4.3m, which will make it taller than most trees and clutter in the area. The data set contains 534 data points within an 80km radius of the tower.</p>



<h3 class="wp-block-heading">Ashkirk (41.5MHz)</h3>



<ul class="wp-block-list">
<li>ITU-R P1812 (Mean : -3.7 dB, RMS: 7.2 dB)</li>



<li>General Purpose (Mean: -4.7 dB, RMS: 8.3 dB)</li>



<li>ITU-R P.P525 (Mean : 9.3 dB, RMS: 11.6 dB)</li>



<li>Egli (Mean: -11.6 dB, RMS: 13 dB)</li>



<li>ITM(Mean: -0.5 dB, RMS: 16.5 dB)</li>
</ul>



<figure class="wp-block-gallery alignwide has-nested-images columns-5 is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P1812-2.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59598" src="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P1812-2.png" alt="VHF coverage map using ITU-R P.1812 model from Ashkirk site paired with ITU SG3-data" class="wp-image-59598" srcset="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P1812-2.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P1812-2-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P1812-2-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P1812-2-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">P.1812</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30GP-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59586" src="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30GP-1.png" alt="VHF coverage map using General Purpose model from Ashkirk site." class="wp-image-59586" srcset="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30GP-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30GP-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30GP-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30GP-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">General Purpose</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P525-2.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59595" src="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P525-2.png" alt="VHF coverage map using P.525 model from Ashkirk site paired with ITU SG3-data" class="wp-image-59595" srcset="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P525-2.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P525-2-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P525-2-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30P525-2-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">P.525</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/AshkirkEgli-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59589" src="https://cloudrf.com/wp-content/uploads/2026/03/AshkirkEgli-1.png" alt="" class="wp-image-59589" srcset="https://cloudrf.com/wp-content/uploads/2026/03/AshkirkEgli-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/AshkirkEgli-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/AshkirkEgli-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/AshkirkEgli-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Egli</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30ITM-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59592" src="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30ITM-1.png" alt="VHF coverage map using Irregular Terrain Model from Ashkirk site paired with ITU SG3-data" class="wp-image-59592" srcset="https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30ITM-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30ITM-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30ITM-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/Ashkirk30ITM-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">ITM</figcaption></figure>
</figure>



<h3 class="wp-block-heading">Croydon (191.25 MHz)</h3>



<p>The second test involves a dataset collected from the Croydon transmitting station in Upper Norwood, London. The VHF antenna sits at 137m above the ground, so it is very high compared to usual use cases. The receive antenna sits at 9.8m, which places it well above most buildings and landcover expect for dense urban areas like London. The data set contains 2000 data points within a 145km radius of the tower.</p>



<ul class="wp-block-list">
<li>ITU-R P.1812 (Mean: -2.1 dB, RMS: 11.1 dB)</li>



<li>General Purpose (Mean : -0.2 dB, RMS: 12.9 dB)</li>



<li>Egli (Mean : -11.7 dB, RMS: 17.4 dB)</li>



<li>ITU-R P.525 (Mean: 13.7 dB, RMS: 18.8 dB)</li>



<li>Irregular Terrain Model (Mean error: -14.3 dB, RMS: 42.8 dB)</li>
</ul>



<figure class="wp-block-gallery alignwide has-nested-images columns-5 is-cropped wp-block-gallery-8 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/Croydon1812-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59613" src="https://cloudrf.com/wp-content/uploads/2026/03/Croydon1812-1.png" alt="VHF coverage map using ITU-R P.1812 model from Croydon transmission site paired with ITU SG3-data" class="wp-image-59613" srcset="https://cloudrf.com/wp-content/uploads/2026/03/Croydon1812-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/Croydon1812-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/Croydon1812-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/Croydon1812-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">P.1812</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/CroydonGP-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59607" src="https://cloudrf.com/wp-content/uploads/2026/03/CroydonGP-1.png" alt="VHF coverage map using General Purpose model from Croydon transmission site paired with ITU SG3-data" class="wp-image-59607" srcset="https://cloudrf.com/wp-content/uploads/2026/03/CroydonGP-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonGP-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonGP-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonGP-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">General Purpose</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/CroydonEgli-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59604" src="https://cloudrf.com/wp-content/uploads/2026/03/CroydonEgli-1.png" alt="VHF coverage map using Egli model from Croydon transmission site paired with ITU SG3-data" class="wp-image-59604" srcset="https://cloudrf.com/wp-content/uploads/2026/03/CroydonEgli-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonEgli-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonEgli-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonEgli-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Egli</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/CroydonP525-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59616" src="https://cloudrf.com/wp-content/uploads/2026/03/CroydonP525-1.png" alt="VHF coverage map using P.525 model from Croydon transmission site paired with ITU SG3-data" class="wp-image-59616" srcset="https://cloudrf.com/wp-content/uploads/2026/03/CroydonP525-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonP525-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonP525-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonP525-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">P.525</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/CroydonITM-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59610" src="https://cloudrf.com/wp-content/uploads/2026/03/CroydonITM-1.png" alt="VHF coverage map using Irregular Terrain Model from Croydon transmission site paired with ITU SG3-data" class="wp-image-59610" srcset="https://cloudrf.com/wp-content/uploads/2026/03/CroydonITM-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonITM-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonITM-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/CroydonITM-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">ITM</figcaption></figure>
</figure>



<p>In this second test, we can see that our only acceptable prediction is P.1812 which will require further calibration to be tuned for this environment.</p>



<p>The third test uses data from the Emily Moor transmitter which broadcasts to the Yorkshire area. The data set contains 2000 points within a 100Km radius. The transmit height is 305m and receive height is 10m. &nbsp;</p>



<h3 class="wp-block-heading">Emily Moor (196.25 MHz)</h3>



<ul class="wp-block-list">
<li>ITU-R P.1812 (Mean: -2.5 dB, RMS: 8.3 dB)</li>



<li>ITM (Mean: -1 dB, RMS: 10 dB)</li>



<li>ITU-R P.525 (Mean: -5.2 dB, RMS: 11.1 dB)</li>



<li>Egli (Mean: 11 dB, RMS: 14.5 dB)</li>



<li>General Purpose (Mean: -14.8 dB, RMS: 17.7 dB)</li>
</ul>



<p>From our third data set we can see that&nbsp;<strong>P.1812 gives the best prediction again</strong>&nbsp;for these conditions. The significant heights involved worked against the ground based GP model but favoured ITM, developed for TV broadcasting.</p>



<h3 class="wp-block-heading">VHF Conclusion</h3>



<p>From our testing, we can see that without calibration, the models produce variable results with the test data sets. However, the one consistent exception is&nbsp;<strong>ITU-R-P.1812 which gives a mean measurement error of -2.76 dB with an RMS of 8.8 dB.&nbsp;</strong>For this range and complex environment, this is a good result which can be improved further with clutter tuning.</p>



<p>We can also see that our mean and root mean square values are higher than the few dB we would expect in a cellular model eg. 6dB. This is acceptable in this case as we are working over a very large area where the standard deviation of our results will increase as our resolution expands. With a large amount of diverse data points, localised errors can be diluted to establish consistent performance across data sets.</p>



<p>Looking at our selection of models, it is not surprising to see P.1812 outperforming the rest. Egli is a 1950 empirical model for VHF broadcasting, however it is not terrain aware so will tend to under/over attenuate through irregular terrain. Free space (P.525) will tend to be over optimistic over long distances and the added attenuation for General Purpose is better suited for handheld radios amongst clutter. So naturally, for CloudRF uses,&nbsp;<strong>we’d recommend starting with ITU-R P.1812 when working with VHF.</strong></p>



<h2 class="wp-block-heading"><strong>800 MHz (LoRa, UHF, Cellular)</strong></h2>



<p>For this test, we will be using an LTE band 20 (806MHz) transmission tower with RSRP measurements taken from test handsets located with a 3 Km radius of the antenna. The Antenna itself is sitting at 12m above the ground. This serves as an excellent test of lower frequency LTE, 3G and LoRa (868MHz). Using field measurements, we will make predictions using Cloud RF and then use the calibration tool to see the average and RMS errors to see if we have a good fit between our model and our data.</p>



<p>The models we will test are: General Purpose, Irregular Terrain Model, ITU-R P.1812, Okuma-Hata, Ericsson 9999 and Egli.&nbsp;<em>We won’t be testing COST 231 as the test data is below its intended frequency range of 1.5GHz -2GHz.</em></p>



<p>The area of interest is located to the south of the village of Wroughton, which is South of Swindon. The site sits in an open field surrounded by fields and a solar farm with good inter-visibility around the former airfield. The village of Wroughton sits to the north in the shadow of a hill, so we would expect to only see a little coverage through diffraction to the north with stronger coverage to the west, south and east being broken up by hedgerows and sparse buildings.</p>



<h3 class="wp-block-heading">Wroughton (806 MHz)</h3>



<ul class="wp-block-list">
<li>General Purpose (Mean : 2.6 dB, RMS: 3.6 dB)</li>



<li>Egli (Mean : -3.4 dB, RMS: 5.7 dB)</li>



<li>ITU-R P.1812 (Mean : -6.5 dB, RMS: 7.7 dB)</li>



<li>Irregular Terrain Model (Mean : 12.1 dB, RMS: 12.7 dB)</li>



<li>Okumura-Hata (Mean : -37.7 dB, RMS: 37.9 dB)</li>



<li>Ericsson 9999 (Mean : -37.7 dB, RMS: 37.9 dB)</li>
</ul>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-9 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_GP-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59634" src="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_GP-1.png" alt="General Purpose prediction of LTE Coverage using Cloud RF" class="wp-image-59634" srcset="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_GP-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_GP-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_GP-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_GP-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">General Purpose</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_ITM-2.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59637" src="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_ITM-2.png" alt="Irregular Terrain Model prediction of LTE Coverage using Cloud RF" class="wp-image-59637" srcset="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_ITM-2.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_ITM-2-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_ITM-2-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_ITM-2-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">ITM</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_P1812-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59640" src="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_P1812-1.png" alt="ITU-R P.1812 prediction of LTE Coverage using Cloud RF" class="wp-image-59640" srcset="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_P1812-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_P1812-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_P1812-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_P1812-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">P.1812</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59643" src="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1.png" alt="Ericsson 9999 prediction of LTE Coverage using Cloud RF" class="wp-image-59643" srcset="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_9999-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Ericsson 9999</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59646" src="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1.png" alt="Egli prediction of LTE Coverage using Cloud RF" class="wp-image-59646" srcset="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_Egli-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Egli</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_OKHATA-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59649" src="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_OKHATA-1.png" alt="Okumura-Hata prediction of LTE Coverage using Cloud RF" class="wp-image-59649" srcset="https://cloudrf.com/wp-content/uploads/2026/03/BLOG_OKHATA-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_OKHATA-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_OKHATA-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/BLOG_OKHATA-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Hata</figcaption></figure>
</figure>



<h3 class="wp-block-heading">Results</h3>



<p>From the test, we can see that General Purpose and ITU-R P.1812 are good fits for the data, offering single digit variance. The ITM prediction is under attenuating and giving stronger coverage over similar areas to the general purpose and ITU-R P.1812. We can also see that Okumura-Hata and Ericsson 9999 are over attenuating, and we aren’t seeing coverage in the area around our readings at all.</p>



<p>To understand these results, we can go back to their intended use cases: Okumura-Hata and Ericsson 9999 models are intended for built up urban environments and expect more obstacles and chances for diffraction. For the test template, we are using an average/mixed profile which maybe over attenuating our predictions without the environment providing enough paths for diffraction. If we look at the area of the test, we can see there is very few buildings with plenty of open fields and trees. If the context is adjusted to unobstructed, both Okumura-Hata and Ericsson 9999 should yield a better fit to our test data.</p>



<ul class="wp-block-list">
<li>Ericsson 9999 Unobstructed (Mean: 2.4 dB, RMS 3.5 dB)</li>



<li>Okumura-Hata Unobstructed: (Mean : -6.8 dB, RMS: 7.6 dB)</li>
</ul>



<p>By changing the context, we can see that both models now fit the data well.</p>



<h3 class="wp-block-heading">UHF conclusion</h3>



<p><strong>CloudRF recommends ITU‑R P.1812 or General Purpose model for modelling the 800&nbsp;MHz range.</strong>&nbsp;Our experiment supports this, demonstrating that both models provide reliable results when paired with quality clutter and land cover data.</p>



<p>As this test shows, empirical models such as Okumura‑Hata and Ericsson 9999 can be difficult to use without reference data because they depend heavily on selecting the correct environmental context. Without field measurements, you must rely on your interpretation of the environment to decide whether a model should be treated as urban, suburban, rural, or unobstructed. This requires time, experience, and careful reading of the model documentation especially when planning in remote or complex areas.</p>



<p><strong>Deterministic models, on the other hand, have shown to perform consistently</strong>&nbsp;when supplied with good‑quality terrain and clutter data. As we continue conducting field tests, we are becoming increasingly confident in&nbsp;<strong>recommending ITU‑R P.1812 as a robust starting point</strong>&nbsp;for modelling LTE Band 20 (800&nbsp;MHz) and similar low‑frequency systems. Because it is terrain aware and It offers good accuracy even before calibration, which makes them highly useful for time sensitive planning tasks. Additionally, as better LiDAR and DTM data becomes available, these models will increase in effectiveness as legacy empirical models become obsolete.</p>



<h2 class="wp-block-heading">Snow covered trees</h2>



<p>Taking the test up a gear to the Arctic circle, we collected LTE survey data using the&nbsp;<a href="https://rantcell.com/">RantCell</a>&nbsp;survey app from the top of Finland across multiple bands to investigate the accuracy impact of thick snow on trees.</p>



<p><em>Snow is a lattice of water which reflects and attenuates RF so is challenging to simulate, especially as it changes</em>!</p>


<div class="wp-block-image">
<figure class="aligncenter is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/03/yllas-lte-survey.jpeg" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1000" height="836" src="https://cloudrf.com/wp-content/uploads/2026/03/yllas-lte-survey.jpeg" alt="" class="wp-image-59970" style="aspect-ratio:1.1961688373419526;width:522px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/03/yllas-lte-survey.jpeg 1000w, https://cloudrf.com/wp-content/uploads/2026/03/yllas-lte-survey-300x251.jpeg 300w, https://cloudrf.com/wp-content/uploads/2026/03/yllas-lte-survey-768x642.jpeg 768w, https://cloudrf.com/wp-content/uploads/2026/03/yllas-lte-survey-416x348.jpeg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a></figure>
</div>


<p>The field data collected gives us RSRP (Reference Signal Received Power) from two LTE bands (band 1 and band 3) from our tower of interest. This gives us a good opportunity to use one data set to calibrate a model and then use the second set to see if model prediction performance remains consistent across frequency. The frequencies of the two bands do make model selection more limited as band 1 (~2.1GHz) sits above the threshold for Okumura-Hata, its extension COST-231 and Ericsson 9999.</p>



<p>For the data itself we are looking at a small section of coverage near the tower surrounded by large snow-covered trees in undulating terrain. The collection was performed on a ski track under the trees which was often covered by a tree canopy.</p>



<p>The signal RSSI was calculated as 30dB above measured RSRP using the known 20MHz bandwidth and the data fed into our calibration tool to plot the points. From the app’s data, we know the LTE bands for each of our data sets, so we have a centre frequency and bandwidth. Using the photograph of the mast we can approximate its height at 60m. With the mast location set, we can then make two sets of predictions for both 1820 MHz and 2140 MHz down links and compare model performance across both. We will use P.525 as our free space reference model.</p>



<h3 class="wp-block-heading"><strong>1820 MHz</strong></h3>



<ul class="wp-block-list">
<li>ITU-R P.1812 (Mean: 2.3 dB, RMS: 6.8 dB)</li>



<li>Irregular Terrain Model (Mean: -2.8 dB, RMS: 7.1 dB)</li>



<li>ITU-R P.525 (Mean: -9.3 dB, RMS: 11.3 dB)</li>



<li>Ericsson 9999 (Mean: -8 dB, RMS: 10.5 dB)</li>



<li>General Purpose (Mean: -23.3 dB, RMS: 24.2 dB)</li>



<li>COST-231 (Mean: -43.9 dB, RMS: 48 dB)</li>
</ul>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-10 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/COST_1800MHZ-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59670" src="https://cloudrf.com/wp-content/uploads/2026/03/COST_1800MHZ-1.png" alt="Cloud RF coverage prediction using COST-231 against RANT data at 1820MHz (LTE Band 3)" class="wp-image-59670" srcset="https://cloudrf.com/wp-content/uploads/2026/03/COST_1800MHZ-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/COST_1800MHZ-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/COST_1800MHZ-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/COST_1800MHZ-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">COST-231</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/E9999_1800MHz-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59673" src="https://cloudrf.com/wp-content/uploads/2026/03/E9999_1800MHz-1.png" alt="Cloud RF coverage prediction using Ericsson 9999 against RANT data at 1820MHz (LTE Band 3)" class="wp-image-59673" srcset="https://cloudrf.com/wp-content/uploads/2026/03/E9999_1800MHz-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/E9999_1800MHz-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/E9999_1800MHz-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/E9999_1800MHz-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Ericsson 9999</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/GP_1800MHz-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59676" src="https://cloudrf.com/wp-content/uploads/2026/03/GP_1800MHz-1.png" alt="Cloud RF coverage prediction using General Purpose against RANT data at 1820MHz (LTE Band 3)" class="wp-image-59676" srcset="https://cloudrf.com/wp-content/uploads/2026/03/GP_1800MHz-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/GP_1800MHz-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/GP_1800MHz-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/GP_1800MHz-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">General Purpose</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/P1812_1800MHz-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59667" src="https://cloudrf.com/wp-content/uploads/2026/03/P1812_1800MHz-1.png" alt="Cloud RF coverage prediction using ITU-R P.1812 against RANT data at 1820MHz (LTE Band 3)" class="wp-image-59667" srcset="https://cloudrf.com/wp-content/uploads/2026/03/P1812_1800MHz-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/P1812_1800MHz-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/P1812_1800MHz-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/P1812_1800MHz-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">P.1812</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/ITM_1800MHz-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59661" src="https://cloudrf.com/wp-content/uploads/2026/03/ITM_1800MHz-1.png" alt="Cloud RF coverage prediction using Irregular Terrain Model against RANT data at 1820MHz (LTE Band 3)" class="wp-image-59661" srcset="https://cloudrf.com/wp-content/uploads/2026/03/ITM_1800MHz-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/ITM_1800MHz-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/ITM_1800MHz-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/ITM_1800MHz-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">ITM</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/03/P525_1800MHz-1.png" rel="lightbox[60042]"><img loading="lazy" decoding="async" width="1024" height="768" data-id="59664" src="https://cloudrf.com/wp-content/uploads/2026/03/P525_1800MHz-1.png" alt="Cloud RF coverage prediction using P.525 against RANT data at 1820MHz (LTE Band 3)" class="wp-image-59664" srcset="https://cloudrf.com/wp-content/uploads/2026/03/P525_1800MHz-1.png 1024w, https://cloudrf.com/wp-content/uploads/2026/03/P525_1800MHz-1-300x225.png 300w, https://cloudrf.com/wp-content/uploads/2026/03/P525_1800MHz-1-768x576.png 768w, https://cloudrf.com/wp-content/uploads/2026/03/P525_1800MHz-1-416x312.png 416w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">P.525</figcaption></figure>
</figure>



<p>When comparing the predictions to the 1820 MHz data sets, we can see that P.1812 and ITM are close predictors of the measured values. Additionally, when Ericsson 9999 is used with an average/suburban context, it gives an okay estimate, but has a&nbsp;<em>much</em>&nbsp;smaller coverage area overall, suggesting that more tuning is required to better match the attenuation caused by the large snow-covered trees. General Purpose is over attenuated which was not surprising given our free space path loss is a close fit and the 20 dB offset was added following tests with ground based tactical radio networks, not 60m masts. COST-231 is unusable which was expected given it is well outside it’s intended environment.</p>



<p>To test consistency, we can now look at the test results at 2140 MHz. Unfortunately, we can’t include Ericsson 9999 or COST-231 as the operating frequency is too high. However, we can test the Stanford University Interim (SUI) model which is rated for above 1.9 GHz.</p>



<h3 class="wp-block-heading"><strong>2140 MHz</strong></h3>



<ul class="wp-block-list">
<li>ITU-R P.1812 (Mean: -5 dB, RMS: 9.2 dB)</li>



<li>Irregular Terrain Model (Mean: -5.1 dB, RMS: 9.6 dB)</li>



<li>ITU-R P.525 (Mean: -9.4 dB, RMS: 12 dB)</li>



<li>General Purpose (Mean: -23.4 dB, RMS: 24.6 dB)</li>



<li>SUI (Mean: -69.3 dB, RMS: 72.9 dB)</li>
</ul>



<p>From this comparison, we can again see similar results.&nbsp;<strong>ITU-R P.1812 is again providing the best prediction</strong>, followed closely by ITM. The observation for P.525 and General Purpose remains the same. The SUI model is&nbsp;<em>heavily</em>&nbsp;over attenuating using an unobstructed context. This is not surprising when looking at the generic path loss graphs shown previously shown. SUI has consistently been the most conservative microwave model in our collection and based on the performance in comparison with other models it will be retired from our API in due course.</p>



<h3 class="wp-block-heading">LTE conclusion</h3>



<p>Looking at the two set of predictions, we can see consistency in performance from both P.1812 and ITM with&nbsp;<strong>P.1812 giving the best fit</strong>. Their coverage maps are generally consistent shapes with themselves and each other and we see more attenuation through the trees at our higher frequency as expected.</p>



<p>Our two models are showing their utility by giving accurate predictions despite heavy snow based on terrain and clutter data alone. The next question for these two models now is how to tune the clutter for each frequency for a better match.</p>



<h2 class="wp-block-heading">Key findings for choosing a Propagation Model</h2>



<p>Having conducted tests across six locations with different datasets and frequencies, we’ve gained insights into how each propagation model performs. The results of those tests have been broadly consistent with deterministic models like ITU-R P.1812 and its legacy predecessor ITM being consistently accurate before calibration and clutter tuning.</p>



<p>The old empirical models can be accurate, but they require the correct context to make an accurate prediction and without test data, it is difficult to tune them to their respective environment due to their fixed path loss curves. This is why&nbsp;<strong>we are recommending ITU-R P.1812 as our default</strong>&nbsp;model for VHF, LoRa and LTE propagation when using Cloud RF.&nbsp;<em>You can still use Empirical models, but you’ll have to commit to collecting field data for tuning.</em></p>



<p>To further improve accuracy, users&nbsp;<a href="https://cloudrf.com/documentation/02_web_interface_intro.html#clutter-manager">can tune our clutter profiles</a>&nbsp;with variables such as tree heights or average attenuation through buildings. To understand where these values come from, please check out our past model and clutter improvements&nbsp;<a href="https://cloudrf.com/accuracy/">blogs</a>&nbsp;or if you want to accelerate the process, see our calibration with&nbsp;<a href="https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/python/auto-calibration">machine learning demo&nbsp;</a>with sample code on our Github.</p>



<h2 class="wp-block-heading">What about Machine Learning?</h2>



<p>The promise of Machine Learning models to improve accuracy (and speed) is tempting but <strong>it depends upon an enormous quantity of accurate training data</strong>. In our experience, ML researchers struggle to generate the vast quantity of accurate and expensive test data needed to develop even small demos.</p>



<p><strong>Given enough training data</strong>, an ML model could be quicker and just as accurate as physics based simulation or potentially a drive survey. </p>



<p>However, it is naive to criticise the performance of physics based simulation in favour of ML as the model generation relies upon the former to train the model which creates a dichotomy whereby ML developers need to both criticise, and rely upon, simulation tools to develop an accurate model (and secure funding). There is a solution to this which requires academic honesty and a mature and scalable API but one of those requirements is harder to come by than the other.</p>



<h2 class="wp-block-heading">Further Reading</h2>



<p><a href="https://cloudrf.com/fast-simulation-calibration-with-machine-learning/">Fast simulation calibration with Machine Learning</a></p>



<p><a href="https://cloudrf.com/model-and-clutter-improvements/">Model and clutter improvements</a><a></a></p>



<p><a href="https://www.itu.int/en/ITU-R/study-groups/rsg3/Pages/dtbank-vhf-uhf.aspx">SG 3 Databanks – ITU</a></p>



<p><a href="https://cloudrf.com/documentation/02_web_interface_intro.html#model">CloudRF model menu</a></p>
<p>The post <a href="https://cloudrf.com/choosing-an-rf-propagation-model/">Choosing an RF Propagation Model</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Live network mapping endurance test</title>
		<link>https://cloudrf.com/live-network-mapping-endurance-test/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Wed, 11 Feb 2026 09:26:52 +0000</pubDate>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Modelling]]></category>
		<category><![CDATA[Self-hosted]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=56021</guid>

					<description><![CDATA[<p>Summary We conducted a field test in the mountains with SOOTHSAYER focused on automation and endurance. The test generated quality data and revealed altitude issues with our plugin we have since fixed. We conducted a field test in the mountains with SOOTHSAYER focused on automation and endurance. The test generated quality data and revealed altitude [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/live-network-mapping-endurance-test/">Live network mapping endurance test</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Summary</h2>



<blockquote class="wp-block-quote has-medium-font-size is-layout-flow wp-block-quote-is-layout-flow">
<p>We conducted a field test in the mountains with SOOTHSAYER focused on automation and endurance. The test generated quality data and revealed altitude issues with our plugin we have since fixed.</p>
</blockquote>



<p>We conducted a field test in the mountains with SOOTHSAYER focused on automation and endurance. The test generated quality data and revealed altitude issues with our plugin we have since fixed.</p>



<p>During the test we created <strong>925 multi-site coverage heat maps</strong> and 4625 links to maintain a live map of the network. We previously established model accuracy on <a href="https://cloudrf.com/accuracy/" type="post" id="49327">previous field tests</a> so the focus here was on <strong>endurance</strong>.</p>



<p>Live network mapping is radio planning without user interaction where radio locations and coverage are updated dynamically via an API. It requires fast and economical edge compute like our <a href="https://cloudrf.com/soothsayer/" type="page" id="6612">SOOTHSAYER</a> API to be effective and is not possible with legacy desktop tools.</p>



<p>This offline edge capability is implemented in our ATAK plugin via the Co-Opt feature. This new feature updates network coverage automatically using live map data to provide a current view of communications problems and opportunities, akin to a moving weather layer. <strong>It is useful for deploying radio networks into challenging terrain.</strong></p>



<h2 class="wp-block-heading">Test objectives</h2>



<ul class="wp-block-list">
<li class="has-medium-font-size">Collect performance data</li>



<li class="has-medium-font-size">Prove software stability</li>



<li class="has-medium-font-size">Test altitude logic</li>
</ul>



<h2 class="wp-block-heading">Test setup</h2>



<h3 class="wp-block-heading">Hardware</h3>



<p>The edge compute used was a Nvidia Jetson NX 16GB onboard a <a href="https://www.carnegierobotics.com/cardshark">Cardshark rugged computer </a>with an external Wi-Fi adaptor to provide an access point for the phone client. </p>



<p>The computer was powered by budget USB-C powerbanks rated at <a href="https://www.amazon.co.uk/JUOVI-20000mAh-Portable-Charger-Charging/dp/B0D6378L2B/?th=1">13000mAh</a> and <a href="https://www.amazon.co.uk/INIU-25000mAh-Portable-Charging-Powerbank/dp/B0CB1BVHTK/">25000mAh</a> respectively.</p>



<p>The test phone was a Samsung Galaxy S23 connected via the Jetson&#8217;s Wi-Fi.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/02/carshark-batteries-phone.jpg" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1024" height="768" src="https://cloudrf.com/wp-content/uploads/2026/02/carshark-batteries-phone-1024x768.jpg" alt="" class="wp-image-56033" style="aspect-ratio:1.333342163823249;width:674px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/02/carshark-batteries-phone-1024x768.jpg 1024w, https://cloudrf.com/wp-content/uploads/2026/02/carshark-batteries-phone-300x225.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/02/carshark-batteries-phone-768x576.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/02/carshark-batteries-phone-416x312.jpg 416w, https://cloudrf.com/wp-content/uploads/2026/02/carshark-batteries-phone.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Cardshark computer with USB-C power cable, batteries and phone</figcaption></figure>
</div>


<p></p>



<h3 class="wp-block-heading">Software</h3>



<p>The offline software running on the Jetson&#8217;s Jetpack 6.1 OS was <a href="https://cloudrf.com/soothsayer">SOOTHSAYER</a> v1.10, deployed as Docker containers. <em>The resource intensive 3D engine container was not needed here so was disabled.</em></p>



<p>Services for a <a href="https://github.com/Cloud-RF/cotroutesim">CoT simulator</a>, a low power 5GHz Wi-Fi access point and a performance logging utility were running.</p>



<p>On the phone we ran ATAK 5.6.0.12 (Play store) with our <a href="https://play.google.com/store/apps/details?id=com.cloudrf.android.soothsayer.plugin">SOOTHSAYER ATAK plugin</a> version 2.7a.</p>



<h3 class="wp-block-heading">Reference data</h3>



<p>The Jetson was pre-loaded with 30m SRTM1 DTM and 10m ESA Land cover data for the mountainous test area. The phone used cached Openstreetmap mapping and 30m SRTM1 terrain data.</p>



<h3 class="wp-block-heading">Test route</h3>



<p>The area chosen was the Glenshee ski resort in the Cairgngorms national park, Scotland during early February where temperatures up the mountain were -10°C (14°F). A 16km circular route was followed which provided challenging conditions to meet the objectives.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-winter-plateau.jpg" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1024" height="768" src="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-winter-plateau-1024x768.jpg" alt="" class="wp-image-56042" srcset="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-winter-plateau-1024x768.jpg 1024w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-winter-plateau-300x225.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-winter-plateau-768x576.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-winter-plateau-416x312.jpg 416w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-winter-plateau.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<h1 class="wp-block-heading">Test data</h1>



<p>Using the onboard Tegrastats utility we collected detailed data about workload, temperature and power consumption which will inform future designs and recommendations.</p>



<p>The day was split between two test profiles for the morning (0900 to 1300) and the afternoon (1345 to 1600).</p>



<p>Each profile used 0.5 megapixel resolution which for a multi-site request with 5 nodes would require the analysis of 2.5 million points using the ITU-R P.1812 VHF/UHF propagation model which includes diffraction.</p>



<p>In the first test profile, a calculation was triggered<strong> if a radio moved more than 200m</strong>. This is an economical way of working designed to extend battery life and reduce bandwidth if working across a network.</p>



<p>In the second test profile, a calculation was triggered on a <strong>10 second interval</strong>. This is a more intensive way of working which provides regular updates.</p>



<h2 class="wp-block-heading">Processor load</h2>



<p>As expected, the CPU and GPU load was more intense for the fixed interval than the responsive profile. The spacing during the responsive profile in the morning shows our slower progress on the ascent followed by rapid progress as we moved across the plateau and the server worked harder to keep up with us.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-44.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1024" height="523" src="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-44-1024x523.png" alt="" class="wp-image-56093" srcset="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-44-1024x523.png 1024w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-44-300x153.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-44-768x392.png 768w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-44-1536x784.png 1536w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-44-416x212.png 416w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-44.png 1798w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">GPU load</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-53.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1024" height="523" src="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-53-1024x523.png" alt="" class="wp-image-56096" srcset="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-53-1024x523.png 1024w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-53-300x153.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-53-768x392.png 768w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-53-1536x784.png 1536w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-53-416x212.png 416w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-53.png 1798w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">CPU load</figcaption></figure>
</div>


<h2 class="wp-block-heading">SOC Temperature</h2>



<p>The internal SOC temperature chart was also predictable as the unit was inside a waterproof bag inside a rucksack. It climbed steadily during the ascent, then dropped sharply as we stopped to make a video where it was removed from the rucksack briefly.</p>



<p>The unit temperature leveled out at 53 degrees Celsius inside the rucksack. It was not an ideal place to achieve cooling but given the winter conditions, quite acceptable judging by the data. A temperature of 80 degrees would be hot.</p>



<p>In the afternoon the unit was attached outside the rucksack in the waterproof bag where it leveled out at 32 degrees Celsius. The moment the rucksack was placed inside the vehicle before 1600 is evident as the temperature climbed steadily. This coincided with it being placed under an intense load during a <a href="https://www.youtube.com/watch?v=5tAwou7Rg4E">driving demonstration</a> we have published on our Youtube channel.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-41-10.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1024" height="523" src="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-41-10-1024x523.png" alt="" class="wp-image-56102" srcset="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-41-10-1024x523.png 1024w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-41-10-300x153.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-41-10-768x392.png 768w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-41-10-1536x784.png 1536w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-41-10-416x212.png 416w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-41-10.png 1798w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">SOC Temperature</figcaption></figure>
</div>


<h2 class="wp-block-heading">Power consumption</h2>



<p>The most valuable data was power consumption which showed some interesting features and very encouraging mean values. The afternoon profile was more intense but did not increase peak power consumption which was actually lower than the morning for reasons which were not immediately obvious. </p>



<p>Following inspection of memory consumption (~25%), the reason was assessed to be a GPU memory leak triggered by unplanned &#8220;Above Sea Level&#8221; (ASL) calculations which occurred on the ascent. <em>A large calculation needs more memory, which draws more power</em>. Unlike the CPU engine which is called on-demand, the GPU engine runs continuously and its memory consumption can grow with use. In this case power consumption grew by 250mW whilst delivering 925 heat maps which we&#8217;re happy with.</p>



<p>The afternoon was not affected by the ASL memory leak so we maintained a steady even profile at around <strong>7.5W power consumption</strong>, well within the range of a phone power bank.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-59-1.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1024" height="523" src="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-59-1-1024x523.png" alt="" class="wp-image-56105" srcset="https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-59-1-1024x523.png 1024w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-59-1-300x153.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-59-1-768x392.png 768w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-59-1-1536x784.png 1536w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-59-1-416x212.png 416w, https://cloudrf.com/wp-content/uploads/2026/02/Screenshot-from-2026-02-10-14-40-59-1.png 1798w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Power consumption throughout the day</figcaption></figure>
</div>


<h2 class="wp-block-heading">Test videos</h2>



<p>A video of select moments from the edge compute field test has been published on our Youtube channel. Following the field test, we created a bonus video of the drive home as the server was still running in the vehicle. This second video demonstrates the Co-Opt feature running with a 5 second refresh on a vehicle moving at up to 50 mph.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Live network mapping endurance test" width="980" height="551" src="https://www.youtube.com/embed/pCFMegeGMb8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="SOOTHSAYER ATAK plugin: Live RF mapping from a vehicle" width="980" height="551" src="https://www.youtube.com/embed/5tAwou7Rg4E?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Issues</h2>



<h3 class="wp-block-heading">Plugin altitude logic</h3>



<p>During the ascent we noted our own position marker, sourced from GPS, jumped from Above-Ground-Level (AGL) defined within our template to Above-Sea-Level (ASL). This was due to logic inside our plugin designed to handle aircraft.</p>



<p>The logic compares reported (GPS) altitude, measured in WGS-84 Height Above Ellipsoid (HAE), which is known to be inaccurate, with (ATAK) terrain height and if the difference exceeds 120m / 400ft, it uses ASL units and overrides the template&#8217;s receiver altitude to the local terrain altitude.</p>



<p>For more information on Height Above Ellipsoid see <a href="https://nextnav.com/hae/">this article</a>.</p>



<pre class="wp-block-code"><code>// If Height AGL is &gt; 120m / 400ft, this is probably flying so we switch units to meters AMSL and use GPS altitude

if (altitude - terrain &gt; 120.0) {

  marker.markerDetails.transmitter?.alt = altitude.toDouble()

  marker.markerDetails.receiver.alt = terrain + 1

  marker.markerDetails.output.units = "m_amsl"

} else {

  marker.markerDetails.output.units = "m"

}</code></pre>



<p></p>



<p>This risky logic made sense from the comfort of the office with a GPS simulator but was a mess on the mountain with real GPS altitudes. <em>The synthetic CoT markers were unaffected as they report a height above ground level.</em></p>



<p>As we went on to find, we were comparing an inaccurate GPS altitude with an inaccurate terrain altitude. Not exactly a recipe for success :/</p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-11 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-0901.jpg" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1000" height="462" data-id="56114" src="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-0901.jpg" alt="" class="wp-image-56114" srcset="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-0901.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-0901-300x139.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-0901-768x355.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-0901-416x192.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-1033.jpg" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1000" height="462" data-id="56117" src="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-1033.jpg" alt="" class="wp-image-56117" srcset="https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-1033.jpg 1000w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-1033-300x139.jpg 300w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-1033-768x355.jpg 768w, https://cloudrf.com/wp-content/uploads/2026/02/glenshee-coverage-at-1033-416x192.jpg 416w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">Screenshots of a regular and large above sea level calculation during the ascent</figcaption></figure>



<p></p>



<p></p>



<h3 class="wp-block-heading">ATAK API inconsistencies</h3>



<p>Whilst on the mountain we noted a disagreement between our GPS altitude and ATAK&#8217;s reported altitude which warranted a deeper investigation. During the investigation we discovered inconsistencies with ATAK Elevation data.</p>



<p>The ElevationData class we, and no doubt other developers, were using was deprecated and apparently removed in 5.6 despite being in the <a href="https://github.com/TAK-Product-Center/atak-civ/blob/9f6893dd657feacc35ec5de03dad721c2e44170e/plugin-examples/helloworld/app/src/main/java/com/atakmap/android/helloworld/HelloWorldDropDownReceiver.java#L183">Hello World demo</a> for that release. We were using this with the <strong>getElevation()</strong> method which returns the height in meters above the WGS-84 ellipsoid (HAE).</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/02/image-2.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="873" height="324" src="https://cloudrf.com/wp-content/uploads/2026/02/image-2.png" alt="" class="wp-image-56153" srcset="https://cloudrf.com/wp-content/uploads/2026/02/image-2.png 873w, https://cloudrf.com/wp-content/uploads/2026/02/image-2-300x111.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/image-2-768x285.png 768w, https://cloudrf.com/wp-content/uploads/2026/02/image-2-416x154.png 416w" sizes="auto, (max-width: 873px) 100vw, 873px" /></a><figcaption class="wp-element-caption">Deprecation warning on ElevationData</figcaption></figure>
</div>


<pre class="wp-block-code"><code>val dtmFilter = ElevationManager.QueryParameters().apply {

  elevationModel = ElevationData.MODEL_TERRAIN

}
val terrain = ElevationManager.getElevation(currentMarker.point.latitude, currentMarker.point.longitude, dtmFilter)</code></pre>



<h3 class="wp-block-heading"></h3>



<p>The recommended replacement for <strong>ElevationData</strong> based upon public source code for 5.5 is the <a href="https://github.com/TAK-Product-Center/atak-civ/blob/9f6893dd657feacc35ec5de03dad721c2e44170e/takkernel/engine/src/main/java/com/atakmap/map/elevation/ElevationData.java#L11">ElevationChunk</a> API. <em>There are no public examples for implementing the recommended alternative at the time of writing although references were noted in documentation <span style="text-decoration: underline;">before</span> it was deprecated in 5.3</em> <em>which needs clarification.</em></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2026/02/image-4.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="668" height="110" src="https://cloudrf.com/wp-content/uploads/2026/02/image-4.png" alt="" class="wp-image-56171" srcset="https://cloudrf.com/wp-content/uploads/2026/02/image-4.png 668w, https://cloudrf.com/wp-content/uploads/2026/02/image-4-300x49.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/image-4-416x69.png 416w" sizes="auto, (max-width: 668px) 100vw, 668px" /></a><figcaption class="wp-element-caption">Version 5.5.1 recommends ElevationChunk</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/02/image-3.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="503" height="105" src="https://cloudrf.com/wp-content/uploads/2026/02/image-3.png" alt="" class="wp-image-56168" style="width:631px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/02/image-3.png 503w, https://cloudrf.com/wp-content/uploads/2026/02/image-3-300x63.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/image-3-416x87.png 416w" sizes="auto, (max-width: 503px) 100vw, 503px" /></a><figcaption class="wp-element-caption">Documentation for 5.6 does not contain elevationchunk</figcaption></figure>
</div>


<h3 class="wp-block-heading">DTED or SRTM?</h3>



<p>The deprecated method used was evidently returning a value based upon low resolution DTED0 data at 1km resolution. This was less accurate than the 30m SRTM1 (DTED2) data which ATAK tools like the range-bearing elevation profile or cross marker (X) use. <em>SOOTHSAYER uses SRTM1 also.</em></p>



<p>ATAK 5.6 was found to be referencing different datasets for the same position between its interface tools and programming API which was frustrating. To prove this we pulled both the raster tiles and used GDAL&#8217;s location info utility to plot the differences for the route.</p>



<p>At location <strong>56.875932, -3.377869</strong> we experienced a large height error when the plugin fetched a height of 879m HAE yet the GPS reported 997m HAE (visible in the screenshot above). The massive 118m difference is just shy of the 120m needed to trigger our &#8220;airborne&#8221; logic. </p>



<p>The GPS measurement accuracy in the z-axis was measured to be inaccurate by at least 10m as the real altitude was 1007m ASL so it appears we had an altitude error greater than 120m during the ascent. A notable error which <a href="https://github.com/meshtastic/firmware/issues/359">affects other GPS apps</a>.</p>



<pre class="wp-block-code"><code>gdallocationinfo n56.dt0 -wgs84 -3.377869 56.875932
Report:
  Location: (37P,15L)
  Band 1:
    Value: 879</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2026/02/image-1.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="1024" height="301" src="https://cloudrf.com/wp-content/uploads/2026/02/image-1-1024x301.png" alt="" class="wp-image-56054" srcset="https://cloudrf.com/wp-content/uploads/2026/02/image-1-1024x301.png 1024w, https://cloudrf.com/wp-content/uploads/2026/02/image-1-300x88.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/image-1-768x226.png 768w, https://cloudrf.com/wp-content/uploads/2026/02/image-1-416x122.png 416w, https://cloudrf.com/wp-content/uploads/2026/02/image-1.png 1283w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>Digging into ATAK&#8217;s preferences we found validation for our theory via the &#8220;Pull Elevation Mode&#8221; option within Elevation Overlays Preferences. The choice between DTED and Highest Resolution suggests this was implemented to support better than DTED data eg. SRTM1. It is not clear if it references DTED0 or SRTM1, which as we&#8217;ve shown could be a +100m error.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2026/02/image-5.png" rel="lightbox[56021]"><img loading="lazy" decoding="async" width="870" height="440" src="https://cloudrf.com/wp-content/uploads/2026/02/image-5.png" alt="" class="wp-image-56177" style="aspect-ratio:1.977331657106938;width:754px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2026/02/image-5.png 870w, https://cloudrf.com/wp-content/uploads/2026/02/image-5-300x152.png 300w, https://cloudrf.com/wp-content/uploads/2026/02/image-5-768x388.png 768w, https://cloudrf.com/wp-content/uploads/2026/02/image-5-416x210.png 416w" sizes="auto, (max-width: 870px) 100vw, 870px" /></a></figure>
</div>


<p></p>



<h3 class="wp-block-heading">Some batteries are better than others</h3>



<p>Our goal was to use flight-safe USB power banks which can easily provide the <strong>7-8W of power</strong> needed to run the capability. We ran soak tests in the office to establish a battery life of 6 hours for the smaller 45wH battery. We expected this to be reduced on the mountain so purchased a larger 92wH battery but it failed after 4 hours despite being kept warm inside an insulated jacket.</p>



<p>The smaller battery proved its worth and ran for two hours with only 35% consumption suggesting it would have lasted longer than the larger battery.</p>



<p>During subsequent charging of the large battery it reported unexpected levels suggesting it was likely defective and under performing. </p>



<p><strong>Our conclusion was that you can live-map a network for more than four hours on a small battery, but it must be a reliable one</strong>.</p>



<p></p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>We were happy with the test and the results which showed <strong>solid stability</strong> and <strong>good power economy</strong>. It validated the hardware, the SOOTHSAYER API and most importantly the concept of <strong>edge coverage mapping</strong>.</p>



<p>Given the accuracy issues experienced with GPS data and the deprecated-yet-still-going elevation APIs using low resolution data sources, we have commented out the error prone &#8220;airborne&#8221; logic in our plugin and will only use the fixed altitude(s) defined within the radio template until further notice.</p>



<p><em>Plugin users can edit both the transmit and receive altitudes above ground level by selecting the marker then clicking the pencil.</em></p>



<p class="has-medium-font-size">The ATAK plugin has already been updated and pushed to our <a href="https://github.com/Cloud-RF/SOOTHSAYER-ATAK-plugin/releases">Github repository</a> and Google Play as <a href="https://play.google.com/store/apps/details?id=com.cloudrf.android.soothsayer.plugin">version 2.7.1</a></p>



<p></p>
<p>The post <a href="https://cloudrf.com/live-network-mapping-endurance-test/">Live network mapping endurance test</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Enhancing Radio Direction Finding with RF simulation</title>
		<link>https://cloudrf.com/enhancing-radio-direction-finding-with-rf-simulation/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Tue, 25 Nov 2025 22:22:24 +0000</pubDate>
				<category><![CDATA[Modelling]]></category>
		<category><![CDATA[Theory]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=53534</guid>

					<description><![CDATA[<p>Background Radio Direction Finding (DF) is the art of determining the location of an emitter and is used in search and rescue, coastal surveillance, law enforcement and defence. There are different techniques using power and phase but the output for a single sensor is normally a Line of Bearing (LoB) which points towards the emitter. [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/enhancing-radio-direction-finding-with-rf-simulation/">Enhancing Radio Direction Finding with RF simulation</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Background</h2>



<p>Radio Direction Finding (DF) is the art of determining the location of an emitter and is used in search and rescue, coastal surveillance, law enforcement and defence. There are different techniques using power and phase but the output for a single sensor is normally a Line of Bearing (LoB) which points towards the emitter.</p>



<p>If you&#8217;ve ever seen DF depicted in marketing or an info-graphic, you&#8217;ve likely seen three geometrically distributed sensors surrounding an emitter which produce a high accuracy position fix (PF) where their lines of bearing converge.</p>



<p>In the real world, DF systems are expensive and require specialist training so are in short supply. It is far more common for these systems to be used in isolation so operators must <strong>determine an emitter&#8217;s location with a single LoB </strong>and a map study. For powerful signals, the search area could be vast.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2025/11/kraken-df-lob.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="800" height="603" src="https://cloudrf.com/wp-content/uploads/2025/11/kraken-df-lob.jpg" alt="" class="wp-image-53829" style="width:489px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2025/11/kraken-df-lob.jpg 800w, https://cloudrf.com/wp-content/uploads/2025/11/kraken-df-lob-300x226.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/11/kraken-df-lob-768x579.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/11/kraken-df-lob-416x314.jpg 416w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a><figcaption class="wp-element-caption">A Line of Bearing displayed on ATAK</figcaption></figure>
</div>


<h2 class="wp-block-heading">Guessing the signal power</h2>



<p>For a signal to be tasked for DF, it&#8217;s frequency is already known. With signal classifiers increasingly integrated into receivers, and now even <a href="https://github.com/TorchDSP/torchsig">open source</a>, the signal type may well be known which helps answer a key question: <strong>what is the signal&#8217;s transmit power? </strong></p>



<p>When a new signal is detected, <strong>it could be in the room next door or in the next county</strong>. Knowing the signal type and ideally the hardware is key to estimating the distance, as you can lookup the possible power levels from a data sheet.</p>



<p>A portable radio has variable power levels: For a DMR radio with low and high power at 0.1W and 4W these can be put into a basic path loss model to determine the possible distance. Using the Friis reference model with a detected signal of -80dBm for example, a 1GHz <strong>signal could be 2.4km or 15km away in free space</strong>.</p>


<div class="wp-block-image">
<figure class="alignright size-large is-resized"><a href="https://cloudrf.com/wp-content/uploads/2024/01/reacquired_signal.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="1024" height="532" src="https://cloudrf.com/wp-content/uploads/2024/01/reacquired_signal-1024x532.jpg" alt="Spectrum analyser up mountain" class="wp-image-24842" style="width:439px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2024/01/reacquired_signal-1024x532.jpg 1024w, https://cloudrf.com/wp-content/uploads/2024/01/reacquired_signal-300x156.jpg 300w, https://cloudrf.com/wp-content/uploads/2024/01/reacquired_signal-768x399.jpg 768w, https://cloudrf.com/wp-content/uploads/2024/01/reacquired_signal-416x216.jpg 416w, https://cloudrf.com/wp-content/uploads/2024/01/reacquired_signal.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Strong LTE signals seen from a mountain</figcaption></figure>
</div>


<p>This significant variation with the possible distance is where modelling can add value to reduce the vast search area.</p>



<p>For the example radio, these power values in Watts must be converted to decibel milliwatts (dBm) for consistency with the path loss modelling and to establish the range in decibels which will inform simulation parameters. In this case, low power is 20dBm (0.1W) and high power is 36dBm (4W) for <strong>16dB of uncertainty</strong>.</p>



<p><strong>In an obstructed environment such as a forest, this uncertainty represents a shorter distance</strong> than in free space where again, modelling can add value. A counter drone system is an example of a free space problem.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://cloudrf.com/wp-content/uploads/2025/07/tree-calibration.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="1024" height="564" src="https://cloudrf.com/wp-content/uploads/2025/07/tree-calibration-1024x564.jpg" alt="" class="wp-image-49900" style="width:636px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2025/07/tree-calibration-1024x564.jpg 1024w, https://cloudrf.com/wp-content/uploads/2025/07/tree-calibration-300x165.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/07/tree-calibration-768x423.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/07/tree-calibration-416x229.jpg 416w, https://cloudrf.com/wp-content/uploads/2025/07/tree-calibration.jpg 1230w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Path loss variation due to clutter attenuation</figcaption></figure>
</div>


<p></p>



<h2 class="wp-block-heading">Link reciprocity</h2>



<p>A radio link is not symmetrical due to how and <em>where</em> obstacles impact the fresnel zone which is the cone of power an element radiates. Even if you have line of sight (LOS) between two even power stations, you can still get different received power levels from A to B than B to A.</p>


<div class="wp-block-image">
<figure class="alignleft size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2025/11/reciprocity.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="544" height="500" src="https://cloudrf.com/wp-content/uploads/2025/11/reciprocity.jpg" alt="" class="wp-image-53728" style="width:334px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2025/11/reciprocity.jpg 544w, https://cloudrf.com/wp-content/uploads/2025/11/reciprocity-300x276.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/11/reciprocity-416x382.jpg 416w" sizes="auto, (max-width: 544px) 100vw, 544px" /></a><figcaption class="wp-element-caption">A to B != B to A</figcaption></figure>
</div>


<p>This matters as we cannot model the emitter since we don&#8217;t know  where it is! We can only model the receiver location.</p>



<p>In our experience, the difference is measured in single digits and is <strong>small compared with noise</strong> which will make a bigger impact on a link&#8217;s viability. If you are operating at the edge of a system&#8217;s link budget then the reciprocal difference may be enough to make a link one way only.</p>



<p><strong>For modelling a receiver we need uplink (talk-in) measurements</strong> instead of downlink (talk-out) which we normally collect for clutter and model calibration.</p>



<p></p>



<p></p>



<h2 class="wp-block-heading">Field testing</h2>



<p>We conducted several field tests to integrate our API using a budget commercial DF receiver, the <a href="https://www.krakenrf.com/">KrakenSDR.</a> This compact entry level unit gave us a LoB (with 8 degrees of error) we could work with but as it used 8-bit SDRs, we could not rely upon the received power level as low resolution SDRs can not represent weak signals.</p>



<p>After a false start with a 12-bit SDR designed for the amateur community and interfaced with <a href="https://github.com/pothosware/SoapySDR">SoapySDR</a>, we used a professional <a href="https://www.crfs.com/hardware/rf-sensors">RFEye</a> receiver which aside from having superior measurement accuracy and sensitivity is a turnkey solution with a web API which we have integrated with our API<a href="https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/integrations/CRFS"> previously.</a></p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-3 is-cropped wp-block-gallery-12 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/11/coopers-hill-array.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="600" height="800" data-id="53779" src="https://cloudrf.com/wp-content/uploads/2025/11/coopers-hill-array.jpg" alt="" class="wp-image-53779" srcset="https://cloudrf.com/wp-content/uploads/2025/11/coopers-hill-array.jpg 600w, https://cloudrf.com/wp-content/uploads/2025/11/coopers-hill-array-225x300.jpg 225w, https://cloudrf.com/wp-content/uploads/2025/11/coopers-hill-array-416x555.jpg 416w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/11/IMG_3051.jpeg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="1024" height="613" data-id="53725" src="https://cloudrf.com/wp-content/uploads/2025/11/IMG_3051-1024x613.jpeg" alt="" class="wp-image-53725" srcset="https://cloudrf.com/wp-content/uploads/2025/11/IMG_3051-1024x613.jpeg 1024w, https://cloudrf.com/wp-content/uploads/2025/11/IMG_3051-300x180.jpeg 300w, https://cloudrf.com/wp-content/uploads/2025/11/IMG_3051-768x460.jpeg 768w, https://cloudrf.com/wp-content/uploads/2025/11/IMG_3051-416x249.jpeg 416w, https://cloudrf.com/wp-content/uploads/2025/11/IMG_3051.jpeg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/11/robinswood-array.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="768" height="1024" data-id="53782" src="https://cloudrf.com/wp-content/uploads/2025/11/robinswood-array-768x1024.jpg" alt="" class="wp-image-53782" srcset="https://cloudrf.com/wp-content/uploads/2025/11/robinswood-array-768x1024.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/11/robinswood-array-225x300.jpg 225w, https://cloudrf.com/wp-content/uploads/2025/11/robinswood-array-416x555.jpg 416w, https://cloudrf.com/wp-content/uploads/2025/11/robinswood-array.jpg 800w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://cloudrf.com/wp-content/uploads/2025/11/krakensdr-box.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="800" height="600" data-id="53783" src="https://cloudrf.com/wp-content/uploads/2025/11/krakensdr-box.jpg" alt="" class="wp-image-53783" srcset="https://cloudrf.com/wp-content/uploads/2025/11/krakensdr-box.jpg 800w, https://cloudrf.com/wp-content/uploads/2025/11/krakensdr-box-300x225.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/11/krakensdr-box-768x576.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/11/krakensdr-box-416x312.jpg 416w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/11/wet-laptop.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="800" height="600" data-id="53781" src="https://cloudrf.com/wp-content/uploads/2025/11/wet-laptop.jpg" alt="" class="wp-image-53781" srcset="https://cloudrf.com/wp-content/uploads/2025/11/wet-laptop.jpg 800w, https://cloudrf.com/wp-content/uploads/2025/11/wet-laptop-300x225.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/11/wet-laptop-768x576.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/11/wet-laptop-416x312.jpg 416w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/11/tablet-lob.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="800" height="600" data-id="53780" src="https://cloudrf.com/wp-content/uploads/2025/11/tablet-lob.jpg" alt="" class="wp-image-53780" srcset="https://cloudrf.com/wp-content/uploads/2025/11/tablet-lob.jpg 800w, https://cloudrf.com/wp-content/uploads/2025/11/tablet-lob-300x225.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/11/tablet-lob-768x576.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/11/tablet-lob-416x312.jpg 416w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">Field testing in the rain</figcaption></figure>



<p></p>



<h2 class="wp-block-heading">Test system</h2>



<p>Our test system grew in scope from a Kraken with a Pi to a network in a box with a bespoke management and signal logging interface. Key to this innovation was not creating a budget DF system which we needed to collect data but the employment of an <strong>edge modelling capability on a Raspberry Pi</strong> 5.</p>



<p>Our goal was to develop a hardware agnostic script which our customers could use to enhance their DF data.</p>



<h3 class="wp-block-heading">Hardware</h3>



<ul class="wp-block-list">
<li>The Line of Bearing came from a <a href="https://www.krakenrf.com/">KrakenSDR </a>with a circular 5 element array upon a 2m telescopic mast.</li>



<li>The processor was a <a href="https://thepihut.com/products/raspberry-pi-5">Raspberry Pi5</a> running our test software and <a href="https://cloudrf.com/soothsayer/">SOOTHSAYER</a> v1.10</li>



<li>The radio traffic was generated by a Tait DMR portable radio equipped with a programming cable connected to a Pi4.</li>



<li>The power measurements came from a CRFS <a href="https://www.crfs.com/hardware/rf-sensors/rfeye-node-40-8">RFEye</a> connected to an elevated monopole antenna.</li>



<li> A pair of <a href="https://meshtastic.org/docs/hardware/devices/seeed-studio/sensecap/card-tracker/">sensecap meshtastic</a> LoRa trackers were used for GPS tracking.</li>



<li>A laptop and tablet running ATAK were used to manage the system and observe the output as a KML.</li>
</ul>



<h3 class="wp-block-heading">Software</h3>



<p>To automate data collection, we developed test software to collect data from the SDR and DF receiver simultaneously and model them using our API. The DMR radio was configured to broadcast telemetry periodically which provided a regular target signal and the out-of-band meshtastic tracker provided a precise location within the trees.</p>



<p><em>We couldn&#8217;t use a second DMR radio to receive the telemetry as bi-directional radio traffic risked spoiling the data.</em></p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2025/11/pathloss-500px.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="500" height="500" src="https://cloudrf.com/wp-content/uploads/2025/11/pathloss-500px.jpg" alt="" class="wp-image-53805" style="width:416px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2025/11/pathloss-500px.jpg 500w, https://cloudrf.com/wp-content/uploads/2025/11/pathloss-500px-300x300.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/11/pathloss-500px-150x150.jpg 150w, https://cloudrf.com/wp-content/uploads/2025/11/pathloss-500px-324x324.jpg 324w, https://cloudrf.com/wp-content/uploads/2025/11/pathloss-500px-416x416.jpg 416w, https://cloudrf.com/wp-content/uploads/2025/11/pathloss-500px-100x100.jpg 100w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a></figure>
</div>


<p>The modelling came from <a href="https://cloudrf.com/soothsayer/">SOOTHSAYER</a> 1.10 which was installed upon the Raspberry Pi 5. This also provided the map tiles for a web based logging system which displayed live signal readings. Only one (CPU) API call was necessary per test cycle to generate a grey scale Path Loss map in decibels (dB) from which subsequent <strong>received power heat maps in decibel milliwatts (dBm) could be rapidly derived</strong> using a simple formula.</p>



<p>The path loss simulation needs refreshing if either the location, frequency or height change but is <strong>power agnostic</strong>. The client script queries this path loss map using known (or assumed) radio power levels. </p>



<p>Results are presented as a network KML which can be consumed on standards based geo-viewers like ATAK.</p>



<h3 class="wp-block-heading">Challenges</h3>



<p>We took our &#8216;Temu DF system&#8217; out twice but we couldn&#8217;t collect as much data as we wanted in the time available due to different constraints such as the weather or just running a small business. </p>



<p>A decision to avoid vehicles and buildings was made to avoid reflections which meant we had to run the equipment from travel batteries.  The power budget for the Pi5 (30W), KrakenSDR (12W) and RFEye (5W) was 47W which was more than we normally test with so it reduced our endurance.</p>



<p>We encountered local radio traffic on our licensed channels due to the choice of locations overlooking the city. This was easy to discount at the start of the test when our signal was obvious but became a nuisance as it faded into the trees and ultimately tainted our test data since we were triggering on power.</p>



<p></p>



<h3 class="wp-block-heading">Old data to the rescue</h3>



<p>After several frustrating tests where a lot of time was spent climbing local hills, calibrating DF and chasing false positives, we elected to reuse a rich data set from an <a href="https://cloudrf.com/antenna-drive-testing/">antenna field test last year</a> which included bi-directional links for a UHF radio on a moving vehicle.</p>



<p>This data was attractive as it included the uplink and a <strong>good variety of obstacles including houses, trees and hills</strong> as well as LOS links which are all useful for calibration. Before we could conduct DF analysis <strong>with the uplink</strong>, we calibrated the local clutter using the downlink, as we do routinely for calibration. This is a standard process we have developed a feature for in the <a href="https://cloudrf.com/documentation/05_web_interface_import_data.html#survey-data-and-calibration">web interface</a> as well as a supporting video <a href="https://www.youtube.com/watch?v=Ru12zgsjNjE">tutorial</a>. <em>Using our new 2m tree height data, we were able to improve upon <a href="https://cloudrf.com/antenna-drive-testing/">last year&#8217;s score.</a></em></p>



<p>As we did not collect lines of bearings during that model test, we had to simulate these using the known vehicle location for which we used 10 degrees of azimuth error.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2024/06/somerton_field-test1.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="1024" height="592" src="https://cloudrf.com/wp-content/uploads/2024/06/somerton_field-test1-1024x592.jpg" alt="" class="wp-image-34807" srcset="https://cloudrf.com/wp-content/uploads/2024/06/somerton_field-test1-1024x592.jpg 1024w, https://cloudrf.com/wp-content/uploads/2024/06/somerton_field-test1-300x173.jpg 300w, https://cloudrf.com/wp-content/uploads/2024/06/somerton_field-test1-768x444.jpg 768w, https://cloudrf.com/wp-content/uploads/2024/06/somerton_field-test1-416x240.jpg 416w, https://cloudrf.com/wp-content/uploads/2024/06/somerton_field-test1.jpg 1497w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Somerton UHF calibration, 2024</figcaption></figure>
</div>


<h3 class="wp-block-heading">Analysis technique</h3>



<p>To compute the effectiveness of this technique we calculated the area of the 10 degree arc where the vehicle could have been, with a radius of 6km representing the maximum range in this test.</p>



<p>This gave us a <strong>search area for a given LoB of 3,141,593 m2</strong>.</p>



<p>Our analysis script calculated a high resolution grey scale heatmap using SOOTHSAYER&#8217;s API which was referenced with collected power readings. To compare path loss (dB) with received power (dBm) we used the known radio power of 2W (33dBm) within a link budget formula to generate received power which was compared with measurements.</p>



<pre class="wp-block-code"><code>RSSI (dBm) = Radio Power (dBm) + Gain (dBi) - Path Loss (dB) - Losses (dB) + Receiver Gain (dBi) - Receiver Loss (dB)</code></pre>



<p>Where the difference between measurements and simulation was within tolerances of our colour key, we styled that pixel, otherwise we eliminate it from the search area and set it to transparent.</p>



<p>The result is an accuracy heatmap defined by a traffic light colour key. The levels we chose for our &#8220;known power&#8221; assessment were 1, 2 and 3dB. <strong>By showing 3dB of error we allow for receiver error</strong> and reduce the risk of false negatives where a matching location might be discounted.</p>



<p>When the radio power is known, we can produce more accurate results.</p>



<p><strong>When the radio power is unknown</strong> and the hardware/signal is known, we can simulate the minimum and maximum power to generate a dynamic range for the analysis. We used a low power value of 20dBm (0.1W) and a high power value of 36dBm (4W) for a possible <strong>power range of 16dB</strong> so our &#8220;low accuracy&#8221; colour key was 14/15/16dB.</p>



<p>We repeated the analysis with known and unknown power levels to compare accuracy.</p>



<p></p>



<h2 class="wp-block-heading">Results</h2>



<p>Analysis of data revealed the simulation heatmap significantly reduced the search area. As expected, knowing the radio power helps greatly but <strong>even with unknown power the search area was reduced to 32%</strong> of what it could have been for a conventional 6km arc.</p>



<blockquote class="wp-block-quote has-medium-font-size is-layout-flow wp-block-quote-is-layout-flow">
<p>Even when radio power is unknown, the search area is reduced significantly</p>
</blockquote>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><tbody><tr><td></td><td><strong>Known Power (2W)</strong></td><td><strong>Unknown Power (0.1 or 4W)</strong></td></tr><tr><td>Best case</td><td>0.01</td><td>0.03</td></tr><tr><td>Worst case</td><td>27.33</td><td>64.37</td></tr><tr><td>Average area</td><td><strong>7.93%</strong></td><td><strong>31.51%</strong></td></tr></tbody></table><figcaption class="wp-element-caption">Improved search area as a fraction of the original arc area in m2</figcaption></figure>



<p>The amount of benefit was relative to the terrain and clutter: For example, where there were no obstacles or a single consistent obstacle such as a forest, the result was a focused band of probability without any false positives.</p>



<figure class="wp-block-gallery aligncenter has-nested-images columns-2 is-cropped wp-block-gallery-13 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/11/df-LOS-1.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="899" height="505" data-id="53821" src="https://cloudrf.com/wp-content/uploads/2025/11/df-LOS-1.jpg" alt="" class="wp-image-53821" srcset="https://cloudrf.com/wp-content/uploads/2025/11/df-LOS-1.jpg 899w, https://cloudrf.com/wp-content/uploads/2025/11/df-LOS-1-300x169.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/11/df-LOS-1-768x431.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/11/df-LOS-1-416x234.jpg 416w" sizes="auto, (max-width: 899px) 100vw, 899px" /></a><figcaption class="wp-element-caption">LOS path showing tight band</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/11/df-NLOS-error-1.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="1024" height="576" data-id="53818" src="https://cloudrf.com/wp-content/uploads/2025/11/df-NLOS-error-1-1024x576.jpg" alt="" class="wp-image-53818" srcset="https://cloudrf.com/wp-content/uploads/2025/11/df-NLOS-error-1-1024x576.jpg 1024w, https://cloudrf.com/wp-content/uploads/2025/11/df-NLOS-error-1-300x169.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/11/df-NLOS-error-1-768x432.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/11/df-NLOS-error-1-416x234.jpg 416w, https://cloudrf.com/wp-content/uploads/2025/11/df-NLOS-error-1.jpg 1396w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">NLOS path showing large false positive</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/11/df-ridge.jpg" rel="lightbox[53534]"><img loading="lazy" decoding="async" width="646" height="1003" data-id="53816" src="https://cloudrf.com/wp-content/uploads/2025/11/df-ridge.jpg" alt="" class="wp-image-53816" srcset="https://cloudrf.com/wp-content/uploads/2025/11/df-ridge.jpg 646w, https://cloudrf.com/wp-content/uploads/2025/11/df-ridge-193x300.jpg 193w, https://cloudrf.com/wp-content/uploads/2025/11/df-ridge-416x646.jpg 416w" sizes="auto, (max-width: 646px) 100vw, 646px" /></a><figcaption class="wp-element-caption">Distant ridge at 6km showing a false positive behind a hill</figcaption></figure>
</figure>



<p></p>



<p>Where there were multiple obstacles such as a hill and a forest, false positives appeared which depending upon the ground could be discounted by an observer. This was to be expected given the pixel picking which is taking place.</p>



<p>A tight traffic light schema, with tuned clutter, was better than a loose schema with larger error margins. The reason being that it will show much less false positives.</p>



<h2 class="wp-block-heading">Video and KMZ</h2>



<p>This video is a sped-up compilation of time stamped KMZ layers viewed on Google Earth showing the vehicle&#8217;s route around the sensor. Where the vehicle disappears, no signal was detected. </p>



<p>The KMZ is available <a href="https://cloudrf.com/wp-content/uploads/2025/11/DF-analysis.kmz">here</a> and works best in Google Earth.</p>



<div class="wp-block-file"><a id="wp-block-file--media-9680c7bc-4606-4ed6-934b-f60a188e092c" href="https://cloudrf.com/wp-content/uploads/2025/11/DF-analysis.kmz">DF analysis</a><a href="https://cloudrf.com/wp-content/uploads/2025/11/DF-analysis.kmz" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-9680c7bc-4606-4ed6-934b-f60a188e092c">Download</a></div>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Enhancing Radio Direction Finding with RF simulation" width="980" height="551" src="https://www.youtube.com/embed/UWAJjmL0in0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption">Demo video of Enhanced DF</figcaption></figure>



<h2 class="wp-block-heading">Conclusion</h2>



<p>This testing proved that the effectiveness of a single LoB can be improved greatly with modelling but the concept is <strong>only an improvement if the analysis is automated</strong> as doing this manually would not be faster than a map study.</p>



<p>The reason this analysis isn&#8217;t performed regularly by DF systems today isn&#8217;t for a lack of LoBs and RSSI measurements but rather <strong>a lack of APIs</strong> with which to exploit this information. Current RF planning software exists as a user interface which requires manual, and skilled, operation. Furthermore, the capability often exists in the wrong location on a high performance desktop computer, disconnected from edge sensors.</p>



<p><strong>By putting this API at the edge</strong> on small board computers (SBCs) such as the Raspberry Pi 5 or Nvidia Jetson, a DF system&#8217;s effectiveness can be improved. Through open GIS standards like KML, the result can be consumed on open standard GIS systems like ATAK requiring minimal integration effort to add a powerful capability.</p>



<p>Looking forward, we are speaking with open minded vendors about adding this API to enhance existing systems.</p>



<p>If you&#8217;d like to improve your LoBs, get in touch with us or one of our <a href="https://cloudrf.com/soothsayer/">regional resellers</a>.</p>



<h2 class="wp-block-heading">Links</h2>



<p>SOOTHSAYER server: <a href="https://cloudrf.com/soothsayer">https://cloudrf.com/soothsayer</a></p>



<p>Kraken SDR: <a href="https://www.krakenrf.com/">https://www.krakenrf.com/</a></p>



<p>DF integration demo: <a href="https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/integrations/DF">https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/integrations/DF</a></p>



<p>API schema: <a href="https://cloudrf.com/documentation/developer ">https://cloudrf.com/documentation/developer </a></p>



<p></p>



<p></p>



<p></p>



<p></p>
<p>The post <a href="https://cloudrf.com/enhancing-radio-direction-finding-with-rf-simulation/">Enhancing Radio Direction Finding with RF simulation</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fast simulation calibration with Machine Learning</title>
		<link>https://cloudrf.com/fast-simulation-calibration-with-machine-learning/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Wed, 24 Sep 2025 20:58:22 +0000</pubDate>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Modelling]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=52237</guid>

					<description><![CDATA[<p>To Survey or Simulate Whether its survey drones, drive test vehicles or a police analyst with a backpack full of phones, the problem is the same: RF propagation surveys are very resource intensive. They&#8217;re more accurate than a simulation, but not more efficient. Survey data is typically a GPS log with signal metadata including a [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/fast-simulation-calibration-with-machine-learning/">Fast simulation calibration with Machine Learning</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading has-large-font-size">To Survey or Simulate</h2>



<p>Whether its survey drones, drive test vehicles or a police analyst with a backpack full of phones, the problem is the same: RF propagation surveys are <em>very</em> resource intensive. They&#8217;re <strong>more accurate than a simulation, but not more efficient.</strong></p>



<p>Survey data is typically a GPS log with signal metadata including a signal strength value. This can be different measurement units but the principle is the same. It is data which shows the signal at a given point.</p>



<p>Surveying is preferred for good reason by some industries, especially for <a href="https://www.college.police.uk/career-learning/courses/radio-frequency-propagation-survey-rfps-technician">evidential purposes</a> where the variables in simulation open the door to uncertainty which nobody wants in court. Another reason is legacy desktop simulation software is slow and often inaccurate, especially amongst clutter which is more complex than a topographical study.</p>



<p>For example, relying upon a high-low empirical model like Hata which pre-dates developments in clutter will get you ~8dB accuracy whilst calibrated survey equipment can get you ~2dB, or ~3dB for an app on a standard phone.</p>



<h2 class="wp-block-heading">Manual calibration</h2>



<p>Using survey data like the output of <a href="https://rantcell.com/">Rantcell&#8217;s survey app</a>, we can load this into our web interface to perform calibration manually. This process involves adjusting <strong>model and/or clutter settings</strong> until the error between the simulation and the measurements is as low as possible. It&#8217;s an efficient process as you can test thousands of points in a single API call but also repetitive, interface based and requires engineer input to adjust clutter values for example. You can see manual calibration in action <a href="https://www.youtube.com/watch?v=Ru12zgsjNjE">here.</a></p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://cloudrf.com/wp-content/uploads/2024/06/Europe-clutter-profile.png" rel="lightbox[52237]"><img loading="lazy" decoding="async" width="1024" height="636" src="https://cloudrf.com/wp-content/uploads/2024/06/Europe-clutter-profile-1024x636.png" alt="" class="wp-image-34879" style="width:652px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2024/06/Europe-clutter-profile-1024x636.png 1024w, https://cloudrf.com/wp-content/uploads/2024/06/Europe-clutter-profile-300x186.png 300w, https://cloudrf.com/wp-content/uploads/2024/06/Europe-clutter-profile-768x477.png 768w, https://cloudrf.com/wp-content/uploads/2024/06/Europe-clutter-profile-416x258.png 416w, https://cloudrf.com/wp-content/uploads/2024/06/Europe-clutter-profile.png 1048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>A good calibration would be <strong>below 8dB</strong>. For more on calibration of survey data, see one of our many <a href="https://cloudrf.com/accuracy">field test blogs.</a></p>



<p>Good survey data is thousands of points <strong>all around</strong> a site of interest. When we&#8217;re field testing, we choose our route to ensure we collect a diverse range of data.</p>



<h2 class="wp-block-heading">The Pizza Problem</h2>



<p>The pizza problem is when you only have a slice of data but need to infer the rest. This is very common in the real world where a customer may not be able to collect data all around a site for various reasons:</p>



<ul class="wp-block-list">
<li class="has-medium-font-size">Lack of time</li>



<li class="has-medium-font-size">Lack of access</li>



<li class="has-medium-font-size">Lack of resource</li>
</ul>



<p>This limited data is then used to estimate what the rest of the coverage looks like. For an omni-directional antenna, it&#8217;s a good assumption. For a directional antenna, it&#8217;s clearly less accurate but crucially, it is about making the best estimate using <em>available</em> data.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1.png" rel="lightbox[52237]"><img loading="lazy" decoding="async" width="800" height="800" src="https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1.png" alt="" class="wp-image-52262" style="width:294px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1.png 800w, https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1-300x300.png 300w, https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1-150x150.png 150w, https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1-768x768.png 768w, https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1-324x324.png 324w, https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1-416x416.png 416w, https://cloudrf.com/wp-content/uploads/2025/09/pizza-slice-1-100x100.png 100w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></figure>
</div>


<p>If you can get more measurements, then do it. If you don&#8217;t have the time/resource, then simulation using calibration offers the best compromise. After all a ~7dB accuracy prediction is much more useful than no coverage at all.</p>



<p></p>



<h2 class="wp-block-heading">A Machine Learning genetic algorithm</h2>



<p>Using a slice of data, we can employ a basic Machine Learning model which uses a genetic algorithm to optimise settings. It works by starting with a range of fixed inputs (tower frequency, location etc) and a range of variables (power, tree height, building thickness etc) which it uses to make pseudo-random requests to our <a href="https://cloudrf.com/documentation/developer/#/Create/area">Area API</a>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://cloudrf.com/wp-content/uploads/2025/09/auto-calib-script.jpg" rel="lightbox[52237]"><img loading="lazy" decoding="async" width="866" height="488" src="https://cloudrf.com/wp-content/uploads/2025/09/auto-calib-script.jpg" alt="" class="wp-image-52245" style="width:620px;height:auto" srcset="https://cloudrf.com/wp-content/uploads/2025/09/auto-calib-script.jpg 866w, https://cloudrf.com/wp-content/uploads/2025/09/auto-calib-script-300x169.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/09/auto-calib-script-768x433.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/09/auto-calib-script-416x234.jpg 416w" sizes="auto, (max-width: 866px) 100vw, 866px" /></a><figcaption class="wp-element-caption">Script parameters showing variables and their ranges</figcaption></figure>
</div>


<p>The responses are fetched as greyscale open standard GeoTIFF images which are analysed using the <a href="https://rasterio.readthedocs.io/en/stable/">rasterio </a>library against the survey measurements. The delta between points is recorded as both mean and root mean square error.</p>



<p>The RMSE error is the key figure which describes the error between two arrays of results. Achieving a low mean is easier to do by over-fitting a model, but lowering the RMSE is harder for a diverse environment as clutter must be tuned to allow for trees, buildings and open ground.  The script constantly updates a <a href="https://cloudrf.com/documentation/09_reference_data.html#custom-clutter">custom clutter profile</a> at the API with new values in between requests.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="has-normal-font-size"><em>Many tools won&#8217;t publish performance data as it would make it hard to justify their price tag.</em> <em>Some cannot do diffraction which disqualifies them for signals below 2GHz.</em></p>
</blockquote>



<p>The requests are scored individually using RMSE and ranked. The best scores from the generation are selected to breed the next generation and so on until the (user defined) limit is reached. Therefore, the process can be scaled to offer a quick result for a live map or a thorough result for enumeration of unknowns such as tower height, power or <strong>even tower location using a search box</strong>.</p>



<p>At the end of the process, the best values for the variables are shown which can either be used to build a custom clutter profile, as we do in the demo video, or scripted further to make a final layer for a third party interface.</p>



<h2 class="wp-block-heading">Demo video</h2>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Fast simulation calibration with Machine Learning: &quot;The pizza problem&quot;" width="980" height="551" src="https://www.youtube.com/embed/s2OmuE9Wx1I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p></p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Developments in data and performance, accelerated by GPUs, means accurate and fast simulation is more viable than ever. By being able to deliver this capability in seconds instead of hours, new integrations and capabilities are possible. Furthermore using a mature API, with <a href="https://github.com/Cloud-RF/CloudRF-API-clients/">public examples</a>, makes an MVP viable in days.</p>



<p>Using a <a href="https://cloudrf.com/soothsayer/">SOOTHSAYER server</a>, this can be done at the edge without internet access.</p>



<p>A few ideas for new integrations which can leverage this concept:</p>



<ul class="wp-block-list">
<li class="has-medium-font-size">A spectrum analyser with a living coverage map</li>



<li class="has-medium-font-size">A signal classifier which shows more than metadata</li>



<li class="has-medium-font-size">An app which shows the impact of antenna adjustments in real time</li>



<li class="has-medium-font-size">A robot which maintains a live coverage map which can inform route selection</li>



<li class="has-medium-font-size">An RFPS analyst can be freed up from walking around to do some analysis</li>
</ul>



<h2 class="wp-block-heading">Credits</h2>



<p>Thank you to <a href="https://rantcell.com/">Rantcell</a> for providing rich LTE drive test data and our resident Machine Learning guru, AppyBara, for developing our automatic calibration client. If you would like a copy get in touch.</p>



<p></p>
<p>The post <a href="https://cloudrf.com/fast-simulation-calibration-with-machine-learning/">Fast simulation calibration with Machine Learning</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SOOTHSAYER 1.10 released</title>
		<link>https://cloudrf.com/soothsayer-1-10-released/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Mon, 08 Sep 2025 12:42:37 +0000</pubDate>
				<category><![CDATA[Self-hosted]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=51798</guid>

					<description><![CDATA[<p>Our latest feature release for our self-hosted server is out now and majors on offline data and security hardening. It&#8217;s a release aimed at administrators with six months of CloudRF fixes and features including the noise layer. Offline data packs Since we released pre-built images with 1.9, the setup effort moved from the software installation [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/soothsayer-1-10-released/">SOOTHSAYER 1.10 released</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-medium-font-size">Our latest feature release for our self-hosted server is out now and majors on offline data and security hardening. It&#8217;s a release aimed at administrators with six months of CloudRF fixes and features including the noise layer.</p>



<h2 class="wp-block-heading">Offline data packs</h2>



<p>Since we released pre-built images with 1.9, the setup effort moved from the software installation to the <strong>data</strong>. SOOTHSAYER uses elevation, landcover and buildings data on the backend and map tiles for the web interface.</p>



<p>Some customers have the luxury of local GIS teams and tile servers and are able to provide their own data but for many, they need help with sourcing and preparing this data. This where our datapacks comes in.</p>



<p>A SOOTHSAYER data pack is a compressed archive available on our support portal which unpacks to the /data/ folder allowing users to easily install pre-prepared multi-layer data from CloudRF.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/09/offline_data.jpg" rel="lightbox[51798]"><img loading="lazy" decoding="async" width="1024" height="271" src="https://cloudrf.com/wp-content/uploads/2025/09/offline_data-1024x271.jpg" alt="" class="wp-image-51843" srcset="https://cloudrf.com/wp-content/uploads/2025/09/offline_data-1024x271.jpg 1024w, https://cloudrf.com/wp-content/uploads/2025/09/offline_data-300x79.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/09/offline_data-768x204.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/09/offline_data-416x110.jpg 416w, https://cloudrf.com/wp-content/uploads/2025/09/offline_data.jpg 1068w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Importing offline data via a script</figcaption></figure>
</div>


<h3 class="wp-block-heading">Ibiza is back</h3>



<p>Long time CloudRF users will recall we used to use the island of Ibiza as a start point and sandbox where users could evaluate the software at no cost. Now, data for the island is included to allow quality commissioning tests to take place. The data includes elevation, landcover, buildings and limited map tiles.</p>



<h2 class="wp-block-heading">Enterprise authentication</h2>



<p>When we implemented Active Directory previously, we hoped that the magic of standards, in this case Lightweight Directory Access Protocol (LDAP), would mean that this works with different servers. As it turned out, it only worked with Microsoft&#8217;s AD server and didn&#8217;t support groups. Some customers are using the open source alternative, FreeIPA, and all were making use of groups for Role Based Access Control (RBAC).</p>



<p>We&#8217;ve <strong>added support for FreeIPA, groups and Secure LDAP</strong> (ldaps) and provide verbose information in the web interface now to help admins quickly resolve issues which may arise with servers and permissions.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/09/ad_config.png" rel="lightbox[51798]"><img loading="lazy" decoding="async" width="1024" height="500" src="https://cloudrf.com/wp-content/uploads/2025/09/ad_config-1024x500.png" alt="" class="wp-image-51845" srcset="https://cloudrf.com/wp-content/uploads/2025/09/ad_config-1024x500.png 1024w, https://cloudrf.com/wp-content/uploads/2025/09/ad_config-300x147.png 300w, https://cloudrf.com/wp-content/uploads/2025/09/ad_config-768x375.png 768w, https://cloudrf.com/wp-content/uploads/2025/09/ad_config-416x203.png 416w, https://cloudrf.com/wp-content/uploads/2025/09/ad_config.png 1304w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p></p>



<h2 class="wp-block-heading">Security hardening</h2>



<p>SOOTHSAYER is a cut of the CloudRF software, minus commercial restrictions, which receives security testing from the internet every single day, and has done for over 12 years. This <strong>public testing</strong> gives us a significant level of data and stress testing to improve our API.</p>



<p>One such area is login security which we&#8217;ve improved <strong>using NIST-800-53 guidance at the application layer</strong> to automatically block brute force attacks and lockout accounts. <em>This functionality can also be implemented at the protocol layer with the web server along with rate limiting</em> <em>as we do on CloudRF.</em></p>



<p>We&#8217;ve taken the decision to remove unused third party features to <strong>reduce the attack surface</strong>, in this case the PGadmin web dashboard for administering the postgres database. This web app presented additional risk, confirmed by a<a href="https://www.cvedetails.com/cve/CVE-2025-2946/"> CVE</a> which appeared recently. Users who activated this optional component are advised to disable or upgrade it.</p>



<p>The postgres database can still be administered using third party clients by exposing its port within the docker compose file which should be protected with a firewall. By design, <strong>the database can not be accessed remotely</strong>. </p>



<h3 class="wp-block-heading">SBOM</h3>



<p>We&#8217;ve never been shy about showing off our software and it&#8217;s components. We ship a full manifest in an open SPDX JSON format to support risk assessments by smarter customers who make <strong>decisions with data not emotions</strong>. These tools are good but lack context and will report false positives for development libraries like Browserify and Cypress which are not used in production. If you have a query about a library in SOOTHSAYER, feel free to <a href="mailto:support@cloudrf.com">ask us</a>.</p>



<p></p>



<h3 class="wp-block-heading">Authentication endpoint</h3>



<p>The user interface authentication endpoint has moved from the user interface into the API following a refactor so what used to be /ui/auth? is now just /auth? with the same parameters. This trivial but significant change will affect users of the ATAK plugin who will need at least version 2.1 with this release which is detailed on the <a href="https://github.com/Cloud-RF/SOOTHSAYER-ATAK-plugin/releases/tag/v2.1">plugin release</a>.  The endpoint accepts a username and password and returns a UID and API key.</p>



<p></p>



<h2 class="wp-block-heading">Noise layer</h2>



<p>Building upon the <a href="https://cloudrf.com/documentation/developer/#/Manage/noiseCreate">noise API </a>we published, the user interface now has a noise layer which can be added to visualise the noise data from the database. The noise floor is visible within the tooltip and noise can be provided direct from cognitive radios, SDRs or spectrum monitoring systems. Several noise API clients are available on our Github page.</p>



<p>The reason for adding all these noise features will become apparent in time when RF heat-maps come alive instead of being frozen in time with an optimistic and common noise value across a city.</p>



<p><em>Noise is the biggest problem in spectrum management and if you ever find a hardware vendor who will admit this rather than sell you more radios (to compound the problem) stick with them.</em></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://cloudrf.com/wp-content/uploads/2025/09/noise_layer.jpg" rel="lightbox[51798]"><img loading="lazy" decoding="async" width="800" height="600" src="https://cloudrf.com/wp-content/uploads/2025/09/noise_layer.jpg" alt="" class="wp-image-51849" srcset="https://cloudrf.com/wp-content/uploads/2025/09/noise_layer.jpg 800w, https://cloudrf.com/wp-content/uploads/2025/09/noise_layer-300x225.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/09/noise_layer-768x576.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/09/noise_layer-416x312.jpg 416w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a><figcaption class="wp-element-caption">Noise layer in the user interface</figcaption></figure>
</div>


<h2 class="wp-block-heading">Compatibility Matrix</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Operating System</th><th>Architecture</th><th>Tested Docker Version</th><th>Tested Podman Version</th><th>Nvidia Driver</th></tr></thead><tbody><tr><td>JetPack 6 (Ubuntu 24.04)</td><td><code>arm64</code>&nbsp;(<code>aarch64</code>)</td><td>Docker&nbsp;<code>28.3.0</code>&nbsp;Docker Compose&nbsp;<code>2.37.3</code></td><td>&#8211;</td><td><code>540</code>&nbsp;<br>(CUDA&nbsp;<code>12.6</code>)</td></tr><tr><td>RHEL 9.6</td><td><code>amd64</code>&nbsp;(<code>x86_64</code>)</td><td>&#8211;</td><td>Podman&nbsp;<code>5.4.0</code>&nbsp;Podman-Compose&nbsp;<code>1.5.0</code></td><td><code>580</code>&nbsp;<br>(CUDA&nbsp;<code>13.0</code>)</td></tr><tr><td>Rocky 9.6</td><td><code>amd64</code>&nbsp;(<code>x86_64</code>)</td><td>Docker&nbsp;<code>28.3.3</code>&nbsp;Docker Compose&nbsp;<code>2.39.1</code></td><td>Podman&nbsp;<code>5.4.0</code>&nbsp;Podman-Compose&nbsp;<code>1.5.0</code></td><td><code>580</code>&nbsp;<br>(CUDA&nbsp;<code>13.0</code>)</td></tr><tr><td>Ubuntu 24.04</td><td><code>amd64</code>&nbsp;(<code>x86_64</code>)</td><td>Docker&nbsp;<code>28.3.3</code>&nbsp;Docker Compose&nbsp;<code>2.39.1</code></td><td>&#8211;</td><td><code>575</code>&nbsp;<br>(CUDA&nbsp;<code>12.9</code>)</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Change log</h2>



<ul class="wp-block-list">
<li>Deprecation: Removed pgAdmin (<code>/dbadmin</code>).</li>



<li>Deprecation: Removed&nbsp;<code>cniVersion</code>&nbsp;host change for Podman versions no longer supported.</li>



<li>Deprecation: Removed Cesium ion (3D terrain and buildings &amp; Bing map layer) from the UI due to change in TOS.</li>



<li>Feature: Official support for ARM-64 architecture.</li>



<li>Feature: Added&nbsp;<code>install-data-pack.sh</code>&nbsp;script to allow installation of provided data packages.</li>



<li>Feature: Added LDAP FreeIPA support.</li>



<li>Feature: Added LDAP groups support.</li>



<li>Feature: Added LDAP TLS option.</li>



<li>Feature: Brute force protection for user and admin accounts</li>



<li>Feature: Tile cache for the world to zoom 6 and Ibiza to zoom 14 with local DEM for offline tests/demos.</li>



<li>Feature: Added&nbsp;<code>PHASE_TRACING_ENABLED</code>&nbsp;option to enable/disable the Phase Tracing engine and interface.</li>



<li>Feature: Added&nbsp;<code>USER_INTERFACES_ENABLED</code>&nbsp;option to enable/disable user interfaces.</li>



<li>Feature: Added&nbsp;<code>conf.d</code>&nbsp;directory within&nbsp;<code>config/nginx-frontend</code>&nbsp;to allow extensions of the frontend Nginx container.</li>



<li>Feature: Added minimum version checking of&nbsp;<code>podman</code>&nbsp;and&nbsp;<code>podman-compose</code>&nbsp;during&nbsp;<code>install.sh</code>&nbsp;and&nbsp;<code>update.sh</code>.</li>



<li>Feature: Prompt to allow host&nbsp;<code>vm.overcommit_memory</code>&nbsp;when using RHEL with Docker to allow GPU pass-through.</li>



<li>Feature: Admin dashboard login uses same interface as user login.</li>



<li>Feature: Throw warning in the UI when accessing from address different to&nbsp;<code>SERVICE_FQDN</code>&nbsp;value.</li>



<li>Feature: Added&nbsp;<code>maps.cloudrf.com</code>&nbsp;contours cache to&nbsp;<code>mapproxy.yaml</code>.</li>



<li>Feature: Running SOOTHSAYER&nbsp;<code>update.sh</code>&nbsp;will populate&nbsp;<code>manual_update_steps.txt</code>&nbsp;with any manual stages necessary after an update.</li>



<li>Feature: Added&nbsp;<code>system-details.sh</code>&nbsp;script.</li>



<li>Feature: Added&nbsp;<code>MAP_PROXY_CONFIG</code>&nbsp;value to&nbsp;<code>.env</code>&nbsp;to allow override of MapProxy in online and offline modes.</li>



<li>Feature: SSL certificate is now automatically respun when the&nbsp;<code>SERVICE_FQDN</code>&nbsp;value is updated and contains a SubjectAltName</li>



<li>Feature: UI uses MapProxy cache by default to address the blue map FAQ</li>



<li>Feature: Automatic configuration of online and offline mode during&nbsp;<code>install.sh</code>.</li>



<li>Fix: Get true users IP address in the logs of&nbsp;<code>nginx-frontend</code>&nbsp;container.</li>



<li>Fix: Build failures when using Podman with some RHEL-based operating systems.</li>



<li>Fix:&nbsp;<code>UPLOAD_MAX_FILESIZE_MB</code>&nbsp;is not persistent in some long-running environments.</li>



<li>Fix: Some scripts contain unsupported Podman flags such as project directory</li>



<li>Fix: Upstream MapProxy tile server fails occassionally when requesting via HTTPS.</li>



<li>Fix: GPU containers are not starting on some versions of Podman due to lack of support for compose profiles</li>



<li>Fix:&nbsp;<code>watch.sh</code>&nbsp;script is not working on Podman.</li>



<li>Fix: GPU containers incorrectly showing as offline on Podman.</li>



<li>Fix: Password validation during&nbsp;<code>install.sh</code>&nbsp;was incorrectly checking minimum length</li>



<li>Update: API&nbsp;<code>3.28.0</code>, UI&nbsp;<code>3.20.0</code>, 3D UI&nbsp;<code>1.1.1</code>, CPU Engine&nbsp;<code>1.17.1</code>, GPU Engine&nbsp;<code>1.13.1</code>, 3D Engine&nbsp;<code>0.2.3</code>, AntennaWizard&nbsp;<code>2.1.0</code>, Analysis Utilities (QRM2, SuperTool &amp; NoiseGen)&nbsp;<code>1.1.0</code>, Copy Protection&nbsp;<code>2.0.0</code>, Documentation&nbsp;<code>2.10.0</code>.</li>



<li>Update: CUDA&nbsp;<code>12.1.0</code>&nbsp;container image deprecated.</li>



<li>Update: MapProxy container updated to&nbsp;<code>debian:13.0</code>.</li>
</ul>



<h3 class="wp-block-heading">API</h3>



<h4 class="wp-block-heading">3.28.0 (2025-09-04)</h4>



<ul class="wp-block-list">
<li>Feature: Improved documentation on SOOTHSAYER DEM Manager.</li>



<li>Feature: Added support for&nbsp;<code>frequency</code>&nbsp;filter on&nbsp;<code>/noise</code>&nbsp;endpoint.</li>



<li>Feature: Default location updated to Ibiza.</li>



<li>Feature: SOOTHSAYER system status page now shows services which are online but require a license.</li>



<li>Fix: Public link export is returning a HTTP 500.</li>



<li>Fix: SOOTHSAYER system status page is slow to load in offline environments.</li>



<li>Fix: Increased maximum timeout for&nbsp;<code>/merge</code>&nbsp;and&nbsp;<code>/mesh</code>&nbsp;to be able to handle larger requests.</li>



<li>Fix: Refreshed the warning message when clicking “Reset Database” in the administrator dashboard for SOOTHSAYER.</li>



<li>Fix: Antenna favourite button is not obvious in the antenna manager.</li>
</ul>



<h4 class="wp-block-heading">3.27.0 (2025-07-31)</h4>



<ul class="wp-block-list">
<li>Feature: Terrain map changed to use OSM in dark mode.</li>



<li>Feature: More LDAP configuration options for SOOTHSAYER, including support for Free IPA.</li>



<li>Feature: SOOTHSAYER administration dashboard no login uses HTTP basic authentication.</li>



<li>Feature: added&nbsp;<code>/noise</code>&nbsp;endpoint to allow querying noise in its raw format.</li>



<li>Feature: Added&nbsp;<code>name</code>&nbsp;and&nbsp;<code>group_name</code>&nbsp;arguments when using&nbsp;<code>/noise/create</code>.</li>



<li>Feature: Added&nbsp;<code>group_name</code>&nbsp;argument support when using&nbsp;<code>/noise/get</code>&nbsp;and&nbsp;<code>/noise/clear</code>.</li>



<li>Fix: Noise data no longer expires. Instead it should be deleted if it is outdated.</li>



<li>Fix: Added maximum limit of 1000 entries when submitting with&nbsp;<code>/noise/create</code>.</li>



<li>Fix: Improved file efficiencies when deleting entire archive.</li>



<li>Fix: Best Server with multi-azimuth antenna results in HTTP 500.</li>



<li>Fix: Incorrect&nbsp;<code>mp</code>&nbsp;value being returned from&nbsp;<code>preferences.php</code>&nbsp;when used against SOOTHSAYER.</li>



<li>Fix:&nbsp;<code>/points</code>&nbsp;request with a point too close to a receiver results in a HTTP 500.</li>



<li>Fix: Return error if using&nbsp;<code>bounds</code>&nbsp;with a radius which does not cover the bounds area.</li>



<li>Fix: Exporting public link for a MANET network has a single transmitter in the wrong location.</li>
</ul>



<h4 class="wp-block-heading">3.26.0 (2025-07-03)</h4>



<ul class="wp-block-list">
<li>Feature: Added output-bounded CPU calculations.</li>



<li>Improvement: Engine attenuation/diffraction logic optimised for higher accuracy &amp; GPU speed</li>



<li>Fix: Saving a MANET network fails with multi-azimuth.</li>



<li>Fix: Antenna search is case-sensitive.</li>



<li>Fix: Clutter profiles with spaces and underscores not used in calculations.</li>



<li>Fix: Saving a colour schema with a name of an integer breaks the colour palette manager.</li>



<li>Fix: 3D calculations incorrectly proceeding when model metadata is missing from the database.</li>



<li>Fix: Deleting all data results in a failed rate limit check.</li>
</ul>



<h4 class="wp-block-heading">3.25.0 (2025-05-22)</h4>



<ul class="wp-block-list">
<li>Feature: Noise maps for Area, path, points, multisite APIs. Use noise:database to activate</li>



<li>Fix: Retrieving preferences not honouring values which are more recent.</li>
</ul>



<h4 class="wp-block-heading">3.24.0 (2025-05-20)</h4>



<ul class="wp-block-list">
<li>Improvement: Landcover can be used out to 100km</li>



<li>Improvement: Landcover can be used up to 60m resolution</li>



<li>Improvement: SHP file max size doubled to support high resolution calcs</li>
</ul>



<h3 class="wp-block-heading">UI</h3>



<h4 class="wp-block-heading">3.20.0 (2025-09-04)</h4>



<ul class="wp-block-list">
<li>Feature: Restyle login page.</li>



<li>Feature: Import noise data.</li>



<li>Feature: Added an error page for SOOTHSAYER when request host and configured FQDN do not match.</li>



<li>Feature: Default location updated to Ibiza.</li>



<li>Feature: Local mapping server added automatically to SOOTHSAYER UI.</li>



<li>Fix: Coverage analysis not importing data.</li>



<li>Fix: Saving template fails for environments without a GPU.</li>



<li>Fix: Imported MANET nodes not rendering immediately.</li>



<li>Fix: API requests to&nbsp;<code>progress</code>&nbsp;failing authentication.</li>



<li>Fix: “Stop Processing” button for “Automatic Processing” gets disabled for all instances after pressing one time.</li>
</ul>



<h4 class="wp-block-heading">3.19.0 (2025-07-15)</h4>



<ul class="wp-block-list">
<li>Enhancement: Rotate antenna template plots to match custom plot behaviour</li>
</ul>



<h4 class="wp-block-heading">3.18.0 (2025-07-07)</h4>



<ul class="wp-block-list">
<li>Feature: Non-custom antenna plots are updated to show tilt/azimuth.</li>



<li>Feature: Polygon bounds for area, MANET and BSA calculations.</li>



<li>Fix: Clutter profile reset after using the custom clutter menu.</li>



<li>Fix: Importing MANET results in immediate evalution, rather at the point of confirmation.</li>
</ul>



<h4 class="wp-block-heading">3.17.0 (2025-06-19)</h4>



<ul class="wp-block-list">
<li>Feature: Live noise layer using the noise API</li>



<li>Feature: Live noise reported on tooltip when data available</li>



<li>Enhancement: Updating map selection. Default is contours from Thunderforest via maps.cloudrf.com</li>



<li>Enhancement: Default thresholds when changing bandwidth updated to 5dBuv, 5dB SNR or noise +20 dBm</li>



<li>Enhancement: Local tile server available as a custom layer vs a separate layer</li>



<li>Fix: Loading preferences not adjusting receiver sensitivity slider, causing it to sometimes become out of sync with the true sensitivity value.</li>



<li>Fix: Popup title during validation failure is not set, causing stale title to be used.</li>
</ul>



<h4 class="wp-block-heading">3.16.4 (2025-05-21)</h4>



<ul class="wp-block-list">
<li>Fix: Adjusting bandwidth changed the noise floor in database mode.</li>



<li>Fix: Hidden MANET markers can be moved without triggering API calls</li>



<li>Fix: Marker is changed to Tx when clearing layers in route analysis or multi-point links mode.</li>



<li>Fix: MANET tool SNR links are wrong way around.</li>
</ul>



<h4 class="wp-block-heading">3.16.3 (2025-04-16)</h4>



<ul class="wp-block-list">
<li>Fix: HF Skywave endpoint used for other propagation models after switching back.</li>
</ul>



<h3 class="wp-block-heading">3D UI</h3>



<h4 class="wp-block-heading">1.1.1 (2025-07-30)</h4>



<ul class="wp-block-list">
<li>Fix: Update authentication mechanism to make use of API&nbsp;<code>/auth</code>&nbsp;endpoint.</li>
</ul>



<h3 class="wp-block-heading">CPU Engine</h3>



<h4 class="wp-block-heading">1.17.1 &#8211; 2025-08-08</h4>



<ul class="wp-block-list">
<li>Feature: Added output-bounded calculations.</li>



<li>Feature: Antenna logic moved into shared library.</li>



<li>Fix: Improved accuracy of downtilt angle for path calls where the receiver is above the transmitter.</li>
</ul>



<h4 class="wp-block-heading">1.17.0 &#8211; 2025-06-12</h4>



<ul class="wp-block-list">
<li>Feature: Added new clutter diffraction/attenuation logic.</li>



<li>Improvement: added support for noise geotiffs.</li>
</ul>



<h3 class="wp-block-heading">GPU Engine</h3>



<h4 class="wp-block-heading">1.13.1 (2025-08-08)</h4>



<ul class="wp-block-list">
<li>Feature: Antenna logic moved into shared library.</li>



<li>Fix: Improved accuracy of downtilt angle for path calls where the receiver is above the transmitter.</li>
</ul>



<h4 class="wp-block-heading">1.13.0 (2025-06-12)</h4>



<ul class="wp-block-list">
<li>Feature: Added new clutter diffraction/attenuation logic.</li>



<li>Improvement: Increased performance.</li>



<li>Improvement: added support for noise geotiffs.</li>
</ul>



<h3 class="wp-block-heading">3D Engine</h3>



<h4 class="wp-block-heading">0.2.3 (2025-09-03)</h4>



<ul class="wp-block-list">
<li>Change: Antenna logic moved into shared library.</li>
</ul>



<h4 class="wp-block-heading">0.2.2 (2025-04-16)</h4>



<ul class="wp-block-list">
<li>Fix: Stability improvement to core algorithm</li>
</ul>



<p></p>
<p>The post <a href="https://cloudrf.com/soothsayer-1-10-released/">SOOTHSAYER 1.10 released</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Live RF coverage mapping with ATAK</title>
		<link>https://cloudrf.com/live-rf-coverage-mapping-with-atak/</link>
		
		<dc:creator><![CDATA[CloudRF]]></dc:creator>
		<pubDate>Thu, 07 Aug 2025 15:07:33 +0000</pubDate>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Modelling]]></category>
		<category><![CDATA[Self-hosted]]></category>
		<category><![CDATA[ATAK]]></category>
		<guid isPermaLink="false">https://cloudrf.com/?p=50867</guid>

					<description><![CDATA[<p>Highlights Background Three years ago we developed a &#8220;live&#8221; simulation capability using location-aware MANET radios which we described as dynamic radio planning which fused real and planned radio positions. This feature required a third party hardware API with restrictive terms, common in commercial radio, so it exists as a video demo only. We&#8217;ve refreshed and [&#8230;]</p>
<p>The post <a href="https://cloudrf.com/live-rf-coverage-mapping-with-atak/">Live RF coverage mapping with ATAK</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Highlights</h2>



<ul class="wp-block-list">
<li class="has-medium-font-size">Dynamic radio coverage visualisation</li>



<li class="has-medium-font-size">Vendor agnostic radio integration via ATAK</li>



<li class="has-medium-font-size">450 heat-maps delivered without issue</li>



<li class="has-medium-font-size">Sub-second computation via Cardshark computer</li>
</ul>



<h2 class="wp-block-heading">Background</h2>



<p>Three years ago we developed a &#8220;live&#8221; simulation capability using location-aware MANET radios which we described as <a href="https://cloudrf.com/dynamic-network-planning-with-hardware-apis/">dynamic radio planning</a> which fused real and planned radio positions. This feature required a third party hardware API with restrictive terms, common in commercial radio, so it exists as a video <a href="https://www.youtube.com/watch?v=pXDcHE-3epo">demo only</a>.</p>



<p>We&#8217;ve refreshed and field tested this concept, using modern edge compute and open standards.</p>



<h2 class="wp-block-heading">ATAK as the common API</h2>



<p>Using ATAK as a proprietary API broker, we are now able to do the same via our plugin. The technology agnostic capability <strong>can be used with any radio, vehicle or marker on the map</strong> and by starting with an open information standard, <a href="https://apps.dtic.mil/sti/pdfs/ADA637348.pdf">Cursor-on-Target (CoT)</a>, it eliminates the commercial friction with NDAs, proprietary APIs and different vendors. </p>



<p>Open standards unlock low-cost cross-vendor interoperability in a way proprietary standards never can. For example, two <strong>vendors can achieve compatibility without knowledge of each other&#8217;s products</strong>. Better still, compatibility with future products, not yet deployed, can be assured.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://cloudrf.com/wp-content/uploads/2025/08/soothsayer-atak-coopt-1.jpg" rel="lightbox[50867]"><img loading="lazy" decoding="async" width="1024" height="576" src="https://cloudrf.com/wp-content/uploads/2025/08/soothsayer-atak-coopt-1-1024x576.jpg" alt="" class="wp-image-50900" srcset="https://cloudrf.com/wp-content/uploads/2025/08/soothsayer-atak-coopt-1-1024x576.jpg 1024w, https://cloudrf.com/wp-content/uploads/2025/08/soothsayer-atak-coopt-1-300x169.jpg 300w, https://cloudrf.com/wp-content/uploads/2025/08/soothsayer-atak-coopt-1-768x432.jpg 768w, https://cloudrf.com/wp-content/uploads/2025/08/soothsayer-atak-coopt-1-416x234.jpg 416w, https://cloudrf.com/wp-content/uploads/2025/08/soothsayer-atak-coopt-1.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Mapping live radios in the SOOTHSAYER ATAK plugin</figcaption></figure>
</div>


<h2 class="wp-block-heading">The field test </h2>



<p>We picked a local Forest to field test this concept using a <a href="https://www.carnegierobotics.com/library/cardshark/Cardshark-Data-Sheet.pdf">Cardshark</a> computer which is a rugged Jetson Orin with a 1024 core GPU. We need the GPU to efficiently compute our &#8216;<a href="https://cloudrf.com/documentation/developer/#/Create/multisite">Multisite</a>&#8216; network heat maps. The &#8216;<a href="https://cloudrf.com/documentation/developer/#/Create/points">Points</a>&#8216; links are CPU powered. We&#8217;ve worked with Jetsons on <a href="https://cloudrf.com/rf-planning-at-the-edge/">previous field tests </a>but under manual control. The automation we&#8217;ve added here makes periodic API requests and places the computer under a sustained load.</p>



<p>The radio network was a four Tait 9300 DMR portables on a 2W channel, with one donor radio connected via a USB programming cable. GPS locations were fetched using our <a href="https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/integrations/Tait">Tait script</a> which outputs CoT broadcasts to make them appear (and move) upon the map.</p>



<p>The testing went well and produced 450 heat-maps to validate both the concept and the computer. Crucially, our 9Ah battery depleted only by 25% during 2 hours of intensive testing. Our conclusion is that with a reasonable load and refresh rate this edge capability can be scaled to run all day, <a href="https://cloudrf.com/rf-planning-at-the-edge/">as we found in Scotland</a> earlier this year.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Live RF coverage mapping with ATAK" width="980" height="551" src="https://www.youtube.com/embed/3H3qRLd-6qk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption">Live RF coverage mapping with ATAK</figcaption></figure>



<h3 class="wp-block-heading">Speed test!</h3>



<p>Five years ago we asked for the ATAK KML refresh rate to be lowered to enable a <a href="https://www.youtube.com/watch?v=3EUfElXitGM">&#8220;follow me&#8221; demo we published</a> and our understanding is it was capped by design at 10s (compared with 1s for Google Earth) due to a concern over excessive bandwidth which was understandable &#8211; at the time. A lot has changed in five years of software and radios and now we&#8217;re doing the compute locally, this concern is obsolete.</p>



<p>Our GPU engine can model a heatmap in under a second so we bypassed the network KML functionality (which is still a valid way of refreshing heatmaps on ATAK as <a href="https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/integrations/Tait">our Tait plugin does</a>) and implemented our own refresh system, designed for fast moving data. During our speed test, we refreshed the heat-map every 5s which both ATAK and the Cardshark handled comfortably. Logs showed each simulation took under a second with another second for pre/post processing and another for communication. The points requests take 150ms and are called for each radio so four radios would be 600ms, excluding communication.</p>



<h3 class="wp-block-heading">Issues identified</h3>



<p>We identified issues relating to USB tethering which weren&#8217;t apparent in the office: The Cardshark does not have WiFi which we employed for <a href="https://www.youtube.com/watch?v=F6-FsCrehJE">previous field tests </a>so this made communication more challenging.</p>



<p>We were able to workaround this for the test with a WiFi hotspot to fool the plugin into thinking it was on a network.  As we were using dynamic IP addresses provided by the phone and the Cardshark has no interface, we ex-filtrated the IP information we needed via ATAK which is why there is a IP-address-callsign visible in the video.</p>



<p>The Cardshark is a fanless design which requires airflow to cool it. We deployed it in a bum bag / fanny pack where it unsurprisingly became hot during intensive use but still functioned well. For enduring use, this would need to be mounted externally and the workload throttled accordingly.</p>



<p>Our radio template needed work as only afterwards did we note we did not set the DMR template&#8217;s noise floor which defaulted to -133dBm based upon the narrow 12.5KHz bandwidth. This was why there were blue 50dB links visible in the video when in reality the noise floor was likely closer to -113dBm and these links were a more realistic 30dB SNR. <em>This issue did not affect the heatmap which used received power units and we&#8217;re satisfied from <a href="https://cloudrf.com/improving-accuracy-in-the-trees/">calibrating with large data sets</a> that the modelling is accurate.</em></p>



<h2 class="wp-block-heading">Credits</h2>



<p>A special thanks to <a href="https://getgotak.com/">GoTak LLC</a> who helped us develop and test the live Co-Opt feature in ATAK and <a href="https://carnegierobotics.com/">Carnegie Robotics</a> for producing the Cardshark and providing timely support.</p>



<h2 class="wp-block-heading">Links</h2>



<p>SOOTHSAYER self hosted server: <a href="https://cloudrf.com/soothsayer">https://cloudrf.com/soothsayer</a></p>



<p>Cardshark computer: <a href="https://carnegierobotics.com/cardshark">https://carnegierobotics.com/cardshark</a></p>



<p>SOOTHSAYER ATAK plugin: <a href="https://github.com/Cloud-RF/SOOTHSAYER-ATAK-plugin">https://github.com/Cloud-RF/SOOTHSAYER-ATAK-plugin</a></p>



<p>Tait ATAK plugin: <a href="https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/integrations/Tait">https://github.com/Cloud-RF/CloudRF-API-clients/tree/master/integrations/Tait</a></p>



<p>Fanny pack: <a href="https://www.osprey.com/gb/osprey-seral-7-s23?size=One+Size&amp;colour=Black">https://www.osprey.com/gb/osprey-seral-7-s23?size=One+Size&amp;colour=Black</a></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>
<p>The post <a href="https://cloudrf.com/live-rf-coverage-mapping-with-atak/">Live RF coverage mapping with ATAK</a> appeared first on <a href="https://cloudrf.com">CloudRF</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
