Finding widest portion of river bank using ArcGIS Desktop?

Measuring from "bank to bank" is too vague. In the image below I've illustrated 8 different ways you can measure to the south bank from a single point on the north bank (red arrow).

enter image description here

Which of these lines would be the "correct" line of measurement for the distance from that point to the other bank? Any point along the river has more than one possible bank to bank measurement. Using this method, you'll find that the furthest line from bank to bank will end up running nearly parallel to the river:

enter image description here

We need to be more precise about how the measurements should be taken.

If, as JR suggested, you measure perpendicular to the river centerline, you need to obtain a river centerline. In the example below, I drew a hypothetical river centerline.

enter image description here

As you can see, at any given point along the river, there's only one line that stretches from bank to bank AND perpendicular to the river centerline. So this is a better way to measure bank width.

If you choose to implement this method, your next steps should be:

  1. Obtain a river centerline.
  2. Pick a single software package. Asking for answers in more than one software package (ArcGIS and QGIS) makes a question too broad for this site. See Asking good Questions for GIS Stack Exchange? for more information.
  3. If you need help figuring out how to use your chosen software to measure from bank to bank and perpendicular to the centerline, edit this question or ask a new one.

You could try the GRASS algorithm v.centerline

v.centerline creates a new map with a line representing an approximation of the central tendency of a series of input lines that all have similar trajectories. This can for example, be the central line of a river represented by its two sides, or a line representing the general direction of a series of flight paths, etc.

Once you have the centreline, you can use v.transects to create perpendicular lines at a very small interval, and then clip them to the boundaries of the source polygon.

I have also seen ST_ApproximateMedialAxis() in PostGIS used to derive river centrelines. From there you can use the same method as mentioned earlier with v.transects() to find the "widest portion"

As others have already pointed out, however, it is a very difficult question to answer objectively, but I think one of these methods will get you a reasonable and reproducible answer.


Due to complex shape of natural channels I think the diameter of largest inscribed circle is much better definition of greatest width:

enter image description here

Computing polygon skeleton and perpendiculars to segments are very challenging tasks.