Visibility Analysis & Viewshed Modeling: Determining Line-of-Sight in GIS
GIS Tutorial · Spatial Analysis · Environmental Planning · QGIS & ArcGIS Pro
Introduction
Viewshed analysis is a GIS technique used to determine which locations on a landscape are visible from one or more observation points. It evaluates the terrain between an observer and surrounding locations to identify areas with a clear line of sight and areas blocked by intervening features.
Closely related, line-of-sight (LOS) analysis evaluates visibility along a specific path between an observer and a target. While a viewshed typically produces a map of visible and hidden areas, a line-of-sight calculation examines whether a particular target can be seen from a particular observation point.
Both techniques are essential for environmental planning, infrastructure development, telecommunications, and landscape assessment.
Why visibility analysis matters
-
Telecommunications: Identify suitable cell tower locations and assess whether terrain obstructs radio links between towers and target locations.
-
Wind farm planning: Estimate the visibility of turbines from nearby homes, roads, protected landscapes, and tourist viewpoints.
-
Architectural planning: Determine which buildings, viewpoints, or landscape features will be visible from a proposed development.
-
Environmental conservation: Evaluate the visual impact of infrastructure on scenic landscapes and protected areas.
-
Security and emergency planning: Identify locations with unobstructed visual access, such as observation posts and lookout points.
The main question is straightforward: Which parts of the landscape can an observer see, given the terrain, observer height, target height, and viewing constraints?
However, accurate results depend on more than elevation alone. The quality of the Digital Elevation Model (DEM), the spatial resolution, and the assumptions used by the visibility algorithm all influence the final map.
1. Understanding the key parameters
Before running a viewshed model, it is important to understand the parameters that control how visibility is calculated.
1.1 Observer height (OFFSETA) vs. target height (OFFSETB)
The observer and target heights determine the vertical positions used in the line-of-sight calculation.
Observer height — OFFSETA
The height of the observer above the elevation represented by the input surface.
Examples:
-
A person standing approximately 1.7 m above the ground.
-
A telecommunications antenna mounted 30 m above the terrain.
-
An observation platform 10 m above ground level.
A greater observer height may allow the observer to see over nearby ridges and obstacles.
Target height — OFFSETB
The height of the target above the elevation represented by the input surface.
Examples:
-
A person standing at the target location.
-
A building rooftop.
-
A receiving antenna mounted on another tower.
Target height matters when determining whether the top of a feature is visible even when its base is hidden.
In ArcGIS Pro, these parameters are commonly exposed as Observer Offset (OFFSETA) and Vertical Offset (OFFSETB) in the appropriate geoprocessing tools. The exact parameter names depend on the tool and version.
In QGIS, observer and target heights are configured through the relevant processing algorithm, plugin, or GRASS GIS tool rather than through one universal OFFSETA/OFFSETB interface.
Practical example: Suppose a cell tower is 35 m tall and the receiving antenna is 12 m above the ground. If the DEM represents bare ground, set the observer height to 35 m and the target height to 12 m where the chosen tool supports those offsets.
Do not confuse height above ground with absolute elevation. If a terrain cell is at 1,500 m above sea level and an antenna is 35 m above it, its absolute elevation is approximately 1,535 m.
1.2 Horizontal and vertical viewing angles
Some viewshed tools allow an observer’s field of view to be restricted. This is useful when modelling directional cameras, radar systems, or directional antennas.
Horizontal viewing angle (AZIMUTH)
Azimuth describes the horizontal direction in which an observer is looking.
-
A full 360° view examines all horizontal directions.
-
A restricted azimuth range can focus analysis on a particular sector.
-
Start and end azimuth values define the permitted horizontal viewing direction in tools that support these settings.
For example, a camera facing northeast should not automatically be assumed to observe the entire landscape behind it.
Vertical viewing angle (VERT)
Vertical viewing angles define the upper and lower limits of the observer’s field of view.
-
The upper vertical angle limits how far above the horizontal plane the observer can see.
-
The lower vertical angle limits how far below the horizontal plane the observer can see.
-
Restricted vertical angles are particularly relevant to cameras, optical instruments, and directional observation systems.
Tool conventions vary. Check whether the software expects angles relative to the horizontal plane, an observer-centered coordinate system, or another convention.
1.3 Viewing distance and analysis radius
The maximum viewing distance limits how far the algorithm searches for visible terrain.
For example, a viewshed with a 5 km radius considers terrain within 5 km of the observer, subject to the tool’s distance and surface settings.
Use a realistic distance based on the application:
-
Urban planning: A few hundred metres to several kilometres.
-
Wind farm visual assessment: Several kilometres or more, depending on project requirements.
-
Telecommunications: Based on the intended link distance and radio-planning assumptions.
A larger radius increases processing demands and can introduce additional uncertainty because distant terrain features may be represented less accurately. When setting up your project limits, choosing the right maximum distance is crucial for ensuring that your Viewshed Analysis remains computationally efficient and geographically accurate.
1.4 Earth curvature and atmospheric refraction
For short distances, the Earth’s curvature is often negligible in basic terrain visibility analysis. At longer distances, the Earth’s curved surface can affect whether a target is visible.
Earth curvature causes the ground surface to fall away from a local horizontal reference plane as distance increases. This can hide distant targets that would otherwise appear visible in a flat-Earth model.
Atmospheric refraction bends light or radio waves as they travel through the atmosphere. Some GIS tools approximate its effect through a refraction coefficient or curvature correction.
Key considerations:
-
Enable curvature correction for long-distance analysis when the selected tool supports it and the project requires it.
-
Apply a suitable refraction coefficient according to the tool’s documentation and the assumptions of the study.
-
Do not assume that an optical viewshed accurately predicts radio-frequency coverage. Radio propagation also depends on frequency, diffraction, atmospheric conditions, and other factors.
For rigorous telecommunications planning, a terrain viewshed is a useful screening method, not a complete radio-propagation model.
2. Step-by-step workflow in QGIS and ArcGIS Pro
The workflow below uses a Digital Elevation Model, observer points, and visibility tools to generate a viewshed, test individual line-of-sight paths, and model visibility from multiple locations.
Step 1: Prepare the Digital Elevation Model (DEM) and observer points
A Digital Elevation Model (DEM) represents ground elevation as a raster grid. Each cell contains an elevation value used to determine whether terrain blocks the view between an observer and a target.
1.1 Load and inspect the elevation raster
In QGIS:
-
Open QGIS and create a new project.
-
Select Layer → Add Layer → Add Raster Layer.
-
Browse to your DEM file, commonly a GeoTIFF (
.tif). -
Click Add.
-
Inspect the raster’s coordinate reference system, pixel size, elevation values, and NoData areas.
-
Optionally create a hillshade using Processing Toolbox → GDAL → Raster terrain analysis → Hillshade to make ridges and valleys easier to interpret.
In ArcGIS Pro:
-
Create or open a project and add the DEM to the map.
-
Open the Catalog pane if needed to locate your elevation data.
-
Right-click the raster and select Properties.
-
Inspect the spatial reference, cell size, pixel type, and NoData information.
-
Optionally use Analysis → Tools → Hillshade to create a terrain visualization.
Important: Hillshade helps you inspect the terrain, but the viewshed calculation should use the appropriate elevation surface, not the hillshade image.
1.2 Check coordinate systems and elevation units
Before processing:
-
Use a suitable projected coordinate system for local or regional distance measurements.
-
Confirm whether horizontal coordinates and vertical elevations are in metres or feet.
-
Check whether the DEM’s vertical datum is appropriate for the study.
-
Reproject or resample datasets only when necessary, and document the method.
-
Clip the DEM to a study area large enough to include the terrain that could block visibility.
For example, if the DEM cell size is 10 m, each cell represents a 10 m × 10 m area. A 30 m DEM will generally miss more small terrain features than a 10 m DEM.
1.3 Create the observer point layer
Observer points represent locations from which visibility will be calculated.
Examples include:
-
Proposed telecommunications towers.
-
Wind turbine locations.
-
Observation platforms.
-
Scenic viewpoints.
-
Existing buildings or surveillance cameras.
In QGIS:
-
Select Layer → Create Layer → New GeoPackage Layer.
-
Set the geometry type to Point.
-
Use the same coordinate reference system as the DEM.
-
Add useful attribute fields, such as
site_id,height_m, andsite_type. -
Create the layer and toggle editing.
-
Use Add Point Feature to digitize observer locations.
-
Enter the relevant attribute values and save your edits.
In ArcGIS Pro:
-
Open the Catalog pane and create a feature class in a file geodatabase, or use an existing point feature class.
-
Set the geometry type to Point and use an appropriate coordinate system.
-
Add the layer to the map.
-
Use Edit → Create to place observer points.
-
Populate fields such as
site_idandheight_m. -
Save your edits.
For a real project, use surveyed tower coordinates or reliable infrastructure datasets rather than approximate locations digitized from a small-scale map.
Step 2: Configure observer height, target height, and range
This step defines the vertical and horizontal conditions under which the viewshed will be calculated.
Consider the following example.
Example: Telecommunications tower
Tower height above ground
35 m
Receiving antenna height
12 m
Illustrative maximum analysis radius
10 km
These are example parameters, not recommended radio-planning standards. Select the actual range and heights for your project.
In QGIS: run a single-point viewshed
A widely available route is the GRASS GIS r.viewshed algorithm through the QGIS Processing Toolbox. It calculates visible terrain from a specified viewpoint.
-
Open Processing → Toolbox.
-
Search for
r.viewshed. -
Open the GRASS GIS viewshed algorithm.
-
Select your DEM as the input elevation raster.
-
Specify the observer’s map coordinates.
-
Set Observer elevation to the observer’s height above the terrain, such as 35 m for the example tower.
-
Set Target elevation to the target height, such as 12 m, if required by your analysis.
-
Set the Maximum distance to 10,000 m for the example.
-
Review the direction range and refraction coefficient settings if relevant.
-
Specify an output raster and run the algorithm.
The exact fields depend on the installed GRASS GIS and QGIS versions. In r.viewshed, the observer and target elevation parameters are height offsets above the elevation surface, not absolute elevations above sea level.
Expected result: An output raster indicating visibility around the observer. Depending on the selected output mode, visible cells may contain vertical-angle values while invisible cells are represented by NULL or another configured value. For a straightforward binary map, reclassify the result into visible and invisible categories as appropriate.
Note that r.viewshed is designed around a specified viewpoint. To process many observer points, use a multi-observer workflow rather than assuming the single-point tool automatically combines all points.
In ArcGIS Pro: run Viewshed or Geodesic Viewshed
-
Open Analysis → Tools.
-
Search for Geodesic Viewshed or Viewshed in the Spatial Analyst toolbox.
-
Set the DEM as the Input Raster.
-
Set the observer point layer as Input Observer Features.
-
Specify the output raster.
-
Configure the observer and surface offsets, viewing distances, and optional horizontal or vertical viewing angles.
-
For Geodesic Viewshed, choose an appropriate analysis type, such as Frequency or Observers.
-
Set an outer radius where appropriate to restrict processing to the study distance.
-
Run the tool and inspect the output raster.
The classic Viewshed tool supports earth-curvature correction and a refraction coefficient, whereas Geodesic Viewshed uses geodesic calculations and does not require the same curvature-correction parameter. Tool availability depends on your ArcGIS Pro licensing and installed extensions.
Choosing the tool:
-
Use Viewshed for a standard terrain-visibility workflow where its options meet the project requirements.
-
Use Geodesic Viewshed for multi-observer analysis and when geodesic processing, observer-specific parameters, or visibility-frequency outputs are useful.
-
Use a dedicated line-of-sight tool when you need to test a specific observer-to-target connection.
Step 3: Run 2D viewshed and line-of-sight calculations
Although both analyses evaluate visibility, they answer different questions.
| Analysis | Main question | Typical output |
|---|---|---|
| 2D viewshed | Which terrain cells are visible from the observer? | Visibility raster |
| Line of sight | Can the observer see this particular target? | Visible/obstructed result along a path |
| Cumulative viewshed | How many observers can see each cell? | Visibility-frequency raster |
3.1 Interpret the 2D viewshed
Once the algorithm finishes:
-
Add the output raster to the map if it is not already displayed.
-
Open the raster’s Properties → Symbology.
-
Select a suitable rendering method, such as Paletted/Unique values for categorical results.
-
Assign contrasting colors to visible and invisible cells.
-
Overlay the observer points and a hillshade.
-
Zoom to the study area and inspect visibility patterns around ridges, valleys, and open terrain.
For a binary visibility map, a common convention is:
-
1= visible. -
0= not visible. -
NoData = outside the valid calculation or otherwise undefined.
However, the meaning of the output values depends on the algorithm and output mode. Do not assume that every viewshed raster uses the same encoding.
3.2 Perform line-of-sight analysis
A line-of-sight calculation checks whether a straight sightline from an observer to a target is blocked by the elevation surface.
In ArcGIS Pro:
-
Open Analysis → Tools.
-
Search for Line Of Sight in the 3D Analyst toolbox.
-
Supply the appropriate observer and target inputs according to the tool’s requirements.
-
Specify any supported observer or target offsets.
-
Run the analysis and inspect the resulting line features or visibility classifications.
In QGIS:
-
Use the Visibility Analysis plugin if it is available in your installation, or use a suitable GRASS GIS or other visibility tool.
-
Define the observer and target locations.
-
Set the observer and target heights where supported.
-
Run the line-of-sight calculation and inspect whether terrain obstructs the path.
QGIS plugin availability and interface details vary, so verify the tool’s current documentation before following a version-specific menu path.
Interpretation: If a ridge intersects the sightline, the target may be hidden even when it is geographically close to the observer. Conversely, a distant target may remain visible if the intervening terrain is lower than the sightline.
For telecommunications, a geometric line of sight is not sufficient to establish that a radio link will perform reliably. Fresnel-zone clearance, antenna alignment, frequency, diffraction, and other propagation effects must also be assessed.
Step 4: Generate cumulative viewsheds for multiple observers
A cumulative viewshed combines visibility results from multiple observer locations. Instead of asking whether one tower can see a location, it calculates how many towers can see that location.
For example, a telecommunications planner may have five proposed towers. A cumulative viewshed reveals areas visible from one, two, three, four, or all five sites.
4.1 Cumulative viewshed in QGIS
One practical approach is to use the GRASS GIS add-on r.viewshed.cva, which calculates viewsheds for a set of observer points and combines them into a cumulative visibility raster. This add-on may need to be installed separately.
-
Prepare a point layer containing all observer locations.
-
Open Processing → Toolbox and search for
r.viewshed.cva. -
Set the DEM as the input elevation map.
-
Select the observer point layer.
-
Set the observer and target heights.
-
Specify the maximum viewing distance.
-
Configure curvature and refraction options where required.
-
Choose an output raster and run the algorithm.
-
Inspect the output values to determine how many observer locations can see each cell.
If the add-on is unavailable, an alternative is to calculate individual binary viewsheds and combine them using raster summation. Ensure the individual rasters use the same grid alignment, cell size, extent, and visibility encoding.
4.2 Cumulative viewshed in ArcGIS Pro
Use Geodesic Viewshed for a multi-observer workflow.
-
Open Analysis → Tools.
-
Search for Geodesic Viewshed.
-
Select the DEM and the observer point feature class.
-
Set Analysis Type to Frequency.
-
Configure observer offsets, surface offsets, and viewing-distance parameters.
-
Set the outer radius if you want to restrict the analysis.
-
Run the tool and inspect the output raster.
In Frequency mode, each output cell records how many observer locations can see that location, subject to the tool’s settings. The alternative Observers mode identifies visible regions associated with individual observers and can produce an observer-region relationship table.
4.3 Interpret the cumulative visibility raster
Suppose five candidate towers are evaluated.
| Output value | Interpretation | Potential planning use |
|---|---|---|
| 0 | Visible from no towers | Terrain-screened location |
| 1 | Visible from one tower | Limited geometric visibility |
| 2–3 | Visible from two or three towers | Potential overlapping visibility |
| 4–5 | Visible from four or five towers | High observer visibility |
These values are illustrative for a five-observer analysis. Actual output values depend on the number of valid observers and the selected algorithm.
Important distinction: A location visible from several towers is not automatically a good telecommunications site. Visibility frequency is a terrain-based measure, not a direct measure of signal strength, network capacity, or interference.
For tower placement, combine cumulative viewsheds with population demand, land ownership, access roads, terrain suitability, protected areas, and radio-propagation analysis.
3. Common pitfalls and how to avoid them
Viewshed outputs can look convincing while still being inaccurate. The following issues deserve particular attention.
3.1 Ignoring vegetation and buildings
A bare-earth DEM represents the ground surface. It does not necessarily account for trees, buildings, or other obstacles above the terrain.
A Digital Surface Model (DSM) represents the upper surfaces of features such as buildings and vegetation, making it more appropriate when those features are important visibility barriers.
DEM — ground terrain
Useful for analysing visibility blocked by hills and ridges.
DSM — surface features
Useful when buildings and vegetation must be considered as obstacles.
How to improve the model:
-
Use a DSM when buildings and vegetation affect visibility.
-
Use a canopy-height model or other suitable surface data when vegetation height needs to be represented explicitly.
-
Verify whether the input elevation surface already includes vegetation and structures.
-
Avoid adding building or tree heights twice if the DSM already incorporates them.
Even a DSM cannot fully model every visibility condition. Seasonal foliage, building openings, and the internal structure of vegetation may require more detailed information. Failing to account for surface obstructions is one of the most common reasons a Viewshed Analysis produces misleading results in real-world planning scenarios.
3.2 Using an inappropriate raster resolution
The cell size determines the level of terrain detail represented in the model.
A coarse raster may smooth out narrow ridges or small hills, while a very fine raster can increase processing time and retain measurement noise.
| Raster resolution | Advantages | Limitations |
|---|---|---|
| 30 m | Efficient for broad regional assessment | May miss smaller terrain obstructions |
| 10 m | Useful for many regional and local studies | May omit small structures and narrow features |
| 1–5 m | Can represent finer terrain detail | Requires suitable source data and more processing |
These are general examples, not universal accuracy thresholds. The appropriate resolution depends on the terrain, observation distance, source-data quality, and planning purpose.
ArcGIS documentation also notes that noise in high-resolution elevation rasters can produce unexpected visibility results. Inspect suspicious terrain artefacts and apply appropriate filtering only when justified.
3.3 Mixing horizontal and vertical units
A frequent error occurs when the DEM’s horizontal coordinates use metres but elevation values use feet, or vice versa.
This can distort the geometry used in visibility calculations.
Prevention checklist:
-
Verify the horizontal coordinate system.
-
Verify the vertical units and datum.
-
Configure the correct vertical conversion or z-factor when required by the tool.
-
Confirm that observer heights and viewing distances use the expected units.
3.4 Using incorrect observer heights
A tower’s height above ground is not the same as its absolute elevation.
If the terrain elevation is 1,500 m and the antenna is 35 m above the ground, the antenna’s absolute elevation is 1,535 m. If the software expects an offset above the DEM, enter 35 m rather than 1,535 m.
Likewise, a target offset should represent the target’s height above the elevation surface, not its elevation above sea level.
3.5 Forgetting curvature and refraction
For long-distance analysis, neglecting Earth curvature can overestimate visibility. However, blindly applying curvature corrections can also be inappropriate if the selected tool already uses geodesic calculations.
-
Understand whether the algorithm uses a planar or geodesic method.
-
Enable curvature correction where appropriate for the selected tool.
-
Use a documented refraction assumption.
-
Test how sensitive the results are to these parameters when long-distance visibility matters.
3.6 Treating visibility as certainty
A viewshed is a model based on defined assumptions. It does not guarantee that an object will be visually identifiable or that a radio link will work.
For environmental planning, field observations and photographic verification can help validate predicted views. For telecommunications, use an appropriate propagation model and engineering assessment.
4. Practical quality-control checklist
Before using a viewshed in a planning report, verify the following items.
Viewshed validation checklist
0 of 10
Conclusion and key takeaways
Viewshed analysis and line-of-sight modeling help planners understand how terrain and surface features influence visibility. They are valuable tools for telecommunications tower placement, wind farm visual assessment, landscape planning, and infrastructure design.
The most important principles are:
-
Choose the right elevation surface. A bare-earth DEM is suitable for terrain visibility, while a DSM is often more appropriate when vegetation and buildings matter.
-
Configure observer and target heights correctly. Offsets must be referenced to the appropriate elevation surface.
-
Understand the distinction between viewsheds and line of sight. Viewsheds map visible areas; line-of-sight tools test individual paths.
-
Use cumulative viewsheds for multiple observers. These reveal how many observation locations can see each part of the landscape.
-
Account for resolution, units, curvature, and refraction. Each can materially affect the result.
-
Validate the model before making decisions. A terrain-visibility raster is a planning aid, not a substitute for field verification or a complete telecommunications propagation study.
Ultimately, a reliable visibility analysis is not simply a matter of running a GIS tool. It requires sound elevation data, appropriate parameters, careful interpretation, and an understanding of the real-world process being modeled.
Further reading
-
QGIS — GRASS GIS r.viewshed documentation for observer height, target height, viewing distance, and visibility outputs.
-
ArcGIS Pro — Geodesic Viewshed documentation for multi-observer analysis, frequency outputs, and observer parameters.
-
ArcGIS Pro Visibility documentation for line-of-sight analysis and curvature correction.