Exploring HEC-RAS: XS Interpolation Within a Reach

Written by ironcore | May 19, 2014

I’m starting a new series called “Exploring HEC-RAS”.  Each post will discuss a feature in the menu items, starting with the Tools menu item in the Geometry Schematic.  Today’s topic is “XS Interpolation Within a Reach”.


There are two options for interpolating cross sections in HEC-RAS:  “Within a Reach…”, let’s call this Option A, and “Between 2 XS’s…”, Option B.  First, let’s briefly review why you may need to interpolate cross sections in HEC-RAS.  Cross Sections should be selected early on in your project to adequately define changes in geometry, roughness, bed slope, and discharge.  Also, cross sections are needed to properly define the expansion and contraction zones around bridges, culverts, and inline structures.  Additional cross sections are needed in areas of rapidly varying flow and/or significant grade breaks to avoid overestimation of energy loss (http://hecrasmodel.blogspot.com/2010/01/another-reason-for-interpolated-cross.html).  There’s also that pesky warning message that seems to always pop up:


Each of these warning messages suggest that more cross sections will provide a better solution.  Finally, in unsteady flow modeling, there’s a relationship between cross section spacing, wave speed, and computational time step that minimizes errors and numerical instabilities (Courant Condition).  Interpolating cross sections is a quick and convenient way to satisfy this relationship.

The first interpolation method, Option A, is called Interpolation “Within a Reach…”.  This is also called “blind” interpolation, because you cannot see nor control how HEC-RAS interpolates new cross sections.  They are interpolated based on the internal interpolation scheme, with no user interaction, except for entering a maximum spacing value.   This method is good for testing whether the spacing of cross sections will help produce a more numerically stable simulation.  You can choose to interpolate over an entire river/reach, or a segment of a reach, based on your selection of the Upstream River Station and Downstream River Station.


Here you can see there’s a single input box for the Maximum Distance between XS’s.  RAS will then determine the number of interpolated cross sections necessary between each set of original cross sections so that the main channel reach lengths never exceed that maximum distance.  There are a couple of other options to be aware of in this window:  Cut Line GIS Coordinates allows you to control whether HEC-RAS interpolates the cut line coordinates of the original cross sections, or simply displays the interpolated cross sections as perpendicular segments along the reach centerline.  Whatever you select here will have no bearing on the computations, but will only change how the cross sections are displayed in the geometry schematic.  If you have a georeferenced project with adequate initial spacing, the first option should display the interpolated cross sections just fine.  However, if you have a very sinuous river and the original cross sections are spaced too coarsely, the interpolated cross sections may not follow the stream centerline very well, sometimes resulting in interpolated cross sections laying off center or completely away from the stream centerline (see below).


In this case, to better display the layout of the interpolated cross sections, select the “Generate for display as perpendicular segments…” option.  This will lay the interpolated cross sections centered on their bank stations and perpendicular to the stream centerline.


Notice how the interpolated cross sections now follow the stream centerline.  However, be aware that these new interpolated cross sections are NOT georeferenced.  If you will be mapping your results on inundation maps, it would be better to cut new original cross sections around the bend section of the reach and use the “Linearly Interpolate cut lines…” option.

The dropdown box “Decimal Places in interpolated Sta/Elev” simply directs HEC-RAS to how many decimal places to carry out the station elevation points for the interpolated cross sections.  The default is 2 and is generally left alone.  One case where you may want more precision in the decimal places is with extremely shallow reaches, where the resulting bed profile may look “stair stepped” due to rounding off of the channel invert point.  Adding more precision will help to smooth this out.

A word of warning about Interpolation Option A, “Within a Reach…”.  The interpolated cross sections under this method are generated by built-in interpolation routines, that simply linearly interpolate station elevation points based on their proportional stationing within a subsection.  You have no control over the interpolation.  As such, it is very important that before you use these interpolated cross sections for your final RAS model, you verify that they accurately describe the geometry of the reach.  If important geometric features are not captured or are improperly defined, you’ll want to get real cross sections, or interpolate using Option B, “Between 2 XS’s”.  It is advised that blind interpolation (Option A) only be used to test the numerical adequacy of the cross section spacing.  More on Option B in the next post.  Stay tuned.


  1. Kyle Patrick

    on August 19, 2014

    You however could export those stream aligned interpolated XS's back to GIS and re-run your topology took to extract the physical elevations from your DEM/TIN.

  2. Anonymous

    on January 23, 2015

    Hi Chris, when you say "Whatever you select here will have no bearing on the computations, but will only change how the cross sections are displayed in the geometry schematic", what do you mean ? If I have a very sinuous river and the original cross sections are spaced too coarsely, I would select the “Generate for display as perpendicular segments…” option. However the XS Cut Lines created will be perpendicular to the river centerline, but they could also intersect or cross the river centerline more times. It is not a mistake ? What would you suggest in such situations ?

  3. Chris Goodell

    on March 19, 2015

    Computationally, it is not a mistake. These are just schematic cross sections. Obviously when you survey the cross sections in the field, or cut them from an elevation dataset in GIS, you would want to draw them in perpendicular to the flow lines, without crossing the stream more than once, and without intersecting other cross sections.

  4. Angana Borah

    on November 25, 2015

    Please could anyone tell what use can be made of the dss file generated after the end of an unsteady flow simultaion? why is it not generated in a steady flow and sediment transport simulation?

  5. Chris Goodell

    on November 25, 2015

    It is used by RAS to retrieve stage and flow data from the unsteady simulation. You can view a lot of different time-series data using the DSSViewer. Also, most HEC software can read dss files, making transfer of data from one model to the other easy.

  6. Anonymous

    on July 15, 2016

    Hi Chris
    I am new on HEC RAS and I was wondering if you can be able to assist. I am running an unsteady flow model, but the problem is that it only computes the geometry processor and it does not compute the unsteady flow simulation and the post process. I am getting the following error message:

    A change (or known value) in WSEL or EG at a node at river station 100 in reach D caused a WSEL below the bottom of the cross section.

    I have viewed the cross section input data, but there seems to be no problem with the input data.

    Can you please advise on how I can go about on solving this problem.

    Thank you.

  7. Jeremy Payne

    on August 21, 2016

    Hey Chris,

    I was wondering if you've ever had a problem with HEC-RAS not interpolating cross sections either within a reach or between 2 XS? In a recent project, I tried interpolating within a reach, and approximately have of the cross sections wouldn't interpolate and RAS gave me a non-specific error message. I then tried interpolating using the tool "between 2 XS" with the hope of defining different major or minor chords, but that still didn't work. I was wondering if you've seen this before and what I might do to fix it.


  8. Chris Goodell

    on August 22, 2016

    Jeremy- The only thing I've noticed that prevents interpolation is if there are too many decimal digits in your regular cross sections (I think RAS allows up to 4). Usually, this only happens if you're setting your river stationing to kilometers (or miles). I've had to convert my stationing to meters of feet (and trim off the extraneous decimal digits) to make it work in that case. Other than that, I've not heard of it being a problem before.

  9. Jeremy Payne

    on August 24, 2016


    Thanks for the quick reply. I finally got it to work through trial and error. A potential problem was that I had a riffle cross section going into a pool and the pool had two points of equal elevation at the invert (flat bottom). This produced a major chord at the invert that split from one point (riffle) to two points (pool). I lowered one of the pool invert points by a hundredth so the major chord at the invert was only one line, and that seemed to work.

  10. Chris Goodell

    on August 25, 2016

    Good idea. Thanks for sharing!

  11. West Cotter

    on September 29, 2016

    Hi Chris,

    Someone says that when doing geo-referencing, one needs to place some cross sections at known locations, then remaining cross sections will be repositioned based on river length and cross reach lengths. Is this true and how this functions work?

  12. Syed Faisal

    on January 8, 2017

    I have a question, when I linearly interpolate between two cross sections, and takes it into Ras mapper, it do not add mapping to the newly added cross sections using interpolation while on the other hand the water is visible in the Coss sections in Hec Ras. Can someone guide me how to show this in Ras mapper as well?

  13. Anonymous

    on January 16, 2017

    Hello, is there a possibility to delete all interpolated cross sections?

  14. Chris Goodell

    on January 17, 2017

    Yes, open up the XS Interpolate (within a reach) from the Tools menu item. Select "All Rivers", or whatever reaches and river stations you want to do this over, then click "Delete Interpolated XS's"


    on March 25, 2017

    hello every one i am facing the same problem as jeremy is facing and the solution proposed by jeremy is not clear to me so i request you both that please can you elaborate a little more about the solution you proposed it will be highly appreciated .


    on May 28, 2017

    Hi Chris,
    My cross section were developed by ISIS model and I imported to RAS the XS were stretched too wide then I have dragged some cross sections referenced to Web Imagery Layer with the Banks and the length of the XSCut. Then there are thousand of XS were not georeferenced. I tried to load geometry data in RAS Mapper, but it took time to load and not responding was occurred. What are the solution???
    Thank for your time.


Add Your Comment

Related Posts