Hello,
I need to create a new raster layer which shows from where an observer can see at least the top of a communication tower. I am familiar with the Visibility tool, however it seems like there is a significant factor missing from its analysis.
One can specify a single elevation raster layer for Visibility's calculations - typically a DEM or a DSM. It seems that for a true analysis of visibility, one would need to use both a DEM and a DSM of the area. Here's why...
An observer, perhaps 2m tall, would have to stand upon the bare-earth DEM, then look toward the tower, which also stands upon the bare-earth DEM. The catch is that there may be bare-earth obstructions and/or vegetation or man-made structures between the two locations. All of these potential obstructions are included in the DSM layer.
The Visibility tool could be much smarter - and create a much more realistic analysis - if both the DEM and DSM data are used in the analysis.
Does that make sense? Is there another way to work through this with current ESRI tools? Should Visibility tool be beefed up?
Thanks for your thoughts and time.
Regards,
-Gary
I don't entirely understand. A DSM is inclusive of the DEM/DTM bare-earth features when there are not man-made or natural features upon that bare-earth.
So a DSM would be the best model for visibility analysis. If your tower is not included in the DSM for whatever reason, you could 'burn it on' to the DSM with raster calculator or just add an OFFSET factor at the tower point.
The AGL raster output may also be useful as that will show the minimum height which must be added to an otherwise non-visible location from the tower.
Wait, can you make the observer offset negative? Elsewise the observer point would be on top of a tree, for example.
Ah I'm still not really getting it. Completely open to being dense here!
No I'm pretty sure it can't be negative and that's been detailed somewhere in an arcane document.
Logically I think we have to assume that anything 'below' the DSM surface is not visible. If the observer is in a forest we surely have to assume they can't be seen or see out of it and it's not a valid location for an observer in the first place.
This is the bane of my existence.
Usually I start with a DEM and a tree cover layer and "burn" the trees into the DEM, effectively making a crude DSM.
The output viewshed will tell me where things are visible on that surface ... and that surface unfortunately includes the tops of trees, and the tops of buildings if I included those in my screening layer. Knowing if something is visible from treetops and rooftops is not an especially useful representation of reality.
I have worked around this issue with some post-processing on the viewshed. I know where the trees are because I added those to the DEM in the first place. If I take my output viewshed and combine it with the trees (I add them because my data is crude, but if you had a real LiDAR-based DSM, perhaps you could reclassify trees to -1 and multiply by the viewshed to convert viewshed + tree areas to a negative number?), you can simply filter out anywhere that is visible and within trees/within your screening layer. If you are standing in a patch of trees and the viewshed says that location is visible because it thinks you're on top of the trees, POOF! Now we say it's not visible! This is also not an especially useful representation of reality, but I think it's usually an improvement over the standing-on-treetops model.
Visible + forested areas could also be kept as some kind of grey area third class, this area might have visibility of the tower, or maybe not, who knows, trees, eh?
As you've noted, we need an algorithm that acknowledges that the observers remain on the ground regardless of the screening data, but that also accounts for that screening data, and so far I have not found a way to do that. Running them both and overlaying them would show where screening reduces visibility but wouldn't provide any new information about the effects of screening when you are standing in the screening layer.
Just thinking out loud ... let's say you had a 3x3 patch of trees. You run a bare-earth viewshed first, and the area where the trees are located is visible. Next, you run the screened viewshed, but you flip the middle cell in that 3x3 block to be non-forested, i.e., ground level. Per my workaround, you disregard the 8 surrounding cells because the viewshed is calculating from the tops of trees for those cells, but for that one cell in the middle, it's calculating the ground level with the surrounding screening intact. then you just ("just") have to iterate that - generating a new surface with one new screened cell flipped to be bare earth, running a viewshed on that surface, and logging the results for the test cell - for every cell in the raster, or at least every cell in the raster that is within the screening layer that the bare-earth viewshed says is visible. (If bare earth says it isn't visible, no sense in checking what screening does, right?)
Even if that would work the way I think it does, I can't imagine how long it would take to run that tool. The viewshed takes a while on its own, and I'm going to have nightmares imagining a script that runs thousands of viewsheds. I'm sure some smart person out there could make that process more efficient, but it's still a lot of number crunching. And even if you could get past that, the tool is still going to treat your 8 surrounding cells, your screened areas, as a blocky wall of impenetrable earth ... which is not an especially realistic representation of trees.
If there were a few highly sensitive locations in the viewshed of the tower, you could manually edit out the trees in those spots and leave the surrounding trees for screening, but you can't do that systematically/viewshed-wide.
Thanks for your thoughts and comments, everyone. It's heartening to see that others need to perform a credible visibility analysis. Various workarounds have been tried, with mediocre results. The current Visibility tool just isn't designed for the full complexity of the problem.
So what's next?! Who is going to build a tool that will give a real-world analysis of visibility? Not me, as it's far beyond my GIS and scripting abilities. But there's someone out there who's got the skills needed. Is it you? Let's summarize the problem and a process to solve it:
Does that leave anything out of the tool wish list?
Perhaps ESRI is listening and will add this tool to the extensive standard toolbox!
Regards,
-Gary