Select to view content in your preferred language

Is a Reverse Viewshed Analysis Possible?

2516
3
07-07-2021 08:15 AM
RyanUthoff
Frequent Contributor

I am looking to do a reverse viewshed analysis. I have a DEM and I can use the Viewshed tool to determine what is visible using a set of observer points.

However, I would like to do the reverse of this where I use a DEM to find observer points that can maximize visibility with the least amount of observer points as possible. Basically, I want to find observer points that will make all areas in my DEM "visible."

Hopefully that makes sense. Is this something that is possible to do within Esri?

Tags (3)
0 Kudos
3 Replies
DavidPike
MVP Frequent Contributor

Possibly create a large amount of viewsheds from regularly spaced points within your AOI, then comes the difficult part using python and numpy or similar to do some combinatorics to find the % coverage of the AOI when the rasters are added - against the total rasters/obs points within that combination.  Obviously the greatest coverage would come from a combination of all of them, so you'd have to use some common sense to limit the max coverage (e.g. I have only 10 antennae to site).  The combinations would also become exponential so it's actually a very difficult computing power problem I would say.

A more nuanced method would be to initially limit the observation points/sites to computed ridges.

by Anonymous User
Not applicable

Hi Ryan

are you at liberty to discuss your actual use case?

 

This sounds like a 'set cover' problem, (see The Design of Approximation Algorithms , Williams, section 1.2, for definitions) which means there probably aren't any efficient solutions. There might be some effective heuristics that could be used, if we know specifics.

This paper might also be useful: "Higher isn’t Necessarily Better, Franklin and Ray".

 

Without having any other details, the following greedy heuristic might be worth trying:

1. pick a sample of observers (as suggested by David below) and run viewshed separately from each .

2. add the observer with the the highest count of visible cells to the output

3. mask out that visibility set from every other observer's result

4. resort those remaining visibility sets

5 .goto 2.  Stop when the count of cells in the remaining per-observer visibility maps drop below some threshold or when you have no more observers to process.

 

RyanUthoff
Frequent Contributor

I am just doing this for a personal research project. To keep it short, I'm mapping all of the amateur radio repeater/transmitter locations in my state and doing a viewshed analysis to see who is and who is not covered by repeater/transmitters (coverage is typically line of sight from repeater, up to approximately 30 miles). The viewshed is perfect for that and I've already completed that phase of the project.

But, I am looking into taking it a step further to see where we could build additional repeater/transmitter sites to ensure everyone is covered (since amateur radio can be used in emergency situations and is often the last form of communication available since it doesn't rely on any IT infrastructure to run). So, being able to determine the optimal locations where a repeater would cover the most area with the least amount of repeaters would be really useful.

This is purely for my own personal research purposes though. It is totally fine if it is not possible. I figured if there was something out there, it would be so computationally expensive it would probably be impossible for me to do. Thank you for your suggestions. I will definitely look into that!

0 Kudos