Step by Step: Flood Hazard Mapping Using HEC-RAS Mapper

Table of contents


Step 1 - Setting up the HEC-RAS model

Step 2 - Creating RAS geometry

Step 3 - Add river attributes

Step 4 - Creating RAS mapper

Step 5 - Run HEC-RAS model

Step 6 - Export HEC-RAS output

Step 7 - Mapping inundated areas in HEC-RAS


The goal of this Flood Hazard Mapping Recommended Practice is to evaluate the possible inundation extent in a river reach using the basic functions of RAS Mapper in HEC-RAS to create a 1D model of a river system.

Mapping the results of a hydrodynamic model to determine the inundated areas is important in order for:

  • identifying the important areas that are inundated in order to help decision makers to take action that would mitigate the effect of floods or to implement adaptation measures to avoid similar floods in the future, if possible
  • evaluating the quality of model results

The river for which the tutorial is carried out is called Baxter and located in the United States of America. Baxter river data is based on the materials of Purdue University that are available at:

Remark: The link above also provides a step-by-step procedure on flood inundation mapping using HEC-GeoRAS and ArcGIS. With the introduction of HEC-RAS 5.0.4, there is no need for using ArcGIS and HEC-GeoRAS, therefore the steps in this tutorial are significantly different. However, we are using the same data, transformed into meters.

IMPORTANT! In this tutorial, functionalities that have only been added to HEC-RAS in version 5.0.4 are used. Therefore, it is only possible to follow this tutorial using that version.

Download HEC-RAS:

In order to start the tutorial, you need to be familiar with the HEC-RAS modelling system.

A model in HEC-RAS is called project. A project consists of multiple files with multiple file extensions. These files are:

File extensioncontent
PRJMain Project
G**Geometry description
F**Steady Flow data
U**Unsteady Flow data
P**Plan for computation
R**Run (contains results)
O**Output (used to create graphs and tables)

Step 1.   Setting up the HEC-RAS model

1.1. Data

=> Create a folder on the Desktop with the name Baxter_flood

=> Download the Baxter input data from:

=> Extract the downloaded data within the folder Baxter_flood

1.2. Set up HEC-RAS project

=> Launch HEC-RAS 5.0.4

  => Set the units to be SI units: Options→Unit System select System International (metric system) and tick set as default

=> Define the created folder as your Default Project Folder:

Options→Program Setup→Default Project Folder… select the Desktop folder Baxter_flood

=> Create new project File→New Project…

=> Select Default Project Folder

=> Enter title as Baxter


Step 2. Creating RAS geometry

The geometry in HEC-RAS contains information on cross-sections, hydraulic structures, river banks, roughness coefficient, etc. This is stored in a dedicated geometry file (.g0*). To create all necessary geometric data for HEC-RAS geometry file, before version 5.0.4, it was necessary to perform pre-processing of available data using HEC-GeoRAS plugin in ArcGIS. These elements are now created in the RAS Mapper component of HEC-RAS.

The following steps are based on Chapter 3 of the manual provided by HEC-RAS (accessible through HelpUsers Manual Supplement). Please refer to the manual for further information or for a description of tools outside the scope of this tutorial. The manual has also been adapted using an exercise by V. Merwade, Purdue Univ.

2.1. Specify coordinate system

RAS Mapper is a dedicated interface for visualization and processing of geospatial data. Before geometry generation, it is necessary to create the basic conditions to develop geospatial features. These include specifying a coordinate system. The coordinate system defined by the projection file needs to be a projected coordinate system.

=> Select GIS Tools→RAS Mapper or select 

=> Select Tools→Set Projection for Project…

=> In Projection - ESRI Projection File (*.prj), add projection file ClipPoly from Baxter_flood\Projection_Data\

=> In XS River Stations - Units select Meters

2.2. Add terrain data

=> Select Tools→New Terrain…

=> In Input Terrain Files select 

=> Add raster file from Baxter_flood\Terrain_Data\

RAS Mapper view after adding terrain data

Remark: If the Terrain does not show, make sure both Terrains and Terrain are ticked. If still does not work, zoom in and zoom out. If still does not work, save (File→Save), close RAS Mapper and HEC-RAS and open all again.

2.3. Create new geometry

In this tutorial we assume that the flow in the river is mainly one-dimensional. Therefore, we will build a georeferenced 1D geometry based on a Terrain dataset. In this step, an empty geometry is created.

=> Right-click Geometries and select Add New Geometry

=> Enter title as Baxter

=> Right-click Baxter and select Auto Update Geometry

Step 3. Add river attributes

3.1. Create river centerline

River centerline is used to determine the river network of a HEC-RAS model. Baxter River is flowing from East to West and receives water on the right bank from Tule Creek. Consequently, there are three reaches that are defining the river network: upper Baxter River (Upper reach), lower Baxter River (Lower reach) and Tule Creek Tributary as shown in the Figure below.


Each centerline is created/digitized separately, approximately following the centre of the river, from upstream to downstream. Centerlines are aligned in the direction of flow.

=> Zoom-in to the most upstream part of the Baxter River to see the main channel

=> Select Rivers (it should turn to the colour magenta)

=> Right-click on Rivers and select Edit Geometry (BETA)

A toolbar will appear and its tools are used to digitize river features. The feature being edited is marked with a pencil symbol.

When digitizing river, it is necessary to name them. Each river in HEC-RAS must have a unique river name, and each reach within a river must have a unique reach name.

River centerlines are created as follows:

- Baxter River

=> Select the tool  (Add Features). Start digitizing the river centerline from upstream to downstream until the end of Baxter River. Click in the direction of flow.

=> Double click when done.

=> Enter names as:

River Name: Baxter River River Reach: Upper Reach

- Tule Creek

=> Start digitizing the river centerline from its upstream end towards the junction with the Baxter River.

=> Double click at the junction with Baxter River to finish digitizing.

Note: There is no snapping feature in RAS Mapper, so the ends of the rivers cannot be snapped. However, RAS Mapper automatically finds the ends of the centerlines that are within that “buffer” region denoted by the red dashed circle and connects them using a junction.

=> Enter names as:

River Name: Tule Creek River Reach: Tributary

=> Select Yes to creating a new junction

- Baxter River (Lower Reach)

=> Enter reach name as Lower Reach

=> Enter junction name as Junction 1 (default)

After river centerlines are created, it is possible to the reaches and their names.

After finishing editing any feature, it is important to save the result.

=> Right-click Rivers and select Stop Editing

=> Say Yes to save edits

3.2. Create river banks

Bank lines are used to distinguish the main channel from the overbank floodplain areas. Information related to bank locations is used to assign different properties for cross-sections. Creating bank lines is similar to creating the channel centerline, but there are no specific guides with regard to line orientation and connectivity - they can be digitized either along the flow direction or against the flow direction, or may be continuous or broken.

=> Under Rivers, right-click on Bank Lines and select Edit Geometry (BETA)

=> Digitize banks, first the left bank and then the right bank for all reaches. Digitize one reach at a time.

There are no specific guidelines for digitizing  banks,  to  be  consistent,  follow  these  guidelines:

1)    start  from  the  upstream  end;  2) looking downstream, digitalize the left bank first and then the right bank. When digitizing the left bank, you do not have to stop at the intersection, you can have a single bank for the whole reach. However,  you cannot cross the centerline for Tule Creek tributary River, so  you will need two separate lines for the right bank.

=> Stop editing and save

3.3. Create river flow paths

The flow path lines are used to determine the reach lengths between cross-sections, in both the main channel and over bank areas. They are placed at the centre-of-mass of flow in the left and right overbanks. They should be drawn in the direction of flow.

=> Under Rivers, right-click on Flow Paths and select Edit Geometry (BETA)

=> Digitize flow paths, in the flow direction.

The left and right flow paths must be digitized within the floodplain. Look at the DEM to try and estimate the boundaries of the floodplain. These lines are used to compute distances between cross sections in the over bank areas. Thus, digitize the flow paths at the boundary of the floodplains.

=> Stop Editing and save

3.4. Create river cross-sections

Cross-sections are key inputs to HEC-RASCross-section Xlines (cutlines) are used to extract the elevation data from the terrain to create a ground profile for channel flow computation. It is important to create an adequate number of cross-sections to produce a good representation of channel bed and floodplain.


1)    They are digitized perpendicular to the direction of flow.

2)    They must span over the entire flood extent to be modeled.

3)    They are always digitized from left to right (looking downstream).

4)    Each  Cross Section should intersect the centerline, both bank lines and both flow paths once.

=> Right-click on Cross Sections and select Edit Geometry (BETA)

=> Follow the above guidelines and digitize cross-sections using the Add New Feature tool

=> Check if the cross-section is appropriate

Checking that each cross-section is wide enough to cover the floodplain can be done by:

=> After finishing the cross-section, select(Plot Terrain Profile)

If you get a cross-section profile that has a long horizontal line at the edges, the cross-section needs editing.

=> After digitizing the cross-sections, stop editing and save.

3.5. Check for errors and check attributes

There are errors, such as the mentioned in the previous step, that hinder a HEC-RAS model to run. RAS Mapper makes an indication of such errors.

=> Check the feature Errors

=> Inspect highlighted problems and correct them

Additionally, as soon as cross-sections are created, HEC-RAS attributes to them: Reach/River name; station number; bank stations; and downstream reach lengths. All these attributes are based on the intersection of cross-sections with other layers. The attributes added for both rivers and cross-sections can be seen by:

=> Right-click Rivers and select Open Attribute Table

=> Right-click Cross Sections and select Open Attribute Table

After the checks, it is important to deselect auto updating so the model is not changed by accident.

=> Right-click in Baxter and select Edit Geometry

=> Right-click on Baxter and deselect Auto Update Geometry

=> Stop editing and save.

Step 4. Creating RAS mapper

Go to the geometry file you created at the beginning of the tutorial by clicking on Edit >> Geometric Data... in the main HEC-RAS window. The river centerline and cross-sections have been imported automatically from the RAS Mapper and should be visible as shown below. If it does not show automatically, go to file > Open Geometry Data and open the Baxter file. If you also see the terrain in the background,  it is okay. If you want to turn it off, you can use the background layers button (red box) to uncheck the terrain layer.

4.1. Setting roughness

Roughness data can be defined for each cross-section in the main channel, left bank and right bank. To define roughness for all cross-sections:

Select Tables→Manning’s n or k values (Horizontally varied)…

For each reach, follow the instructions:

=> Select cells

=> Select Set Values…

=> Enter value

Baxter River – Upper Reach:

- Left bank (#1): 0.06

- Channel (#2): 0.035

- Right bank (#3): 0.04

Baxter River – Lower Reach:

- Left bank (#1): 0.08

- Channel(#2): 0.035

- Right bank (#3): 0.04

Tule  Creek – Upper Reach:

- Left bank (#1): 0.04

- Channel(#2): 0.035

- Right bank (#3): 0.04

4.2. Flow data and boundary conditions

HEC-RAS allows for two main types of simulation: steady and unsteady state analysis. In steady state analysis, constant boundary conditions are entered, whilst for unsteady it is included a hydrograph. In this tutorial it is performed several steady state analysis because they correspond better with evaluating design floods (e.g. 100-year flood).

Firstly, upstream boundary conditions are defined:

=> Select Edit→Steady Flow Data or select 

=> Enter Number of Profiles as 3

=> Enter remaining data as shown below

=> Select Apply Data

Next, the definition of the downstream boundary is done (see Error! Reference source not found.).

=> Select Reach Boundary Conditions

=> Select Downstream for Baxter River, Lower Reach

=> Select Normal Depth, and enter value 0.001

=> Select FileSave Flow Data (give title Baxter)

=> Close the Steady Flow editor.

Step 5. Run HEC-RAS model

=> Select Run→Steady Flow Analysis or select 

=> Select Subcritical Flow Regime

=> Select Compute

=> After successful simulation, close the computation window and the steady flow window.

Before inspecting inundation results a quick look and verification of output results are advisable, in order to identify any errors in the input data.

Step 6. Export HEC-RAS Output

=> Select File→Export GIS Data.

=> Make sure all three reaches are selected (Reaches 3/3)

=> Select Select Profiles to Export… and choose all profiles

=> In Flow Distribution, tick Velocity

Step 7.   Mapping inundated areas in HEC-RAS

The visualization of inundated areas can be performed in the RAS Mapper. From this interface it is possible to store some results

=> Select GIS Tools→RAS Mapper or select

The figure below displays the final inundation map for Baxter River for PF3.

=> Close RAS Mapper, save the HEC-RAS project and exit.