HeavyRF Table Functions
The HeavyRF package provides the following system table functions:
tf_rf_prop_max_signal (Directional Antennas and Terrain Attenuation)
Taking a set of point elevations and a set of signal source locations as input, tf_rf_prop_max_signal executes line-of-sight 2.5D RF signal propagation from the provided sources over a binned 2.5D elevation grid derived from the provided terarin locations, calculating the max signal in dBm at each grid cell, using the formula for free-space power loss. The terrain should contain columns for ground elevation, terrain elevation (which should be greater than or equal to the ground elevation height), and terrain attenuation in dbm per meter, specifying the degree to which signal will be attenuated if it passes between the terrain and ground elevations (i.e. through a tree or building). The RF source ID contributing the strongest signal is also outputted.
When geographic_coords is set to true, x and y input coordinates are assumed to be lon/lat degrees. A best-fit conversion to a meters coordinate system is executed using the change in meters per lon/lat degree at the centroid of the input terrain, using the haversine distance formula. For convenience and optimal performance, tf_rf_prop_max_signal enables filter push-down by default, such that filters on the outputs rf_source_id, x, y, and elevation_amsl_meters are pushed down to the respective inputs in the rf_sources and terrain_elevations Cursor subqueries.
Input Arguments
Output Columns
Example

tf_rf_prop_max_signal (Isotropic Antennas)
Taking a set of point elevations and a set of signal source locations as input, tf_rf_prop_max_signal executes line-of-sight 2.5D RF signal propagation from the provided sources over a binned 2.5D elevation grid derived from the provided point locations, calculating the max signal in dBm at each grid cell, using the formula for free-space power loss. The RF source ID contributing the strongest signal is also outputted.
For the short version, where geographic_coords defaults to true, or for the long version where geographic_coords is explicitly set to true, x and y input coordinates are assumed to be lon/lat degrees. A best-fit conversion to a meters coordinate system is executed using the change in meters per lon/lat degree at the centroid of the input terrain, using the haversine distance formula. For convenience and optimal performance, tf_rf_prop_max_signal enables filter push-down by default, such that filters on the outputs rf_source_id, x, y, and elevation_amsl_meters are pushed down to the respective inputs in the rf_sources and terrain_elevations cursor subqueries.
Short Version
Long Version
Input Arguments
Outputs
A table of grid cells of width and height bin_dim_meters along with the maximum signal strength from any one repeater at that cell, and the ID of the repeater with the strongest signal.
tf_rf_prop
Used for generating top-k signals where ‘k’ represents the maximum number of antennas to consider at each geographic location. The full relevant parameter name is strongest_k_sources_per_terrain_bin. For example, if k is set to 3, the function will return up to three overlapping antenna signals based on their strength. In that case, if only 2 signals are present, they will be returned. and if 5 signals are actually present, only the strongest 3 will be recorded.
This version of the RF function can be used in optimizing antenna placements use cases or to minimize interference. For example, you might simulate repeater antenna placements on every lampost across an area, but then only plan to keep the top-performing ones. By allowing overlaps in the initial simulation, you avoid introducing coverage gaps when dropping out antennas, while also avoiding the requirement of multiple simulations.
Short Version
Long Version
Input Arguments
Outputs
A table of grid cells of width and height bin_dim_meters along with the maximum signal strength from any one repeater at that cell, and the ID of the repeater with the strongest signal.