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.
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?
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?