I’ve got a vexing GIS analysis problem which is conceptually fairly straightforward, but in reality more challenging to figure out….

Basically, I need to calculate the VOLUME of floodwater within a 100 year floodplai, using ArcGIS 10.0 (all extensions available).

My input datasets are:

  • LiDAR DEM (1m pixel or 3m pixel) of bare ground (raster)

  • 100 year floodplain (output of USACE HEC-RAS analysis), Polygon Shapefile, but attribute table has no useful content.

So far I have overlaid the floodplain polygons over the LiDAR raster, [using Extract by Mask tool from Spatial Analyst], so that I have the ground elevations are along the outside edge of the floodplain (think of the top of the bathtub). Key concept is that the top of the floodplain gradually falls in elevation as you move from the headwaters down through the watershed.

Then, (this seems to be the impossible part) I need to figure out how I can take the elevations along the outside edge pixels of the raster floodplain (output of previous Extract by Mask) and extend them to the equivalent elevation on the other side of the floodplain, and “raise” all the pixels in between the 2 outside edges of the floodplain to the “top level” of this 100-year floodplain.

Once I have this “top elevation” of the floodplain water, I should be able to use the CUT AND FILL tools in ArcGIS to simply subtract the LiDAR ground elevations from the “top floodplain elevation” and compute a volume between these two rasters.

I’ve been researching this for days and have yet to find a solution.

Perhaps I’m thinking of this completely wrong?

I would have expected to find others who have dealt with this problem, but while there are similar problems, none appear to offer a solution.

  • 1
    Could you please provide screenshots and pictures to illustrate your question?
    – Taylor H.
    Feb 21, 2013 at 20:27
  • 1
    I have run into this in the past, and will be interested to see if anyone has a good (read: easier than what I've done) solution. I've accomplished this by creating lines perpendicular to the floodplain, populating them with the intersecting floodplain elevations and then interpolating a sloping raster based on the line elevations - but this seems to me to be an inelegant solution. If nothing better comes along, I'll provide some more detail in an answer.
    – JWallace
    Feb 21, 2013 at 21:48
  • I'm not using HEC-RES, but as far as I know it is 1D hydrodynamic model. So, your results probably come as water levels at the x-sections (not sure where did you get polygon from). In this case, I would interpolate surface from your sections with HEC-RAS levels (with TIN or some other smoother int. technique as Topo 2 Raster), then substract DEM from interpolated surfece which would leave you with depths (get rid of minus values, depths are only possitives). From there, just multiply your cell by its area (your case 1x1=1 or 3x3=9) and than just add up all pixells to get your volume.
    – Tomek
    Feb 22, 2013 at 6:40
  • I agree with Taylor H - upload a sketch of what you want this well help us understand the exact nature of the problem.
    – Hornbydd
    Feb 22, 2013 at 12:50
  • This forum only allows posting of images if you have a "reputation" of at least 10. Being a newbie, I only have 6... sorry guys.
    – user15428
    Feb 22, 2013 at 21:12

1 Answer 1


As mentioned in my and Tomek's comments above, this analysis can be completed by interpolating a sloping raster from either existing HEC-RAS cross sections, or by creating your own cross sections by querying your lidar surface. If you have access to the original HEC cross sections (i.e. the lines used to create the floodplain extent polygon), you can use these as contours in the Topo to Raster tool. The resulting surface will be a sloping raster that represents the floodplain inundation surface, which you can then use in your Cut/Fill calculations to determine the flood volume.

Alternatively, in the absence of the original cross section data, you can create your own cross section lines, and populate them with Z-values from your lidar surface. To do this, digitize lines perpendicular to the floodplain, terminating at the outer extents of your floodplain polygon. Create these lines at intervals sufficient to capture the variability of the down-valley slope (this approach can become fairly tedious if you have a large study area). You can then query the lidar elevation values at the intersection of your newly digitized XS lines, and use those values to populate an elevation attribute for your XS lines. Elevations at either end of your lines may not match exactly, but averaging the values should approximate the inundation surface elevation. From here you can perform the Topo to Raster and Cut/Fill analyses as mentioned above.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.