I am trying to do viewshed analysis from various points but there are several obstacles that I would like the viewshed analysis to recognise, e.g. walls, buildings, tree coverage etc. Is this possible? Each obstacle has different heights. Any advice on the best way to achieve this would be much appreciated.