I would like to create a shapefile that displays the flow accumulation for a given point in a stream channel. Is this possible?

My client wants a map that shows the accumulated flow/catchment area for each point in a stream channel--as catchment area increases the color of the stream shapefile transitions from red to blue, kind of like a heat map but just for a stream channel.

I am able to approximate this using a flow accumulation raster in ArcGIS 10.1, but the color (and by proxy the flow accumulation data) are lost in the final map product due to the small size of the raster cells relative to the other features.

I'm wondering if there is a way to extract the data from the flow accumulation raster to a stream shapefile? I expect there would have to be some sort of interpolation necessary but I am at a loss on how to proceed.

My potential work around is to query the flow accumulation raster by a series of flow accumulation thresholds, convert these to polylines and layer them on top of each other in the map product. However, there may be up to 20 different polyline shapefiles, so it may be extremely tedious.

Update with workaround solution:

I used Model Builder to put together an iterative model that queried the flow accumulation raster for cells that fell within a specific range of values using conditional inequalities and common tools to convert stream rasters to stream shapefile. The ultimate output was a set of stream shapefiles that corresponded to specific ranges of stream discharge. These shapefiles, though, did not have any discharge data in their attribute tables.

The lack of discharge data was a problem as my goal was to create a single shapefile where the symbology/color would represent the increase in accumulation/streamflow. The workaround was that I modified my model to appended a new field to each attribute table to describe discharge, and the discharge value was linked to the upper limit of the interval from the earlier conditional statement. The resulting shapefiles were then merged into a single shapefile, and the discharge value was used to drive the symbology.

  • 1
    Maybe you could convert the flow accumulation raster to a points feature class? Then create stream networks based off the flow accumulation raster, and cut up the lines according to your points layer? Or use some form of distance calculation from the lines to the points in order to attribute the streams, if the points and lines don't perfectly intersect?
    – Baltok
    Sep 9, 2014 at 14:52
  • I agree with you, JR03, that the obvious (though unsatisfying) solution is a series of flow accumulation thresholds. My advice would be to consider making a model to speed up the process. It may be possible to set up all your flow thresholds to run sequentially in the model as opposed to tediously reapplying each threshold manually. Then you have the added benefit of having the process ready for the next time you need a similar analysis. I haven't done this myself, but after a quick glance it looks like it can be done. Sep 9, 2014 at 22:08
  • @Scott: That's pretty much what I had to do (see my edits above). Depending on the size of the intervals/thresholds, the processing time can be up to an hour. I have to imagine there's a better solution out there.
    – Altoids_99
    Sep 11, 2014 at 20:22
  • 1
    No one has suggested running streamlink followed by zonal statistics as table to get the min and max flow accumulation for each reach. Maybe I'm missing something about the question. Apr 21, 2015 at 18:01
  • 1
    Rather than edit your solution into the question, you should post it as an answer. Even if it isn't a final answer (you can after 48 hours but don't have to accept it), it's better to keep questions and answers separate, and helps show that there is at least one solution to the problem.
    – Chris W
    May 16, 2015 at 20:04

1 Answer 1


To address this:

"but the color (and by proxy the flow accumulation data) are lost in the final map product due to the small size of the raster cells relative to the other features"

Convert raster data to points, symbolize them on your map that way. Unlike raster, symbols will scale with the view. Alternately, use the raster-reclass tool to reclassify the smaller cells in your raster into a lower-resolution raster (averaging the values of cells in each 'neighborhood') for each cell in the new raster.

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.