Available with Spatial Analyst license.
Overview
Determines the raster surface locations visible to a set of observer features using geodesic methods.
There are two types of visibility analyses that can be performed by this function:
- Frequency—determines which raster surface locations are visible to a set of observers.
- Observers—identifies which observers are visible from each raster surface location.
Notes
This function can be accelerated by the Graphics Processing Unit (GPU), which means that if a GPU device is available on your system, it will be used to enhance the performance.
Unlike similar tools, this function does not have a z-factor parameter. To ensure the correctness of the output visibility raster, assign a spheroidal vertical coordinate system to the input raster if it does not already have one.
The visibility of each pixel center is determined by a line-of-sight test between the target and each observer. If an observer can see the target at the pixel center, the pixel is considered visible. This tool always considers the curvature of the earth when the visibility is determined.
On the output visibility raster, nonvisible pixels are assigned NoData.
If the input raster contains undesirable noise caused by sampling errors, you can smooth the raster with a low-pass filter, such as the mean option of Focal Statistics, before running this function.
When the input raster needs to be resampled, bilinear interpolation will be used. An example of when an input raster may be resampled is when the output coordinate system, extent, or cell size is different from that of the input.
You can use the Analysis Method parameter to control the quality of and the time it takes to obtain a result. The Perimeter Sightlines method is intended for exploratory analysis, as it achieves faster performance at the expense of output quality. To get the most accurate output, use the All Sightlines method.
For the observers analysis type, the allowed maximum number of input observer points is 32.
By default, the viewshed will be calculated to the maximum extent of the input dataset. For improved performance, it is recommended to explicitly set the outer radius parameter to the maximum distance of interest for your analysis. This parameter will allow the tool to perform its computations only on the cells that are within a certain distance to the observers.
For more details on technical aspects of the implementation of this tool, see the release notes for this tool.
Parameters
Parameter name | Description |
---|---|
Raster (Required) | The input surface raster. It can be an integer or a floating-point raster. The input is transformed into a 3D geocentric coordinate system during the visibility calculation. NoData cells on the input raster do not block the visibility determination. |
Observer Features (Required) | The input feature class that identifies the observer locations. It can be point, multipoint, or polyline features. The input feature class is transformed into a 3D geocentric coordinate system during the visibility calculation. Observers outside of the extent of the surface raster, or located on NoData cells, will be ignored in the calculation. |
Analysis Method | Choose the method by which the visibility will be calculated. This option allows you to trade some accuracy for increased performance.
|
Analysis Type | Choose which type of visibility analysis you wish to perform, either determining how visible each cell is to the observers, or identifying for each surface location which observers are visible.
|
Vertical Error | The amount of uncertainty, measured as Root Mean Square error (RMSE), in the surface elevation values. It is a floating-point value representing the expected error of the input elevation values. When this parameter is assigned a value greater than 0, the output visibility raster will be floating point. In this case, each pixel value on the output visibility raster represents the sum of probabilities that the cell is visible to any of the observers. When the Analysis Type is Observers or the Analysis Method is Perimeter Sightlines, this parameter is disabled. |
Refractive Coefficient | Coefficient of the refraction of visible light in air. The default value is 0.13. |
Surface Offset | This value indicates a vertical distance (in surface units) to be added to the z-value of each target pixel as it is considered for visibility. It should be a positive integer or floating-point value. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is set to a value, that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Observer Elevation | This value is used to define the surface elevations of the observer points or vertices. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is not specified, the observer elevation will be obtained from the surface raster using bilinear interpolation. If this parameter is set to a value, then that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Observer Offset | This value indicates a vertical distance (in surface units) to be added to observer elevation. It should be a positive integer or floating-point value. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is set to a value, that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Inner Radius | This value defines the start (minimum) distance from which visibility is determined. Pixels closer than this distance are considered not visible in the output but can still block visibility of the pixels between the Inner Radius and the Outer Radius. The default value is 0. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is set to a value, that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Inner radius is 3D distance | Type of distance for the inner radius parameter.
|
Outer Radius | This value defines the maximum distance from which visibility is determined. Pixels beyond this distance are excluded from the analysis. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is set to a value, that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Outer radius is 3D distance | Type of distance for the outer radius parameter.
|
Horizontal Start Angle | This value defines the start angle of the horizontal scan range. The value should be specified in degrees from 0 to 360.0, where 0 is oriented to north. The default value is 0. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is set to a value, that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Horizontal End Angle | This value defines the end angle of the horizontal scan range. The value should be specified in degrees from 0 to 360.0, where 0 is oriented to north. The default value is 360.0. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is set to a value, that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Vertical Upper Angle | This value defines the upper vertical angle limit of the scan above a horizontal plane. The value should be specified in degrees from 0 to 90.0, which can be integer or floating point. The default value is 90.0. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is set to a value, that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Vertical Lower Angle | This value defines the lower vertical angle limit of the scan below a horizontal plane. The value should be specified in degrees from -90.0 to 0, which can be integer or floating point. The default value is -90.0. It can be a field in the input Observer Features dataset or a numerical value. If this parameter is set to a value, that value will be applied to all the observers. To specify different values for each observer, set this parameter to a field in the Observer Features dataset. |
Environment settings
Geoprocessing environment settings for global functions are controlled at the application level. Setting processing environments in ArcGIS Pro can be done by clicking the Environments button on the Analysis tab. See Analysis environments and Spatial Analyst for additional details on environment settings.
The following environments are supported by this global function: