I would like to use a DEM to extract the thalweg line from a river. I have bathymetric data of the Saguenay River.

As a final product I need my thalweg line as polyline. I'm using both ArcGIS 10.6 and ArcGIS Pro.

I tried it using this workflow and as final product I'm getting a line, but I am not sure that it's a thalweg line.

  1. Fill tool (input is my bathymetric DEM)
  2. Flow Direction tool
  3. Flow accumulation
  4. Con
  5. Raster to polyline
  • Thalweg line and river banks are two different things. – FelixIP Jun 5 at 20:47
  • I know they are two different thing. I should have fixed my question. Sorry about that. Is there any workflow that you can share with to get thalweg line from dem? – DjarumX Jun 5 at 20:50
  • This approach gis.stackexchange.com/questions/254562/… applicable for both ridgelines and thalweg – FelixIP Jun 5 at 21:38
  • to be honest I dont understand how this could help my case. Is it possible to explain step by step how to do it like which tool should I use? – DjarumX Jun 5 at 23:37
  • Perhaps start with gis.stackexchange.com/questions/201867/… – FelixIP Jun 6 at 0:02

Taking the method explained by FelixIP in this answer and adapting it to your situation, we get the following steps:

  • You already generated a rough draft of the thalweg line, so you can skip the first two steps outlined by FelixIP (Use hillshade image of dem as background. With few clicks draw draft of levee.)

  • Draw perpendiculars at small steps along the purported thalweg line produced by your current method. (Robert Buckley achieved this automatically with ET-Geowizards.) Make sure each perpendicular line is long enough to reach the riverbanks. If you don't know where the river banks are, make the lines long enough to extent past where the riverbanks would be (a hillshade might be helpful for that).

  • Define the highest point on each perpendicular, eg by interpolating the shapes to 3D and finding the highest vertex.

  • Draw minimum spanning tree of all points.

  • Define shortest path between first and last points, this is your thalweg line.

FelixIP reported that they used this method in a Python script, and it took 3 days for 2 technicians to successfully delineate 100s km of levee ridgelines in Australia.

Obviously this is just a rough outline of the method. You'll have to figure out which tools to use if you want to avoid writing code.


To determine the Thalweg, you need some sort of bathymetry data. You do not describe what your DEM data is and how detailed it is. As bathymetry data is hard to obtain I suspect you don't have it. In this case you should be looking at this question.

Again you don't describe the complexity of your problem, a short section of river or the entire Amazon basin? If it is a simple scenario, then consider exploring the RBT tool.

  • youre right. I should describe it. Actually I have a bathymetric data of saguenay river that's where Im trying to get it's thalweg line. – DjarumX Jun 6 at 19:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.