I have been looking for information on the viewshed algorithm used by ESRI.

I have checked the tool help and the support pages but I have yet to find some answers to my questions. Listed below are some of the pages that I have searched.

ArcGIS Desktop Help 9.3 - How Visibility works

Using Viewshed and Observer Points for visibility analysis—Help | ArcGIS for Desktop

It seems like the description of the tool says that a line is drawn from the center of the observer cell to the center of the target cell. Then the angle of the line drawn is tested against the local horizon.

The help says:

- The visibility of each cell center is determined by comparing the altitude angle to the cell center with the altitude angle to the local horizon. The local horizon is computed by considering the intervening terrain between the point of observation and the current cell center. If the point lies above the local horizon, it is considered visible.

What if the observer location is not in the middle of a raster cell? Does the algorithm move the observer location to the middle of the cell?

Also,

When the algorithm is finding the local horizon, how does it choose where to test the heights along the line? Does it test the height every time it crosses a grid line as described by the R3 algorithm in Wm Randolph Franklin, Clark K Ray, and Shashank Mehta. Geometric algorithms for siting of air defense missile batteries. 1994? If so, is it interpolating the height at the gridline interesections?

Or is it using some other method for determining the heights of the tested points along the line?

Thanks,

Ian

More recent documentation:

Spatial Analyst

Similar functionality for 3D

Q's

1 it is raster based, hence cell centers are used so appropriate attention to cell size and extents are important if the actual position of the observer is critical

2 is that a reference in the documentation to save looking it up?

3 obviously tied into 2

ADDENDUM

you could also scope out the documentation for 3D and/or PRO to see if there are any additions or differences.

For example Using Viewshed and Observer Points for visibility analysis—Help | ArcGIS for Desktop