Viewshed analysis
Before tackling this tutorial, you will need to download and install a dataset following these instructions:
Create a folder called viewshed somewhere under your personal directory (e.g. C:\Users\jdoe\Documents\Tutorials\viewshed\).
Download the data for this exercise then extract the contents of elevation.zip into your newly created viewshed folder.
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).
Make sure that either the Spatial Analyst or 3D Analyst extension is enabled for this session.
If not already open, access the Geoprocessing pane by clicking the red Tools icon under the Analysis tab.
In the search box, type viewshed.
You will be presented with several viewshed tools. For this exercise, select any one of the two Geodesic Viewshed tools.
Select colby_lidar.tif for the input raster.
If the raster layer does not have a vertical spheroidal based vertical reference system defined, the software will assume that the vertical units are the same as those for the XY plane (meters in this example). Note that this raster has a gravity-related vertical reference system defined (and not a spheroidal based one). This is fine given that the pixel height unit matches that of the horizontal plane.Select the single_point vector layer for the input vector layer.
Name the output raster single_pt_viewshed.tif.
Under the Observer parameters rubric, set the Observer offset value to 1.6 meters. This value represents the individual's viewing height.
You should not need to change any of the other default parameters.
Click Run to execute the geoprocess.
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
Select colby_lidar.tif for the input raster.
Select the multiple_point vector layer for the input vector layer.
Name the output raster combined_viewshed.tif.
Under the Viewshed parameters rubric, make sure that Frequency is selected for the Analysis type.
Under the Observer parameters rubric, set the Observer offset value to 1.6 meters. This value represents the individual's viewing height.
You should not need to change any of the other default parameters.
Click Run to execute the geoprocess.
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
Select colby_lidar.tif for the input raster.
Select the multiple_point vector layer for the input vector layer.
Name the output raster individual_viewshed.tif.
Under the Viewshed parameters rubric, make sure that Observersis selected for the Analysis type.
Under the Observer parameters rubric, set the Observer offset value to 1.6 meters. This value represents the individual's viewing height.
You should not need to change any of the other default paramaters.
Click Run to execute the geoprocess.
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.
Select colby_lidar.tif for the input raster.
Select the path vector layer for the input vector layer.
Name the output raster path_viewshed.tif.
Under the Observer parameters rubric, set the Observer offset value to 1.6 meters. This value represents the individual's viewing height.
You should not need to change any of the other default parameters.
Click Run to execute the geoprocess.
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.