← Marketplace


Calculate a radio frequency (RF) viewshed from a transmitter location over a Digital Elevation Model


Intermap’s RF Viewshed processing block determines for every point within a given distance of a transmitter whether that transmitter is visible or hidden from a receiver by direct line of sight as well as what the expected signal strength would be at the receiver.

The algorithm does the calculation of line of sight for each and every pixel within range of the transmitter.

The signal strength is based on the transmitter power, antenna gain and receiver antenna gain along with attenuation from free space path loss, oxygen loss, and rain.


A data block consisting of a Digital Elevation Model (DEM) must be used as input (Intermap’s NEXTMap One Elevation Data for example) along with the following parameters:

  • transmitter_latitude : Latitude of the transmitter
  • transmitter_longitude : Latitude of the transmitter
  • max_distance_meters : Maximum distance of a receiver from the transmitter in meters. Defines the resulting bounding rectangle (10 to 8500)
  • frequency_mhz : The center frequency of the transmitter in MHz
  • power_dbm : The transmitter power in dBm
  • transmitter_gain_dbi : The transmitter antenna gain in dBi
  • receiver_gain_dbi : The receiver antenna gain in dBi
  • transmitter_height_meters : Hight of the transmitter above the DEM in meters (0 to 100)
  • receiver_height_meters : Height of the receiver above the DEM in meters (0 to 100)
  • direction_degrees : Direction (azimuth from north) that the transmitter is pointing (0 to 360)
  • horizontal_beamwidth_degrees : The transmitter’s horizontal beam width (0 to 360)
  • vertical_beamwidth_degrees : The transmitter’s vertical beam width (0 to 180)
  • downtilt_degrees : The amount of downward tilt of the transmitter (-90 to 90)
  • oxygen_loss_db_per_m : The amount of signal attenuation due to passing through oxygen in dB per meter
  • rain_loss_db_per_m : The amount of signal attenuation due to passing through rain in dB per meter. A negative number means that rain_rate_mm_per_hr is used instead.
  • rain_rate_mm_per_hr : The amount of rainfall in millimeter per hour which is used to calculate the rain loss. It is only used if rain_loss_db_per_m is negative.
  • polarization_degrees : The polarization tilt angle from horizontal with 0 = horizontal, 90 = vertical, and 45 = circular
  • signal_strength_high_db : The high signal strength. Any signal strength equal to or greater than this will be set to the first color in the color palette.
  • signal_strength_low_db : The low signal strength. Any signal strength equal to or less than this will be set to the last color in the color palette.
  • color_palette : Color palette used to determine the colors of the output viewshed image. It is a string made of the letters R, Y, G, C, B, and M to represent the colors that will be used to indicate signal strength in the output image. The colors are red, yellow, green, cyan, blue, and magenta based on their first letter. The colors are in order and the first color will be used for signal strength equal to or greater than signal_strength_high_db and the last color is used for signal strength equal to or less than signal_strength_low_db. All other signal strength values get a color that is blended between the others. For example with a color_palette of RGM the colors will be blended between red, green, and magenta.

A bounding box consisting of the observer location and an area around the observer at the maximum distance must fall within the input DEM.


The output is a GeoTiff file with unsigned 8-bit RGBA imagery where each pixel in the image is either transparent to show that it is not visible or out of range of the transmitter, or it is a color shade that indicates the signal strength for a receiver located on that pixel.

Example Job Parameters

  "nextmapone-1m:1": {
    "bbox": [
  "rfviewshed:1": {
    "transmitter_latitude": 40.0556926967,
    "transmitter_longitude": -105.2884229696,
    "max_distance_meters": 200,
    "frequency_mhz": 60000,
    "power_dbm": 14,
    "transmitter_gain_dbi": 17,
    "receiver_gain_dbi": 40,
    "polarization_degrees": 0,
    "transmitter_height_meters": 5,
    "receiver_height_meters": 1,
    "direction_degrees": 45,
    "horizontal_beamwidth_degrees": 180,
    "downtilt_degrees": 20,
    "vertical_beamwidth_degrees": 40,
    "oxygen_loss_db_per_m": 0.001,
    "rain_loss_db_per_m": -9999,
    "rain_rate_mm_per_hr": 3,
    "signal_strength_high_db": -30,
    "signal_strength_low_db": -70,
    "color_palette": "RYGCBM"


To know more please check the block capabilities specifications.

Terms & Conditions

View the End User License Agreement conditions.

Ready to get started?

Get in touch or become a partner.

Contact salesBecome a partner