Viewshed analysis

 Before tackling this tutorial, you will need to download and install a dataset following these instructions:

Open the map project

The map project consists of a raster layer representing surface elevation for the Colby College campus. The raster layer was generated from LIDAR point data. The layer represents elevation that includes tree top, buildings and unobstructed ground surface. The goal in this exercise is to use this raster layer to identify viewable areas from point and line locations.

Generate viewshed from a single point data layer

The following steps will show you how to generate a raster viewshed from a single point data layer. Note that ArcGIS Pro's 3D Analyst and Spatial Analyst both offer two viewshed geoprocessing tools which differ in the set of options they offer.  This tutorial will make use of the Geodesic Viewshed tool which offers a broader range of options.  It also leverages multiple cores and GPUs (if available).

The Geodesic viewshed tool offers many customizable parameters. For example, if the point vector layer has a field representing the observer;s viewing height, that field can be selected as input instead of manually typing in the value. To do so, simply change the Linear Unit pull down option to Field.

To learn how each parameter contributes to the geoprocess, you can hover the cursor over the i icon to the left of the field name. Doing so should present you with a pop-up help window.

The output raster consists of pixel values of 1 (locations viewable by the observer) and NoData (locations not viewable by the observer).

Generate viewshed from a multiple point data layer

This next step, you will run the same geoprocess on a point layer consisting of multiple points (i.e. multiple observers).  When working with multiple points, you have the option to output a viewshed raster that shows the number of observers that can view a pixel location or you can generate a raster that lists the observers (by their ID) that can view a pixel location. An example of each output is presented next. Note that the latter option restrict you to no more than 32 observers.

Combined viewshed

The output raster consists of pixel values indicating the number of observers  that can view that pixel location. In this example,  some locations can be viewed by up to 3 observers (these locations are mostly roof tops and the Miller library steeple).

Individual observers

The output consists of a large set of values that do not necessarily match the number of input point features. Instead, these numbers are arbitrary values associated with a unique combination of input point features. This information is stored in the multiple _point_Viewshed2 table that is also generated as part of the output.


The output also consists of a table automatically named multiple _point_Viewshed2 (the name can be customized in the input geoprocess pane). This table serves as a lookup table that matches the observers (point feature) to the pixel values (identified as the Region column). For example, a pixel value of 7 (Region = 7 in the attribute table) represents a location viewable by input points 0, 1 and 2. The input point values are pulled from the FID column of the multiple_points feature layer.


Generate viewshed from a polyline data layer

In this next step, you will run the same viewshed geoprocessing tool off of a line feature. In this case, the output viewshed represents all viewable locations from any position (defined by vertices) along the line segment(s). As with the multi-point example, you can combine the viewable areas from all individual polyline segments, or you can identify  which pixel location is viewable by which line segment. In this example, we will only generate the combined viewshed output given that we have just one line segment.

In this example, the input polyline layer is defined by just two vertices (the line segment end points). This results in two possible pixel values: 1 or 2. In other words a location can be viewed by either one or two vertices. 

Note that if you want to increase the number of observations along a polyline feature, you can run the Densify geoprocess or, if you need to take into account the earth surface curvature, you may chose to run the Geodesic Densify tool.

This completes this tutorial.