added viewshed analysis