Wednesday, February 10, 2016

Post-Processing: Creating Inundation Maps with very Large Terrain

Written by Mikell Warms  |  WEST Consultants 
Copyright © The RAS Solution 2016.  All rights reserved.   

We often have to deal with very large models covering hundreds of river miles.  The terrain data associated with these models can be equally massive, which can cause memory/processor issues when trying to delineate inundation maps.

This post is not concerned with pre-processing our model geometry. Instead, we have a completed model with results we are happy with, and now we want to make inundation shapefiles. This is often necessary when completing dam breach analyses/flood analyses/etc. 

There are typically two ways in which flood inundation shapefiles are created: (1) using HEC-GeoRAS and (2) RAS Mapper. Both methods can face uphill battles when terrain data begin to exceed 20-30 gigabytes, depending on performance characteristics of your computer. Below are some typical errors you may see when trying to create inundation shapefiles with RAS Mapper on very large terrain.

Figure 1: RAS Mapper Memory Error Messages

There IS a way to get around this using RAS Mapper. The first thing you’ll need to do is
Clip your terrain into smaller, more manageable pieces using your favorite GIS software. In this example I’ve used ArcGIS. In ArcMap, it is easy to clip terrain using a clipping shapefile and the Clip tool under Data Management > Raster > Raster Processing. For this example, I’ve clipped my terrain into 12 terrain pieces.

Figure 2: Clipped Terrain over Columbia and Deschutes Rivers downstream of John Day Dam

You may find (as I did), that your initial terrain splitting will not be quite enough, so you may have to complete this step again.

Next: Use RASMapper to convert ALL of your DEM pieces into terrain usable by RAS. Make sure all of your DEM pieces are in the project’s projected coordinate system.

If converting ESRI grids to RAS terrain, any of the many files that make up the ESRI Grid  can be chosen by the terrain creator window:

Figure 3: ESRI Grid file format

Figure 4: Clipped ESRI Grids converted to RAS terrain using RAS Mapper (look at all of those terrain files!)

Figure 5: Creating RAS terrain layers in RAS Mapper

The next steps will have to be repeated for as many terrain pieces as you have. Start by associating the first terrain piece to the results of the plan you wish to map (Right click on Results in the Layer Manager in RAS Mapper > Manage Geometry Associations):

Figure 6: Associating terrain layers with geometry and results in RAS Mapper

Make sure that RASMapper has mapped the depth grid (or any other result) over that terrain piece before proceeding. You may have to click inside the RASMapper window and pan around to get the map to update.

Figure 7: Note that the depth grid is plotted over the correct terrain piece.

Next, right click on Results in the Layer Manager in RAS Mapper, and select Manage results maps.

Figure 8: Manage Results Map Menu in RAS Mapper

If you have more than one plan’s results in the menu, make sure to choose the plan or plans that you are interested in mapping. Select Add New Map from the menu. Choose Depth or Inundation Boundary as your Map Type, a Maximum Profile from the Unsteady Profile Menu, and Polygon Boundary should be set to 0. You can name the Layer anything you would like, although naming it something similar to your terrain piece would be helpful. Click Add Map.

Figure 9: Results Map Parameters Menu in RAS Mapper

We’re not finished yet, RAS Mapper still has to Compute the map properties and create the shapefile. In RAS Mapper, Right Click on the added map and choose “Compute/Update Stored Map”.

Figure 10: We have to tell RAS Mapper to compute the added maps/inundation shapefiles

This is where you will figure out whether or not your terrain pieces are small enough. If the terrain pieces are still too large, you may get one of the error messages shown above. If you succeed in creating your inundation shapefile, repeat this process until you have created shapefiles for all of your terrain pieces.

Once all of the inundation shapefiles have been completed, return to your favorite GIS software and add the inundation polygons to your map.

Figure 11: Unmerged inundation shapefiles.

Note: In the above figure, there are some split channels that are not included in the inundation. This may be caused by errors in the model or the terrain extent may not be large enough for the inundation. Prior to completing the next step, ensure that all of your individual pieces are correct. For this analysis, we were not concerned with this section of the inundation so it was not addressed.  
Next, merge the polygons to create one large polygon. In ArcGIS, the Merge tool under Data Management > General in the Toolbox can be used to easily merge the shapefiles.

Figure 12: Merging Inundation Shapefile Pieces

You have now created an inundation shapefile over a very large area and can proceed to make detailed inundation maps for your project.

Figure 13: Finished Product


  1. When clipping the raster, don't forget to use the Snap Raster function. While in the Clip dialog, click on "Environments..." at the bottom of the dialog window. Expand the Processing Extent, then select your original raster as the Snap Raster. This forces the output pixels of your clipped raster to align to your original raster. Otherwise, ArcGIS will re-sample the raster when you clip.

  2. This is a good point that also brings up another possible issue that users may encounter between the individual inundation shapefile pieces.

    You may have to manually post-process the seams between the pieces slightly if they do not match up completely once they are merged. You may see a small "line" at the seams where 2 polygons do not overlap perfectly.

  3. One way around this issue is when doing the clip, have the polygons overlap. This is the same idea that you had to use when using multiple terrains in HEC Geo-RAS.

  4. One way around this issue is when doing the clip, have the polygons overlap. This is the same idea that you had to use when using multiple terrains in HEC Geo-RAS.

  5. I completed the work in hec georas and exported data to hec ras, after editing geometric data and steady flow data when i run the analysis, i am getting this error. "Bridge does not contain  an opening on Upstream side", Anybody here know the answer kindly do answer as soon as possible. I will be very Thankful.

    1. Make sure you have the opening defined by the low chord on the upstream side as well as the downstream.

  6. Did not get that Chris Goodell, could u please elaborate more?

    1. Go to the bridge/culvert editor. Open the Deck/Roadway editor. Here you will see a table that includes columns for upstream station, high chord, and low chord; as well as downstream station, high chord, and low chord. The message you are getting implies that you have not defined a bridge opening on the upstream side of the bridge. You can define the opening on the upstream side using the low chord column. Once you have done this, look at the plot in the Bridge/Culvert Editor and make sure you see an opening under your bridge deck for both the upstream and downstream sides. This is basic stuff, so first, please read the HEC-RAS manual on how to enter a bridge-this will explain a lot.

    2. already done all this work, still got the error.

    3. Please post a screenshot of the bridge/culvert editor for the bridge that is giving that error. Put it on dropbox or google drive and post the link.

    4. ok i'll, i have one more confusion could you please clear it to me.
      in hec ras i am getting values of hydraulic depth between 0 and 14, but when i am performing analysis in hec georas for inundation i am getting maximum values upto 50. i am working with metric units. so these values are very high. could anyone guide why is it so?

    5. It could be your cross sections are different from your terrain. Or you have terrain in between cross sections that is much different (i.e. deeper). Your Google Drive link is no longer working.

    6. This comment has been removed by a blog administrator.

    7. This comment has been removed by the author.

  7. I am modeling a ravine with all the area as 2d area. on the site where is the bridge made a connection (SA / 2D Area Conn). A dam with a culvert, the model runs me well without mistakes have a mesh and a computational time that make me a stable model, but the problem arises me when I go to see the results in the ras mapper can not get to know if I considering the bridge as the flow passes unhindered and where the bridge should be no obstructions and increased speed effects of batteries, but not if you have to activate an option after modeling the bridge to take it into account ... please help . Annex images

  8. Hey everyone. Did anyone had problems to work with the shapefile of the inundation map layer in an alternitive GIS after export (I use QGIS). My attribut table is empty and the polygon Layer has just one object. After working for a while with the polygon layer (deleting some points..) i can't see the layer anymore. Just if i zoom out and the hole polygon is visible. Anyone an idea?

    1. I think this was fixed in the most recent release of HEC-RAS 5.0; but in the past I've used the "Repair Geometry" tool in ArcMap to repair broken inundation shapefiles from RASMapper.

  9. Dear Chris,

    Is there any chance that via email (or here) you could post what is the not-so-general idea (or redirect me to a paper, study or white paper) of the algorithm that HEC-RAS uses to "intersects" a water depth to the DEM?

    The thing is that I have a water depth generated with another 2D package (in points) and have a "flood map" (Raster, shp,or even points...)generated from them, but I want to correct it using a high resolution LiDAR raster (the water depth was made using a decent DEM though, but not as good as the new one), and trying to implement a script in Python that does that specific task.

    PS: A coworker gifted me your Book and told me about this Blog to complement it!

    Thank you so much for your time!

    José D.

    1. Hi Jose- Tell your coworker thanks for me for gifting you the book. Hope you like it. If I understand your question correctly, you are trying to use a water surface grid generated from another program (not HEC-RAS) and then view it in RAS Mapper using a different Terrain (from the LiDAR raster)? If so, you'll either have to do this all external to HEC-RAS in a GIS application, or you'll have to recreated the water surface grid in HEC-RAS. If you do the latter, you can always use a different Terrain for your results than you do for your computations (see Associate Terrain Layer...). Let me know if I misunderstood your question.


  10. Hello,

    We are running into a different Post-Processing error and are curious if anyone might have some guidance. We are trying to store/save to disk a velocity output map layer as a point feature. We would like to be able to use the point feature layer shapefile in ArcMap for our purposes.

    We have tried to execute this and when the compute/update stored map command is selected, the following error is obtained: "Object reference not set to an instance of an object". In the select point layer option under results map parameters, there appears to be a dropdown menu for selecting a "point layer" but it is inactive. This could be the problem but we cannot seem to figure out how to link to another file. We have exported the 2D flow area to a shapefile within the project folder but this does not seem to work.

    Please help! Thanks in advance. Your time is much appreciated.

    Kind Regards, -Tom G

  11. In version 4.1 RAS Mapper, you could edit the "Transition lines" (lines connecting the ends of the cross section that created a polygon of sorts to create the flood map surface). In 5.0.3, this line is called the "river edge line". Is there a way to edit this?

  12. Pls am Having d same problem when using hecgeoras whenever m running the flood delineation from raster it's displaying object reference not set to an instance of object


Note: Only a member of this blog may post a comment.