The geometry of meandering rivers

I regularly watch the Science Friday video podcast. This week they had an interesting piece on potamology (OK, I just learned that word and wanted to use it in my post: potamology is the scientific study of rivers). The podcast showcased the work Christian Braudrick and Bill Dietrich of University of California, Berkeley, who achieved what had not been done before; they were able to create a meandering river in a laboratory setting.

Such rivers lazily snake back and forth through a gently sloping field. They change shape over time by continually eroding the outer bank of each curve and depositing silt on the inner bank. Occasionally two bends in the river come together, changing the topology of the river, and ultimately leaving behind an oxbow lake.

In passing, the narrator mentioned a very interesting mathematical fact about meandering rivers. It turns out that the size of a river cannot be determined by its shape on a map. In particular, if you looked at an aerial snapshot of a meandering river, you would not be able to tell whether it is the Amazon or a small neighborhood stream! I had to investigate this stunning fact.

It appears that nature forces certain geometric relations on the features of the river. Let denote the length of a meander (the “wavelength”) and be the width of the river (see my drawing below). The curves in a meander are roughly circular (rather than sinusoidal, for example). Let denote the radius of curvature of a bend.
It turns out that these variables are almost always related in the following way:

.

I was stunned to learn this. What a beautiful fact. To see a remarkable scatterplot of the first relationship, see Figure 12.16 in The environment: principles and applications, By Chris C. Park (p. 374).

I have no idea why there is a linear relationship between these variables, but it seems to me that if you know that such a relationship exists and you knew one of the constants, then you could estimate the other one. For example, suppose you knew that . In each cycle, a river winds clockwise around one circle of radius , then counterclockwise around another circle of radius . In doing so it will produce a wavelength of roughly .

Like this:

Related

Responses

Dave,
Wow, great stuff…. I will immediately add this to my response pile for those, “Mr. Ballew, when will we ever use this stuff?” questions. More directly, I will link this on my blog, and share it with my stats kids…
Thanks again for a great blog.

Here is an algorithm written in pseudo-code which anyone with the suitable soft ware, or even a pencil and paper and a lot of time can try:
S = 0, x=0, y=0,ds=0.1,1<c<2,NumSteps=100
for i from 1 to 100 do
dx=ds*cos(c*sin(S)) dy = ds*sin(c*sin(S))
x=x+dx y = y+dy x[i]=x y[i]=y
ds=(dx^2+dy^2)^(1/2) S=S+ds
end do
plot(x[i],y[i]) for i from 1 to NumSteps

Depending on the value chosen for the parameter 'c' you can have more or less sinuosity. Clearly the smaller the value chosen for ds, the smoother will be the resulting plot.
It would be of interest to find (say) a polynomial which would describe the curve resulting when ds is vanishingly small.

“Professor Hans-Henrik Stolum, an earth scientist at Cambridge University has calculated the ratio between the actual length of rivers from source to mouth and their direct length as the crow flies. Although the ratio varies from river to river, the average value is slightly greater than 3, that is to say that the actual length is roughly three times greater than the direct distance. In fact the ratio is approximately 3.14, which is close to the value of the number pi… The ratio of pi is most commonly found for rivers flowing across very gently sloping planes, such as those found in Brazil or the Siberian tundra.”

Makes sense since each meander is, on average, the arc of a semicircle. But I have a question regarding alternative semicircles and sinusoidal patterns. Is there a value of x, for which the total length of the function sin(x) will be pi times the linear length? If so, is x somehow related to circular geometry?