I have elevation data in a raster, river (blue line) and the flooded area (black polygon) as shown in the image below:
I want to find the water depth in the flooded area (inside the black polygon). Outside of the polygon, water depth is obviously zero. Inside the polygon, the land elevation is lower than outside (At least it should be)
What I tried to do and did NOT work was this: I assigned nodata value to the points inside the polygon. Then I used Eucilidean Allocation to find the closest points just outside the polygon and assign it to nodata points. Then, I Subtracted the original land elevation raster from this new raster. However, I get big negative values because after all, it was not a good method at all.
Now, I am thinking: I need to follow the water stream line. At each point, draw a perpendicular line to the river and let it intersect minimum two times with the polygon. Find the average value of cells inside a circle (with those intersections as center). Find the mean of these averages. apply this value too all points in that cross section (perpendicular line to the river). Now, is there any way on earth I can do this? Hopefully I don't need a for loop for this? Do you guys have any other suggestions, perhaps easier ways?
I am using ArcGIS 10.1 with Spatial Analyst and 3D Analyst extensions.
Answer
To do this you would need a 3d Analyst and Spatial Analyst license.
First, elevate your waterbody using Interpolate Shape, this will give the baseline for your elevations by attributing the polygon with the Z values from the DEM to each vertex.
Build a terrain with your waterbodies as the elevation data source (perhaps buffer by a small amount and include that as hard clip) and use Extract by Mask to get only the water area by using the waterbodies as the mask; we only want the elevation inside the waterbodies because, as you said, outside the waterbody boundary the depth is 0.
Convert your terrain to raster using Terrain to Raster which will give raster inside the waterbodies at the same level as the baseline (edges).
Now do raster calculation and subtract the original DEM with the rivers. The difference raster should be now the depth of the water, or more correctly the bed below the bank.
No comments:
Post a Comment