I have a line in the centre of a road, with the roads elevation attached to its properties. By using Generate Point along lines --> Add Surface Information --> Adding 10 cm to that, and then IDW 3d analyst I've made a new spread. Shown on the picture below. Then I've done a CutFill tool (or alternatively you can you use Raster Calculator) to get where the areas will be flooded.

But is is possible to get it to take into account the existing elevation model, so it stops the spread/buffer and doesn't create water behind a barrier?

See below images for clarification. The ones with red circles around them are examples of areas that shouldn't be flooded. Is there a way these can be removed/filtered, my own idea is to somehow check if they have a connection to the centreline of the road.

I have access to Spatial Analyst, 3D Analyst, Arc Hydro and ArcMap with an Advanced level license. I have to do this for a large area, not just this test area that is shown here.

enter image description here

enter image description here

  • Could you share a screenshot of the output you're getting? I'd like to try and replicate this to test a few different approaches.
    – jcarlson
    Commented Feb 23, 2018 at 12:26
  • Do you have access to 3D Analyst? Commented Feb 23, 2018 at 12:59
  • Yes I do, and spacial analyst as well. Sorry for the slow reply, other projects got a tighter deadline. I tried IDW as I've had good use for that before, but I can't get it to work properly. Commented Mar 6, 2018 at 7:25
  • Little modification of gis.stackexchange.com/questions/259030/increasing-flood-plain/… will achieve this.
    – FelixIP
    Commented Mar 12, 2018 at 19:55
  • It is seems to me that you want to work around a flood analysis that requires far more or at least different input data and skills than the ones you have put into the problem. The geometry exercise you are undertaking could be solved, but it will not give you flooded areas as you call them. Consider a tool like Hec-ras or some more sophisticated GIS modules for 2D superficial flow simulations if your interest is floods
    – Marco
    Commented Mar 13, 2018 at 8:39

2 Answers 2


If you are comfortable with Spatial Analyst and the Raster Calculator, you could create a mask of the areas available to flooding I.e. Con(YourDEM < 20, 0) would set a 20 MASL flood stage limit, where cells below 20 m are set to 0 and others are set to no data. Then, using your roads as “source locations” and your mask as “cost”, use the “Cost Distance” tool to fill out the food zones to the flood level. The no data values in the mask you’ve set will limit the flood stage to only those raster cells adjacent to your source road cells.

If you really want to analyze flooding at 10 cm above your road locations as you’ve shown, the same applies; but use the blue layer you’ve created above to create your mask.

Then, follow my response to your next question Merging/dissolving all polygons adjacent to each other to apply the RegionGroup tool and identify unique zones.

  • This sounds promising, and while I read and mostly understand your text, could you elaborate about the workflow, what I'm supposed to use with which tools? Just so I don't mix it up to bad. Commented Mar 15, 2018 at 7:28
  • 1. In the “Raster Calculator”, type Con(“YourDEM” < 20, 0) to make a Raster mask where 0 exists for elevation values below 20 and no data values will exist elsewhere. Alternatively use the “Con” tool directly. 2. Use the “Cost Distance” tool with your roads as “source” and the Raster mask from step 1 as the “Cost”. From every source cell, the Cost Distance will search adjacent (connected) sells of 0 value from the Raster mask of step 1 until “no data” values, which act as barriers, are reached.
    – Jae
    Commented Mar 16, 2018 at 9:32
  • The Region Group tool can be run and then the "regions" under the line segments/vertices can be listed to leave out disconnected regions. In fact this is what Cost Distance does, as you suggested.
    – fatih_dur
    Commented Mar 19, 2018 at 8:02

Assuming the area you are looking at is relatively small and flat you could:

Longitudinal Method

Create a buffer using the "Buffer Tool" in Arcmap of a random distance. Best guess based on the information you have. In the attribute table assign a height value to the buffer (in metres / feet above sea level).

Convert this buffer to raster.

Subtract the newly created buffer from the DEM / Surface you have. All positive values will be the flood area and all values 0 and below will be below the surface.

You can run the reclassify tool on this new raster classifying all positive values as a class and all 0 and negative values as a class. This new reclassified raster will be an integer format, which can be converted back to polygon.

You can then edit the polygon to get rid of any islands or sections of the "flooded area" which are outside of your study area.

Edit 1- Viewshed Methodology

If you have access to Spatial or 3D Analyst you could try this method. You could use the Viewshed Tool to delineate a view catchment (simulating a flooded area).

1) Take the centreline of the road and run the Densify Tool to create more vertices. The viewshed tools run off the vertex of a line and not the line itself.

2) In the Centreline Shapefile, add the following Fields - all "Double" and all caps. OFFSETA ; VERT1 ; VERT2.

OFFSETA - is the height from which the viewshed will be run, this will be the height in metres / feet above ground level of your flooded area.

VERT1 - is the vertical angle above the horizon from which the viewshed will run. Set this to 0. This will force the viewshed to follow a hypothetical flat plane (as a flood surface would).

VERT2 - is the angle below the horizon. Set this to -90.

Run the viewshed.

3) The output will be a Viewshed raster indicating those areas which hypothetically may be flooded based on your flood height. You can run the RECLASS and convert this raster to Polygon.

I am not sure how this will handle downstream elevations. Some editing may be needed for these areas.

Edit 2 - Cross Sectional Buffer

Another method to try would be to create cross sectional buffers through your road.

Run the ET GeoWizards tool called "Create Station Lines". ET Geowizards can be downloaded from ET GeoWizards. Open ET and go to:

 Miscellaneous -> Create Station Lines 
  1. Select your roads layer as the Polyline,
  2. Choose an output Choose the distance along the road you want to have a cross section / Station Line (10m)
  3. Choose the length of your Line (30m)
  4. Specify you want the station line on both sides of the road

With these new lines, create a buffer, use half the distance you specified in Step 2 above as the buffer distance. So ultimately you end up with a series of polygons running perpendicular to your road.

Run the intersect tool between the Station Lines and Road Layer, specify the output shape type in the intersect as "Point". Run the Spatial Analyst -> Extract -> Multiple Values to Points using the intersect point file and your Surface as the inputs.

This will add the elevation data to the point file representing the intersect between the station line and the road centreline. Add 10cm to the value that was placed in the point file.

Perform a spatial join between the point and polygon buffers, to allow you to transfer the revised elevation information to the polygon.

Create a raster from the polygon layer, using the revised elevation as the raster value.

Use the raster calculator to subtract the original surface from your new raster. The positive values will be the flooded areas and the negative values will not be flooded.

  • Thanks for the input, the area I'm looking has both steep and and flat areas, the size is approx 200-300 ha. So It's a bit large for this method, as I'm trying to elimnate the manual labor of removing the unwanted/false flooded areas. The way I understand your approach, I don't think that is possible? :) Commented Feb 23, 2018 at 12:20
  • 1
    Your data has a trend so fussing with color ramps, elevations, and buffers is not going to solve your problem. Consider detrending the surface model or learn something like Hec-Ras to determine the areas of inundation.
    – GBG
    Commented Feb 26, 2018 at 1:35
  • Well, shouldn't this be possible using ArcMap as well? I feel using 3d Point and IDW method should give me most of the way there? Trying the viewshed method now. Commented Mar 6, 2018 at 7:31
  • 2
    My proposed method is using ArcMap and 3D Analyst. Alternatively there are free software packages - HecRAS and HecGeoRAS which are designed for this type of work, but they require a lot of manual input to get a decent answer out of them, Commented Mar 6, 2018 at 7:34
  • The Viewshed method doesn't quite give the required result, because of the gradient. See my above post with updated query and pictures. Commented Mar 12, 2018 at 14:15

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.