<p>The flow accumulation algorithm essentially determines the upstream contributing area of every grid cell; in other words, what area or how many other cells will drain into a given cell. The flow accumulation algorithm is independent of rainfall as it simply determines which areas drain where, which will later be used to determine how much water actually flows based on the rainfall event and the area on which the rain actually occurs. However, the first step is just to figure out the flow directions.</p>

<p>The flow accumulation is typically done as part of a series of algorithms with a given DEM to determine where the river network exists and what the catchment boundaries are. This type of analysis is required in order to delineate watersheds (i.e. determine where the watershed boundaries are and how large they are) and create the building blocks for a hydrologic model, which is used to simulate the rainfall-runoff response and flows at given points, among other processes.</p>

<p>The flow accumulation algorithm typically used is the <a href="https://jblindsay.github.io/wbt_book/available_tools/hydrological_analysis.html#D8FlowAccumulation" rel="nofollow noreferrer">D8 algorithm</a>, although if you look into the literature there are lots of versions and variations on determining flow accumulation. I am not familiar with the richdem python algorithm, but the units will be some measure of either upstream contributing area or number of upstream units in every grid cell. You will notice that the areas downstream and near outlets of watersheds have higher values, indicating that those areas receive larger contributing areas from the rest of the watershed. The next step in the analysis, likely a flow network tool, will use the grid cells with the largest flow accumulation values to determine the existence of a river network based on high accumulation values (with some value as a threshold).</p>

<p>The <a href="https://pro.arcgis.com/en/pro-app/tool-reference/spatial-analyst/how-flow-accumulation-works.htm" rel="nofollow noreferrer">ESRI page</a> has a good discussion on how flow accumulation works as well.</p>

<p><strong>Examples</strong></p>

<p>Watershed delineation can be done automatically from a DEM layer, and there are a huge number of tools to do so. Here are some tutorials and guides with GIS software, other tools exist in R or python (as you pointed out).</p>

<p><a href="https://www.trentu.ca/library/sites/default/files/documents/WatershedDelineation_10_2.pdf" rel="nofollow noreferrer">ArcGIS Watershed Delineation Tutorial with Arc 10.2</a></p>

<p><a href="https://geogeek.xyz/catchment-delineation-with-qgis.html" rel="nofollow noreferrer">QGIS Watershed Delineation Example</a></p>

<p>Note that prior to the use of DEM tools, contour maps would be used to delineate watersheds by hand. This is done essentially by drawing outlines which cross contours perpendicularly through high areas, and encompass the watershed. A couple examples of that here for you as well. Note that these will not have flow accumulation since that cannot be done easily by hand, that is only a step using the computational tools.</p>

<p><a href="https://www.nrcs.usda.gov/wps/portal/nrcs/detail/nh/technical/?cid=nrcs144p2_015680" rel="nofollow noreferrer">US Department of Agriculture Example</a></p>

<p><a href="https://www.uwsp.edu/cnr-ap/UWEXLakes/Documents/programs/convention/2015/talks/Thursday%20AM%20Workshops/StacyDehne_WatershedDelineationTechniques_AdvShorelineErosionControlWksp.pdf" rel="nofollow noreferrer">Miscellaneous contour example and slides</a></p>

CC BY-SA 4.0
2019-04-08T19:19:32.437Z
Thank you so much Rob :)
Nour
CC BY-SA 4.0
2019-04-09T14:01:08.727Z
Please Rob; can you give a practical example on how to use flow network and thresholding to predict flood occurence ?
Nour
CC BY-SA 4.0
2019-04-09T14:22:06.353Z
Added some examples to the answer provided above. Flood occurrence is a separate question, but the watershed delineation examples (using automatic delineation tools) do go through the flow accumulation and deriving stream networks.
Rob
CC BY-SA 4.0
2019-04-09T18:57:51.740Z
Thanks alot 
Nour
CC BY-SA 4.0
2019-04-09T21:47:10.240Z
Of course, the flow accumulation is only as good as the accuracy of the DEM. This is a particular problem when the catchment divide is relatively flat, which can lead to some significant errors.
haresfur
CC BY-SA 4.0
2019-04-08T13:54:23.150Z
2019-04-09T14:21:05.870Z
2019-04-09T14:21:05.870Z
Rob
<p>I'm not specialist in hydrology, and I  would be very grateful if you answer my question: </p>

<p>What is flow accumulation in hydrology?
Why algorithms used to calculate it over a raster DEM don't take rainfall rate into consideration?
For example when I use richdem python library to plot flow accumulation what is the range and unit of values shown ? </p>

<geophysics><hydrology><fluid-dynamics><python>
Hydrology- flow accumulation
Nour
# Hydrology- flow accumulation

(Asked by: username_0 on 2019-04-07)

I'm not specialist in hydrology, and I would be very grateful if you answer my question:

What is flow accumulation in hydrology?
Why algorithms used to calculate it over a raster DEM don't take rainfall rate into consideration?
For example when I use richdem python library to plot flow accumulation what is the range and unit of values shown ?

**Tags:** geophysics, hydrology, fluid-dynamics, python


---

## 1 answers

### Answer by username_1 on 2019-04-08. Score: 5

The flow accumulation algorithm essentially determines the upstream contributing area of every grid cell; in other words, what area or how many other cells will drain into a given cell. The flow accumulation algorithm is independent of rainfall as it simply determines which areas drain where, which will later be used to determine how much water actually flows based on the rainfall event and the area on which the rain actually occurs. However, the first step is just to figure out the flow directions.

The flow accumulation is typically done as part of a series of algorithms with a given DEM to determine where the river network exists and what the catchment boundaries are. This type of analysis is required in order to delineate watersheds (i.e. determine where the watershed boundaries are and how large they are) and create the building blocks for a hydrologic model, which is used to simulate the rainfall-runoff response and flows at given points, among other processes.

The flow accumulation algorithm typically used is the [D8 algorithm](https://jblindsay.github.io/wbt_book/available_tools/hydrological_analysis.html#D8FlowAccumulation), although if you look into the literature there are lots of versions and variations on determining flow accumulation. I am not familiar with the richdem python algorithm, but the units will be some measure of either upstream contributing area or number of upstream units in every grid cell. You will notice that the areas downstream and near outlets of watersheds have higher values, indicating that those areas receive larger contributing areas from the rest of the watershed. The next step in the analysis, likely a flow network tool, will use the grid cells with the largest flow accumulation values to determine the existence of a river network based on high accumulation values (with some value as a threshold).

The [ESRI page](https://pro.arcgis.com/en/pro-app/tool-reference/spatial-analyst/how-flow-accumulation-works.htm) has a good discussion on how flow accumulation works as well.

**Examples**

Watershed delineation can be done automatically from a DEM layer, and there are a huge number of tools to do so. Here are some tutorials and guides with GIS software, other tools exist in R or python (as you pointed out).

[ArcGIS Watershed Delineation Tutorial with Arc 10.2](https://www.trentu.ca/library/sites/default/files/documents/WatershedDelineation_10_2.pdf)

[QGIS Watershed Delineation Example](https://geogeek.xyz/catchment-delineation-with-qgis.html)

Note that prior to the use of DEM tools, contour maps would be used to delineate watersheds by hand. This is done essentially by drawing outlines which cross contours perpendicularly through high areas, and encompass the watershed. A couple examples of that here for you as well. Note that these will not have flow accumulation since that cannot be done easily by hand, that is only a step using the computational tools.

[US Department of Agriculture Example](https://www.nrcs.usda.gov/wps/portal/nrcs/detail/nh/technical/?cid=nrcs144p2_015680)

[Miscellaneous contour example and slides](https://www.uwsp.edu/cnr-ap/UWEXLakes/Documents/programs/convention/2015/talks/Thursday%20AM%20Workshops/StacyDehne_WatershedDelineationTechniques_AdvShorelineErosionControlWksp.pdf)

> **Comments:**
> **username_0**: Thank you so much Rob :)  
> **username_0**: Please Rob; can you give a practical example on how to use flow network and thresholding to predict flood occurence ?  
> **username_1**: Added some examples to the answer provided above. Flood occurrence is a separate question, but the watershed delineation examples (using automatic delineation tools) do go through the flow accumulation and deriving stream networks.  
> **username_0**: Thanks alot   
> **username_2**: Of course, the flow accumulation is only as good as the accuracy of the DEM. This is a particular problem when the catchment divide is relatively flat, which can lead to some significant errors.  

---

