Analyzing signal coverage with line-of-sight calculation and path loss estimation
Last updated
Last updated
In the telecommunications industry, coverage analysis is a fundamental process for assessing the geographical areas where a network's signal is available and determining its quality. Effective signal coverage analysis ensures that telecommunication providers can deliver consistent, high-quality service to their customers, identify areas needing improvement, and strategically plan for network expansion.
This guide shows how to use CARTO telco functionality in the Analytics Toolbox for BigQuery for signal coverage analysis. Specifically, we will cover:
Running path profile analysis to evaluate the line-of-sight and potential obstructions between two points.
Estimating the path loss of a signal as it propagates through an environment using the Close In and Extended Hata models.
By the end of this guide, you will have computed the line-of-sight for a selection of transmitters in an area of interest and estimated the path loss of their corresponding signals.
To run this analysis, we need the locations of the base stations (i.e. the transmitters, or Tx), the locations of the receivers (Rx), and one or more sources of clutter data. Clutter data includes information about physical obstructions or environmental features that can affect wireless signal propagation. This data can be visualized on the different layers in the map below.
For the transmitters, we randomly selected three locations in London (see the Transmitters (Tx) layer in the map above). We need to specify:
id
: A unique ID
height
: The height above the ground in meters
geom
: The point location of the transmitter
buffer
: The radius in meters that determines the area around each transmitter that will be considered for the line-of-sight calculation
Data available at
cartobq.docs.prop_london_tx_locations
.
Receivers must also be indicated as point geometries. For every receiver, we need to specify:
id
: A unique ID
geom
: The point location of the receiver
height
: The height above the ground in meters
We have the option of informing only a few specific point locations, but typically, we will be interested in computing the line-of-sight for an area of interest around transmitters, i.e., in a polygon geometry. To achieve this, we first need to discretize our area of interest. We strongly recommend polyfilling the area of interest with spatial indexes, such as Quadbins, to accomplish this. Spatial indexes allow for the efficient management of large datasets, which is essential for a high-resolution line-of-sight calculation.
For our area of interest, we selected a polygon in London containing the three transmitters (see the Receivers (Rx) layer in the map above). To discretize this area, we polyfill our area of interest using Quadbin zoom 25 (around 1 sqm grid cells) to achieve decent granularity. This can be easily done using the QUADBIN_POLYFILL_MODE
function available in CARTO Analytics Toolbox.
Note that our area of interest has to be large enough to contain the 500-meter buffers around transmitters that we specified before.
Data available at
cartobq.docs.prop_london_rx_locations
.
We can use different sources of clutter data, such as buildings, vegetation, or terrain height. This data can be in vector or raster format, and there are two separate procedures for each type for calculating line-of-sight, as shown in the corresponding section. In this example, we will test both the vector and raster procedures.
For vector data, we will use:
Building footprints Source: Overture Global Buildings, a public and global dataset available in the CARTO data catalog.
Terrain height Source: CARTO Spatial Features Quadbin resolution 18 for UK, available in the CARTO data catalog. A public version of this dataset is available in resolution 15.
Samples of the two data sources have been made available for reproducibility at
cartobq.docs.prop_london_buildings_sample_overture
andcartobq.docs.prop_elevation_spatialfeatures_gbr_quadgrid18_sample
.
For raster data, we will use LIDAR digital surface (DSM) and digital terrain (DTM) data at 1 m resolution made publicly available by the Department of Environment, Food and Rural Affairs. DSM is the model that captures the natural and built features on the Earth’s surface. It contains the height - elevation considering the buildings, trees, and any other structure that exists. DTM is sort of a smoothed version of DSM, where non-ground points such as buildings and trees have been filtered out.
We combined the two models to create a canopy height model as CHM = DSM - DTM. The CHM and DTM were uploaded into BigQuery using the CARTO raster loader.
Raster data has been made available in BigQuery at
cartobq.docs.prop_london_dtm_cog
(digital terrain) andcartobq.docs.prop_london_canopy_cog
(canopy height model).
Once we have all our data ready, we can proceed with path profile analysis. We will first demonstrate how to perform this analysis using vector data, followed by raster data.
To calculate the line-of-sight of the three transmitters in a 500-m buffer around them, we use the TELCO_PATH_PROFILE
procedure that takes as input:
The query or fully qualified name of the table containing the transmitters' locations. As stated above, for each transmitter we need a unique identifier, height, geometry, and a buffer radius, which in this case is 500 m.
The query or fully qualified name of the table containing the receivers’ locations. As stated above, for each receiver we need a unique identifier, geometry, and height.
The fully qualified name of the output table.
Different options regarding clutter data sources or the operating frequency of the links in GHz. See documentation for further information.
The code below calculates the path profile for the transmitters and receivers explained in the data section, with Overture buildings and Spatial features elevation data. We select further options include_obstacles_table
so that the optional output table with the details on the obstacles is exported and terrain_points
so that terrain morphology is accounted for. Note we use the buildings' centroids as geometries to speed up the calculation.
As a result, the output is stored in <my-project>.<my_dataset>.prop_los_vector_london
that contains every transmitter-receiver pair with a flag indicating whether each link is clear of obstacles (i.e., is within line of sight), among other information. See documentation for further details.
The details about the intersected clutter (buildings) are stored in table <my-project>.<my_dataset>.prop_los_vector_london_details
.
The resulting tables from the
TELCO_PATH_PROFILE
call are available atcartobq.docs.prop_los_vector_london
andcartobq.docs.prop_los_vector_london_details
.
The top-map below shows the resulting line-of-sight of one of the transmitters and assuming we have a receiver in each grid point in the area of interest. We can see areas that are obstructed (yellow) vs areas that are not (light blue).
Similarly, we perform the same analysis using the raster data described in the Clutter data section, i.e., the digital terrain model and canopy height model data. We do so with the PATH_PROFILE_RASTER
procedure that is optimized to work with raster data. This procedure takes as input:
The query or fully qualified name of the table containing the transmitters' locations. As stated above, for each transmitter we need a unique identifier, height, geometry, and a buffer radius, which in this case is 500 m.
The query or fully qualified name of the table containing the receivers’ locations. As stated above, for each receiver we need a unique identifier, geometry, and height.
The fully qualified name of the output table.
Different options regarding clutter data sources or the operating frequency of the links in GHz. See documentation for further information.
The code below calculates the path profile for the transmitters and receivers explained in the data section, with the digital terrain model and canopy height model data. We select as further options:
include_obstacles_table
so that the optional output table with the details on the obstacles is exported
clutter_raster_band
with the bands and aliases to be extracted from the clutter raster
intersect_center
to extract the pixel values from raster tables by intersecting the pixel center or instead the pixel boundary from the Fresnel zone (see RASTER_VALUES
)
intersect_fresnel_zone
to use the First Fresnel Zone for extracting the obstructing pixels or the line connecting the transmitter-receiver pairs.
As a result, the output is stored in <my-project>.<my_dataset>.los_raster_london
that contains every transmitter-receiver pair with a flag (column los
) indicating whether each link is clear of obstacles, among other information. See documentation for further details.
The details about the intersected clutter (buildings) are stored in the table <my-project>.<my_dataset>.los_raster_london_details
.
The resulting tables from the
TELCO_PATH_PROFILE_RASTER
call are available atcartobq.docs.prop_los_raster_london
andcartobq.docs.prop_los_raster_london_details
.
The bottom-map above shows the resulting line-of-sight of each transmitter where we can see areas obstructed vs areas that are not.
One interesting visualization that can provide insights on the types of clutter that intervene with the links can be created using the information stored in <my-project>.<my_dataset>.prop_los_vector_london_details
or <my-project>.<my_dataset>.prop_los_raster_london_details
. For example, the map below shows the clutter data and the projected-to-the-ground Fresnel zone between a selected receiver and its corresponding transmitter.
Path loss estimation is crucial in wireless communications for power management, link budget calculation, cell planning and optimization, interference mitigation, and resource allocation.
In this section, we show how to estimate path loss using the two propagation models available in the Analytics Toolbox: Close In and Extended Hata. These models take the line-of-sight previously calculated as input.
Note that path loss is usually a part of link calculation, which in conjunction with transmitting power, antenna gains, etc. provide an estimation of the received signal level.
To estimate path loss using the Close In model, we use the CLOSE_IN
procedure that takes as input:
The query or the fully qualified name of the table containing the Tx-Rx link information. This is the output of the path profile procedure (vector or raster).
The fully qualified name of the output table.
Different options regarding frequency in GHz or the scenario (UMa, UMi-S.C., UMi-O.S.).
The code below estimates the path loss for the vector path profile output with a frequency of 2.4 GHz and for a UMi-S.C. scenario:
The resulting table from the
CLOSE_IN
call is available atcartobq.docs.prop_london_closein
.
As a result, the procedure returns a table with all transmitter-receiver pairs and their corresponding path gain in dB as can be seen on the top-map at the end of the guide.
To estimate path loss using the Extended Hata model, we use the EXTENDED_HATA
procedure that takes as input:
The query or the fully qualified name of the table containing the Tx-Rx link information. This is the output of the path profile procedure (vector or raster).
The fully qualified name of the output table.
Options regarding frequency in GHz and the scenario (urban, suburban, or open area).
Note that for the Extended Hata model, the heights of the transmitters and receivers need to be measured relative to the ground. When the terrain height is provided in the path profile procedure, the resulting heights in the output are measured relative to sea level. Therefore, when using terrain height for path profile calculation, it is necessary to adjust the resulting heights back to the original ground-referenced values for accurate path loss estimation.
The code below estimates the path loss for the vector path profile output with readjusted heights for an urban scenario:
The resulting table from the
EXTENDED_HATA
call is available atcartobq.docs.prop_london_extended_hata
.
As a result, the procedure returns a table with all transmitter-receiver pairs and their corresponding path gain in dB as observed on the bottom-map below.