Can I create a 3D distance raster?

782
4
07-24-2010 02:31 PM
jimparsons
New Contributor III
So, a 2D raster will give you the distance from a central point. What if my central point is on top of a mountain, and I want an accurate distance to other parts of my map? Ie a 3D distance between the centre point and every cell.

How do I combine my DEM with a distance raster to produce a 3D distance raster?

Thank you
Tags (1)
0 Kudos
4 Replies
EricRice
Esri Regular Contributor
Check out the Path Distance tool in Spatial Analyst.  Based on my understanding of your desired output, do not input a cost raster, and only input the surface raster (your DEM).  The values in the surface raster are used to calculate the actual surface distance that will be covered when passing between cells.

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//009z0000001q000000.htm

Regards,
Eric
0 Kudos
jimparsons1
New Contributor
Thanks Eric. That's certainly closer. But I want the 3D distance from my observer point to every other cell in the grid, regardless of the surface distance. Imagine a ray that could shoot straight through the terrain until it intersected the target cell. I need this distance.

I need it to create a depth map by projecting the distance raster in ArcScene and matching the viewer position with the centre of the distance raster.

I suppose it could be made more efficient by starting with a viewshed from the point:

1. find all cells visible from P
2. calculate 3D distance from P to every visible cell

In this case we can forget about distance to invisible cells. How would you go about getting the distance to a selection of cells? I don't want to trace the path on the ground, I want the distance that a ray of light would travel from cell to cell in a straight line.
Thanks
0 Kudos
EricRice
Esri Regular Contributor
Hi Jim,

I think I can get you most of the way there. Let me know what you think of these workflows.


Do the Viewshed, and use the visible area as a mask in Extract by Mask to get the DEM that is visible.  Convert the visible DEM to points.  Make those points 3d.

Make your observer 3d also (by attribute or by surface value).  Go to 3D Analyst tools > 3d Features > Near 3D. Input 3d observer and 3d visible points.

Near 3D (only in ArcGIS 10)
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00q900000005000000.htm

If you really need a raster output, calculate the 3d distance of every cell (3d points) to the observer point, then convert the points back into a raster using the 3d distance field.  Then clip it to just the visible portions.

If you don't have 10 I could see you doing a combo of Euclidean Distance and creating a difference raster (height difference) between your surface and a constant raster where the observer is.  This would give you sides A and B of a triangle.  Then take the sqr root of A squared + B squared to get C (the 3d distance).
0 Kudos
AndrewDuff
New Contributor
So, a 2D raster will give you the distance from a central point. What if my central point is on top of a mountain, and I want an accurate distance to other parts of my map? Ie a 3D distance between the centre point and every cell.

How do I combine my DEM with a distance raster to produce a 3D distance raster?

Thank you


I am bumping this old thread because I have a similar problem.

I have two feature classes.  One contains a point representing an animal location (actually it contains 400,000 points, but for simplicity lets just start with one).  The other contains a set of lines representing roads on the landscape.  I would like to calculate the distance to the *nearest* feature but I would like to do this in a way which accounts for travel over rugged terrain such that I have the true on the ground.  Near gets me 2D nearest distance, Near 3D does this in 3D space but not across the landscape (up and down over hilly terrain).

If anybody has any suggestions on this please let me know.  I am not opposed to writing custom python or moving this analysis to another program such as R.

It seems to be a cost or path distance problem.  Of course it will be computationally intensive to say the least for 400,000 locations, more so that Near itself.

Andy
0 Kudos