Tutorial on using HEC-GeoRAS with ArcGIS 10.x and HEC-RAS Modeling Prepared by Venkatesh Merwade School of Civil Engineering, Purdue University [email protected] May 2016 Objective The objective of this exercise is to explore and learn basic functions in HEC-GeoRAS for. Thank you for downloading HEC-GeoHMS from our software portal. Each download we provide is subject to periodical scanning, but we strongly recommend you to check the package for viruses on your side before running the installation. This download is absolutely FREE. The version of the program you are about to download is 10.4.0.1.
.Getting started. ArcGIS for Desktop includes many components. See for a list of ArcGIS for Desktop 10.4.1 components. Review the. Administrative privileges are required for installation. Microsoft.NET Framework 4.5 or higher is required.
Download and install the component. If upgrading, review. numbers and authorize the software.
If using a Concurrent Use license, you will need an ArcGIS 10.4.1 License Manager, which can be used for all ArcGIS 10.x Concurrent Use licenses.
You have already downloaded the three required zip files (cf. Above under 'required datasets'). If not, you will find the links to the also below.1.1.
Unzip in your working directory. The ArcCatalog-view of the data folder is shown below:1) cedarssurgo is the geodatabase with SSURGO and tabular data for the Cedar Creek area;2) cedardem is the raw 30 for Cedar Creek obtained from and clipped for the study watershed;3) cedarlu is the 2001 grid from USGS. All datasets have a common spatial reference (NAD1983UTM16).1.2. Unzip in your working directory. The ArcCatalog-view of the data folder is shown below. A.1.Open ArcMap. Create a new empty map, and save it as cngrid.mxd (or any other name).
Add Analyst extension and activate it by clicking on Customize - Extensions, and checking the box next to Spatial Analyst.1.1. Add cedarluse grid to the map documentThe grid is added with a unique symbology assigned to cells having identical numbers as you can see below:These numbers represent a land use class defined according to the institute (LCI). A description of some of the land classes and their associated numbers can be found.1.2. Perform the re-classification of classesEventually, we are going to use these land use classes and soil group type, in conjunction with runoff curve numbers (CN), to create the curve number grid. The SCS CN table gives CN for different combinations of land use and soil group. The cedarlu grid has 15 different categories which you can leave unchanged, or reclassify the grid to reduce the number of land use classes to make the task easier.
By opening the attribute table of cedarlu, you will notice that majority of cells represent grass/crops, followed by forest, developed land, and then water. As these represent the four major classes, we will adequately reclassify cedarlu.
The following table shows how we will accomplish the reclassification of cedarlu.To implement the above re-classification, use the Spatial Analyst Tools in Arc Toolbox. Click on Spatial Analyst Tools-Reclass-Reclassify, and then double-click on Reclassify tool.In the reclassification, confirm the Input raster is cedarlu, Reclass field is Value, and then manually assign the new numbers based on the above table as shown below (leave NoData unchanged).Save the output raster as lureclass in your working folder, and click OK. A new grid named lureclass will be added to the map as shown below (if you get different colors in symbology is absolutely fine).1.3. Convert Raster to PolygonThe final step in processing land use is converting the reclassified land use grid into a polygon feature class which will be merged with soil data later. In ArcToolbox, Click on Conversion Tools-From Raster-Raster to Polygon. Confirm the Input raster is lureclass, the Field is Value, output geometry type is Polygon, and save the Output features as landusepoly.shp in your working directory (this output is saved only as a shapefile without any other options).
Click OK.You can symbolize the new landusepoly.shp to match with lureclass grid or leave it unchanged. Also, you can export landusepoly.shp to cedarssurgo.mdb to keep all the data in a single geodatabase. Save the map document.The processing of land use data for preparing curve number grid is now done.2.2.1. Add cedarsoilclip feature class from spatial feature dataset within cedarssurgo.mdbCreate a field named “SoilCode” (type: Text) in cedarsoilclip. The soil group data are available in the component table (in hydgrp field) so add the component table from cedarssurgo.mdb to the map document. Right click on cedarsoilclip in the ArcMap table of contents, and click on Join and Relates-Join.
Join component table to cedarsoilclip by using the common mukey field as shown below:Click OK. You may get a message asking you to index fields.
You can respond to this message by selecting either yes or no - it does not matter in this exercise because we will join the table only once. After you create the join, open the attribute table for cedarsoilclip, and you will see that the fields from component table are now available in cedarsoilclip feature class. Now populate the SoilCode (or cedarsoilclip.SoilCode) field in cedarsoilclip by equating it with component.hydgrp field. With the attribute table open, right click on SoilCode field to open the field calculator and then equate SoilCode to component.hydgrp as shown below:Click OK. If there are rows in component with “Null” values (which is the case for this dataset), you may get an error message saying the values are too large for the field. Just ignore this message and continue.
After the calculations are complete, you should see cedarsoilclip.SoilCode populated with letters A/B/C/D. Now remove the join and save the map document.
Before we proceed, let us deal with rows for SoilCode field. Review the SoilCode field, and you will see that most polygons have “C” soil group so let us assign a SoilCode of C for all polygons that do not have soil group associated with them (this is just one way of dealing with the issue for small number of Null rows. If the number of Null rows is significantly high, you may want to consult other resources before assigning SoilCode to these rows). Select the rows in cedarsoilclip that have values for SoilCode and assign them a value of “C”. You can use select by attributes option to do this. Now you should have a SoilCode (soil group) assigned to each polygon in cedarsoilclip.Next create four more fields named PctA, PctB, PctC, and PctD all of type short integer in cedarsoilclip feature class. For each feature (polygon) in cedarsoilclip PctA will define what percentage of area within the polygon has soil group A, PctB will define what percentage of area within the polygon will have soil group B and so on.
This is critical when we have polygons with more than one soil group (for eg. A-B-A/D would mean that group A, group B and group A/D soils are found in one polygon; A/D would mean the soil behaves as A when drained and as D when not drained, and so on). If we have classifications such as these, we need to define how much area of a polygon is A/B/C/D. For Cedar Creek area we have only one soil group assigned to each polygon so a polygon with soil group “A” will have PctA = 100, PctB = 0, PctC = 0, and PctD = 0. Similarly for a polygon with soil group D, only PctD = 100, and other three Pcts are 0. Now populate PctA, PctB, PctC and PctD based on SoilCode for each polygon. You can select features based on SoilCode and then use field calculator to assign numbers to polygons.
Alternatively, you can open the cedarssurgo MDB file with a spreadsheet application (e.g. Microsoft Excel, Open Office Calc).Now open the table cedarsoilclip and modify the fields PctA, PctB, PctC, and PctD as previously indicated.Add the modified table (here indicated with the name cedarssurgo$) to the map documentRight click on cedarsoilclip in the ArcMap table of contents, and click on Join and Relates-Join. Join cedarssurgo$ table to cedarsoilclip by using the common OBJECTID field as shown below:The resulting attribute table should look like below:The preparation of soil data is done at this point.
The next step is to merge/union both soil data and land use data to create polygons that have both soil and land use information. Save the map document.3.To merge/union soil and landuse data, use the Union tool in ArcToolbox available under Analysis Tools-Overlay. Browse/drag cedarsoilclip and landusepoly as input features, name the output feature class as “cedarsoillu” in the same geodatabase (cedarssurgo.mdb), leave the default options, and click OK (you can change the cluster tolerance to a small number, but this is not necessary).This process will take few minutes, and the resulting cedarsoillu feature class will be added to the map document. Save the map document. The result of union/merge features inherit attributes from both feature classes that are used as input.
However, if the outer boundaries of input feature classes do not match exactly, the resulting merged feature class (cedarsoillu in this case) usually will have features that will have attributes from only one feature class because the other feature do not exist in this area. These features are usually referred to as “slivers”. If you open the attribute table for cedarsoillu, you will find that there are several sliver polygons in this feature class that have attributes only from landusepoly and the soil attributes are empty, and vice versa as shown below:In the above table the columns that start with FID. Give the object ids of features from landusepoly and cedarsoilclip. A value of -1 for FID. Means one of the feature classes do have features in that area to union with features from other feature classes.
Basically a value of -1 for FID. Means that feature is a sliver polygon. You can also verify this by looking at other 111 fields. For example features that have FIDcedarsoilclip = -1 have attributes only from landusepoly and all attributes from cedarsoilclip = 0.One way to deal with sliver polygons is to assign missing values to all features. Another way (easiest!) is to just delete them. For this exercise we will take the easy route, but you may want to populate these features for other studies depending on your project needs.
Start the Editor. Select all the features that have “FID.” = -1 and delete them. Save your edits, stop the Editor, and save the map document.This finishes the processing of spatial data for creating the curve number grid. The next step is to prepare a look-up table that will have curve numbers for different combinations of land uses and soil groups.
In this case, we will use SCS curve numbers that are available from literature (SCS reports, or SCS tables from text books). The spatial features in conjunction with the look-up table can then be used to create curve number grid.4.Create a table named “CNLookUp” inside cedarssurgo.mdb. In ArcCatalog, select Data Management Tools-Table-Create Table.
Once the table is created, create the following fields in it:1. LUValue (type: short integer)2. Description (type: text)3. A (type: short integer)4. B (type: short integer)5.
C (type: short integer)6. D (type: short integer)Now start the Editor to edit the newly created CNLookUp table, and populate it as shown below.Columns A/B/C/D store curve numbers for corresponding soil groups for each land use category (LUValue). These numbers are obtained from SCS TR55 (1986). Save the edits and stop the Editor. Save the map document.5.We will use HEC-GeoHMS to create the curve number grid.
Activate the HEC-GeoHMS Project View toolbar in the same way as ArcHydro toolbar. HEC-GeoHMS uses the merged feature class (cedarsoillu) and the lookup table (CNLookUp) to create the curve number grid. The format and the field names that we have used in creating the CNLookUp table are consistent with HEC-GeoHMS.
Before we proceed, one final step is to create a field in the merged feature class (cedarsoillu) named “LandUse” that will have land use category information to link it to CNLookUp table. We already have this information stored in GRIDCODE field, but HEC-GeoHMS looks for this information in LandUse field. So create a field named LandUse (type: short integer), and populate it by equating it to GRIDCODE.On the HEC-GeoHMS Project View toolbar, click on Utility-Create Grids. Choose the lookup parameter as Curve Number (which is default) in the next window, Click OK, and then select the inputs for the next window as shown below:HydroDEM for Hydro, cedarsoillu (merged soil and land use) for Curve Number Polygon, CNLookUp table for Curve Number Lookup, and leave the default CNGrid name for the Curve Number Grid.This process takes a while (actually quite a while!).
Be patient and CNGrid will be added to your map document. You can change the symbology of the grid to make it look pretty!You now have a very useful dataset for use in several hydrologic models and studies. Save the map document, and exit ArcMap.OK. You are done!B.6.Open ArcMap. Create a new empty map.
Right click on the menu bar to pop up the context menu showing available tools and check the Arc Hydro Tools to add the toolbar to the map document. You should now see the Arc Hydro toolbar added to ArcMap.The Spatial Analyst Extension has to be activated, by clicking Customize-Extensions, and checking the box next to Spatial Analyst.6.1.Arc Hydro Terrain Preprocessing should be performed in sequential order. All of the preprocessing must be completed before Watershed Processing functions can be used. DEM reconditioning and filling sinks might not be required depending on the quality of the initial DEM.
DEM reconditioning involves modifying the data to be more consistent with the input stream network. This implies an assumption that the stream network data are more reliable than the DEM data, so you need to use knowledge of the accuracy and reliability of the data sources when deciding whether to do DEM reconditioning. By doing the DEM reconditioning you can increase the of agreement between stream networks delineated from the DEM and the input vector stream networks.Click on the Add icon to add the raster data. In the dialog box, navigate to the location of the data; select the raster file cedardem containing the DEM for Cedar creek and click on the Add button. The added file will then be listed in the Arc Map Table of contents. Similary add stream.shp, and save the map document.6.1.1. Hydro DEM6.1.1.1.
DEM ReconditioningThe function needs as input a raw DEM and a linear feature class (like the river network) that both have to be present in the map document. On the ArcHydro toolbar, select Terrain Preprocessing-DEM Manipulation-DEM Reconditioning.Select the appropriate Raw DEM (cedardem) and AGREE stream feature (stream). Set the Agree parameters as shown. You should reduce the Sharp drop/raise parameter to 10 from its default 1000. The output is a reconditioned Agree DEM (default name AgreeDEM).Click OK on the “processing successfully completed” message box. Examine the folder where you are working; you will notice that a folder named Layers has been created.
This is where ArcHydro will store its grid results.6.1.1.2. Fill SinksThis function fills the sinks in a grid. If cells with higher elevation surround a cell, the water is trapped in that cell and cannot flow. The Fill Sinks function modifies the elevation value to eliminate these problems.On the ArcHydro Toolbar, select Terrain Preprocessing-Data Manipulation-Fill SinksConfirm that the input for DEM is AgreeDEM (or your original DEM if Reconditioning was not implemented). The output is the Hydro DEM layer, named by default Fil. This default name can be overwritten. Leave the other options unchanged.Press OK.
Upon successful completion of the process, the Fil layer is added to the map. This process takes a few minutes.6.1.2. Flow Direction GridThis function computes the flow direction for a given grid. The values in the cells of the flow direction grid indicate the direction of the steepest descent from that cell.On the ArcHydro Toolbar, select Terrain Preprocessing-Flow Direction.Confirm that the input for Hydro DEM is Fil.
The output is the Flow Direction Grid, named by default Fdr. This default name can be overwritten.Press OK. Upon successful completion of the process, the flow direction grid Fdr is added to the map.6.1.3. Flow Accumulation GridThis function computes the flow accumulation grid that contains the accumulated number of cells upstream of a cell, for each cell in the input grid.On the ArcHydro toolbar, select Terrain Preprocessing - Flow AccumulationConfirm that the input of the Flow Direction Grid is Fdr. The output is the Flow Accumulation Grid having a default name of Fac that can be overwritten.Press OK. Upon successful completion of the process, the flow accumulation grid Fac is added to the map.
This process may take several minutes for a large grid! Adjust the symbology of the Flow Accumulation layer Fac to a multiplicatively increasing scale to illustrate the increase of flow accumulation as one descends into the grid flow network.6.1.4. Stream Definition GridOn the ArcHydro toolbar, select Terrain Preprocessing - Stream Definition.Confirm that the input for the Flow Accumulation Grid is Fac. The output is the Stream Grid named Str, default name that can be overwrittenObjective methods for the selection of the stream delineation threshold to derive the highest network consistent with geomorphological river network properties have been developed and implemented in the TauDEM software (.). For this exercise, choose 25 km 2 as the threshold area, and click OK.Upon successful completion of the process, the stream grid Str is added to the map.
This Str grid contains a value of '1' for all the cells in the input flow accumulation grid (Fac) that have a value greater than the given threshold (26204 as shown in above figure). All other cells in the Stream Grid contain no data. The cells in Str grid with a value of 1 are symbolized with black color to get a stream network as shown below:6.1.5. Stream Segmentation GridThis function creates a grid of stream segments that have a unique identification.
Either a segment may be a head segment, or it may be defined as a segment between two segment junctions. All the cells in a particular segment have the same grid code that is specific to that segment.On the ArcHydro toolbar, select Terrain Preprocessing - Stream Segmentation.Confirm that Fdr and Str are the inputs for the Flow Direction Grid and the Stream Grid respectively. Unless you are using your sinks for inclusion in the stream network delineation, the sink watershed grid and sink link grid inputs are Null. The output is the stream link grid, with the default name StrLnk that can be overwritten.Press OK. Upon successful completion of the process, the link grid StrLnk is added to the map. At this point, notice how each link has a separate value. Save the map document.6.1.6.
Catchment Grid DelineationThis function creates a grid in which each cell carries a value (grid code) indicating to which catchment the cell belongs. The value corresponds to the value carried by the stream segment that drains that area, defined in the stream segment link grid.On the ArcHydro toolbar, select Terrain Preprocessing - Catchment Grid Delineation.Confirm that the input to the Flow Direction Grid and Link Grid are Fdr and Lnk respectively. The output is the Catchment Grid layer. Cat is its default name that can be overwritten by the user.Press OK. Upon successful completion of the process, the Catchment grid Cat is added to the map.
If you want, you can recolor the grid with unique values to get a nice display (use properties-symbology).6.2.The three functions Drainage Line Processing, Adjoint Catchment Processing and Drainage Point Processing convert the raster data developed so far to vector format. The rasters created up to now have all been stored in a folder named Layers. The vector data will be stored in a feature dataset also named Layers within the geodatabase associated with the map document. Unless otherwise specified under APUtilities-Set Target Locations the geodatabase inherits the name of the map document (terrain.mdb in this case) and the folder and feature dataset inherit their names from the active data frame which by default is named Layers.On the ArcHydro toolbar, select Terrain Preprocessing - Catchment Polygon Processing. This function converts a catchment grid into a catchment polygon feature.Confirm that the input to the CatchmentGrid is Cat. The output is the Catchment polygon feature class, having the default name Catchment that can be overwritten.Press OK.
Upon successful completion of the process, the polygon feature class Catchment is added to the map. Open the attribute table of Catchment. Notice that each catchment has a HydroID assigned that is the unique identifier of each catchment within Arc Hydro.
Each catchment also has its Length and Area attributes. These quantities are automatically computed when a feature class becomes part of a geodatabase.6.2.1. Drainage LineThis function converts the input Stream Link grid into a Drainage Line feature class. Each line in the feature class carries the identifier of the catchment in which it resides. On the ArcHydro toolbar, select Terrain Preprocessing - Drainage Line Processing.Confirm that the input to Link Grid is Lnk and to Flow Direction Grid Fdr. The output Drainage Line has the default name DrainageLine that can be overwritten.Press OK.
Upon successful completion of the process, the linear feature class DrainageLine is added to the map.6.2.2. Adjoint CatchmentThis function generates the aggregated upstream catchments from the Catchment feature class. For each catchment that is not a head catchment, a polygon representing the whole upstream area draining to its inlet point is constructed and stored in a feature class that has an Adjoint Catchment tag. This feature class is used to speed up the point delineation process.On the ArcHydro toolbar, select Terrain Preprocessing - Adjoint Catchment ProcessingConfirm that the inputs to Drainage Line and Catchment are respectively DrainageLine and Catchment. The output is Adjoint Catchment, with a default name AdjointCatchment that can be overwritten.Press OK. Upon successful completion of the process, you will see a message box similar to the one below that will give you a summary of the number of catchments that were aggregated to create the adjoint catchements.Click OK, and a polygon feature class named AdjointCatchment is added to the map.6.2.3. Drainage PointThis function allows generating the drainage points associated to the catchments.On the ArcHydro toolbar, select Terrain Preprocessing - Drainage Point Processing.Confirm that the inputs are as below.
The output is Drainage Point with the default name DrainagePoint that can be overwritten.Press OK. Upon successful completion of the process, the point feature class “DrainagePoint” is added to the map.6.3. Watershed ProcessingArc Hydro toolbar also provides an extensive set of tools for delineating watersheds and subwatersheds. These tools rely on the datasets derived during terrain processing. This part of the exercise will expose you to some of the Watershed Processing functionality in Arc Hydro.6.3.1. Batch Watershed DelineationThis function delineates the watershed upstream of each point in an input Batch Point feature class.The Arc Hydro tools Batch Point Generation can be used to interactively create the Batch Point feature class. We will use this to locate the outlet of the watershed.
Arrange your display so that Fac, Catchment and DrainageLine datasets are. Zoom-in near the outlet of the Cedar creek basin (bottom right). The display should look similar to the figure shown below and be zoomed in sufficiently so you can see and click on individual grid cells.Cedar creek basin and enters St. Click on the icon in the Arc Hydro Tools toolbar.
Click on the outlet grid cell at the watershed outlet as shown below:Confirm that the name of the batch point feature class is BatchPoint.A point is then created at the location of mouse click, and the following form is displayed:Fill in the fields Name and Description - both are string fields. The BatchDone and SnapOn options can be used to turn on (select 1) or off (select 0) the batch processing and stream snapping for that point. Select the options shown above. The input information is saved in the attribute table of the BatchPoint feature class. You should see that a single point feature class has been created comprising the outlet point where you clicked.When snapping is turned on, if your point is sufficiently near to a drainage line (within around 5 grid cells) then the point will be snapped (i.e. After the inundation map is created, you must check the inundation polygon for its quality.
You will have to look at the inundation map and the underlying terrain to correct errors in the flood inundation polygon. Sometimes you will realize (at the end!) that your terrain has errors, which you need to fix in the HEC-RAS geometry file. The refinement of flood inundation results to create a hydraulically correct output is not covered in this tutorial - this is an iterative process requiring several iterations between GIS and HECRAS. The ability to judge the quality of terrain and flood inundation polygon comes with the knowledge of the study area and experience.