Abstract
The knowledge of visibility information on a terrain is essential for a large number of current applications. There exist several algorithms in the literature for building visibility maps (VMs) but only for one single viewpoint or at most for a very small number of observers. This limitation is due to the high computational complexity of the used methods (which is greater than O , where N is the number of the terrain points) and also due to the fact that single-point algorithms cannot efficiently be scaled to all points. We present a novel fast algorithm able to compute the complete VM, also called total viewshed, where, given a terrain T represented by its regular digital elevation model (DEM), our method simultaneously produces a continuous VM for all the points of T. In particular, the proposed algorithm combines two algorithms, (i) a visible heights algorithm that divides the terrain into sectors and calculates the end of all the visible ring sectors and (ii) an algorithm that finds out the start of those visible ring sectors using a low-cost calculation. Theoretical and experimental comparisons were performed considering the VM of one single observer, because the most used GIS tools compute the viewshed by point. The results demonstrate that our algorithm is faster by many orders of magnitude than the widely used GIS visibility tools showing similar accuracy.
Acknowledgments
This work was supported by the Spanish Ministry of Education and Science throughout Juan de la Cierva fellowship and projects TIN2006-01078 and TIN2010-16144.