Visible altitude across a raster from a point

Visible altitude across a raster from a point

I have a raster surface model and I'm trying to determine the height an object would need to be at to be visible from an arbitrary point at an arbitrary altitude.

I am currently using Grass and have tried r.viewshed, while it does seem to be able to generate an elevation delta between the raster and the observer, I do not see a way to generate a delta between the raster and the line of sight at every point. my expectation is that everything that is directly visible would have a value of 0, and then shadowed areas would indicate the minimum height an object would be visible at.

While I am using GRASS at the moment, I am not against considering another piece of software.

Anybody have any ideas? or am I going to have to pull the source for viewshed and modify it?

I guess you could achieve that with r.los. You could set different heights and see if there is a visibility.

r.los elevation.dem out=los.025 coord=598869,4916642 obs_elev=25 max_dist=1000 r.los elevation.dem out=los.050 coord=598869,4916642 obs_elev=50 max_dist=1000 r.los elevation.dem out=los.100 coord=598869,4916642 obs_elev=100 max_dist=1000

r.los will return the vertical angle in degrees and make sure that you set themax_distto the distance you need to speed up the process.