Homework #5 earth surface processes Humphrey 2020,

These 2 questions may be difficult for some of you, since it introduces the use of computer algorithms.  Question 1 is explained in detail, question 2 is more difficult and some of it is left to you. All of you should read this entire blurb.  Unlike some of the homework problems, all the information you need is included in this question, and the answer method is [hopefully] clearly pointed out.  Please tell me of errors in this.

 I want to make sure you can all do minimal calculations and plotting in some computing language such as EXCEL or MATLAB (or the program of your choice, such as Python).  I realize that many of you will use Excel, which is fine.  Excel is a good program for simple calculations.  You may find as you progress in your career that you may want to graduate up to some of the more powerful programs out there.  MATLAB or Python are particularly useful programs for the Geosciences.  MATLAB is expensive but available in the student computer labs. Python is somewhat better for pure science than MATLAB and free(!) for everyone.

The second purpose of this exercise is to explore a particularly useful concept in much of geomorphology: it applies whenever there is a need to route a distributed input that is focused into a concentrated or point output.  Technically, what we are doing is a convolution: that is a type of multiplication over time of two descriptors; in this case the time description of the rainfall, and the time description of the delays in the hillslope transport.  The concept of a convolution of the inputs to get the outputs should be in your mind whenever you think of drainage basins, and their inputs and outputs. If you are relatively new to computing, then do the “conveyor belt” solution in Excel outlined below. 

Homework Question #1:  Assume a straight uniform hillslope, with an angle of 12 degrees.  The hillslope has a uniform layer of soil over impermeable bedrock.  The length of the slope is 50m from the crest of the hill, down to our point of interest, which is the outlet, the stream at the toe.  If the x coordinate of the hillcrest is x=0, the stream is at x=X= 50m * cos (12).  Saturated conductivity of the soil is 3.4x10-3 m s-1 (we make it very permeable to make the water flow quickly), and the thickness of the slope soil is 1m, above impermeable bedrock. The porosity is 50% (higher than typical soils).  The entire slope is initially at field capacity with no saturated zone, and at 1 hour past noon it starts to rain hard (10-5 m s-1), it rains steadily for 3 hours, stops for 1 hour, and then rains twice as hard (2x10-5 m s-1) again for 3 hours, stops for 2 hours, and with a final burst it rains at 3x10-5 m s-1 for three more hours.  Assume (to make this problem easier) that there is a constant time delay for rain to traverse the unsaturated zone, from surface to water table.  (This delay is variable, but to again make it simple, we will assume it is exactly 1 hr, which is the size of our time steps.  So we just delay our input by 1 hour.) 

·         The problem: find the water discharge per unit width of slope at the toe of the slope as a function of time.  To do this and to show your answer, you must plot discharge each 1 hour at X =50m, over time; starting at 12 noon and going until midnight the next day.

You will find it necessary to answer the following questions:

·         What is the water velocity in the saturated zone?  Use Darcy’s Law, note that specific discharge [little ‘q’], has dimensions of velocity and is a reasonable scale velocity for the bulk water movement. 

·         How long does it take for water from the highest point on the slope to reach the “outlet”?

(Big hint: the answers to the above are, 2.5m per hour, 20 hours)

 

Solutions:

There are three ways of doing this problem.  One is to slice the hillslope up into ‘bins’ and then use a ‘conveyor’ belt analogy; another is to code the numerical convolution approach, which is discussed below, and finally you can do an analytic convolution.  Unless you feel ‘computer and math savvy’ I recommend for a first attempt to use the conveyor belt approach, which is most intuitive.  This is the Excel approach I sketched in class. Interestingly, after you figure it out, the convolution approach is identical to the conveyor belt code.

Conveyor belt analogy

Since the water speed down the hillslope is constant, the hillslope acts like a conveyor belt that is moving parcels of water down the slope.  You can imagine the water as sitting, stationary, on the belt, while the belt moves at 2.5m per hour.  As the belt moves down the slope, more water is added, since it keeps raining.  If you think of the water as sitting in bins on the belt, you can ask the question: How deep does the water in the bins get, by the time they reach X.

It is easy to make EXCEL or Matlab or Python act like a conveyor.  A big thing to notice is that the time it takes for water to move down the slope [the conveyor belt speed] is 2.5m per hour.  We need the output in 1 hr increments, so we can simplify our conveyor belt by making the bins on the hillslope 2.5m long (so you need 20 of them to make a 50m long slope), and by taking 1 hour time steps. Thus a bin’s worth of water moves downslope to the next bin location every hour.  Note this just makes the calculations easier, we could use other bin sizes, but would have to take time steps of the length needed for the water to traverse a bin.

So how to proceed with a program like Excel?  Make a column in Excel of 22 zeros (a vector in MATLAB).  Each cell in the coulmn represents a 2.5m wide bin on the hillslope, and the zero is the current amount of water in the bin.  This column represents the hillslope at time = 12 noon.  Bins 1 and 22 are special. The bins 2-21 represents the hillslope before the start of the rain, (12 noon), plus one extra bin to represent the stream and to catch the exit water (the 22th bin).  The special bin (1) at the top represents hilltop bin, with no input other than the rainfall rate that is falling at that time.  Each bin represents 2.5m of hillslope and is going to be the place we put water. 

We apply this algorithm*:  each 1 hour (or each model timestep) when it rains, apply (or add) 1 hour of rain-fall into each bin (that is input=Delta_x * R(t) * Delta_t), where Delta_x is the length of the bin, and Delta_t is the time step size (1hour).  After adding the water to the bin, shift the contents of every bin down 1 row.  The shifting process represents 1 hour of time occurring and the water moving 2.5m downslope.  Record the amount of water in bin 22 (this is the OUTPUT for that time period) and the time (of the step), and then empty bin 22 by setting bin 22 to zero.  Repeat, while keeping track of the model time, (and remembering to adjust the rainfall rate with time) until the rain has stopped and all the bins are empty.  Make sure all units are the same!! (don’t mix hours and secs etc

(*this is the algorithm, see note below on how to do this logically in Excel)

Your result is the amount of water in bin 22 through time, starting at 22noon and going until everything is back to zero.  The amount of water in bin 22 is the water flux q.  The only difficulty is recognizing what q represents.  The flow into bin 22 is the flux per 1 hour.  Therefore we need to convert q to secs to get the flux per sec (since Ksat is in seconds).

Now plot q versus time, label the axes with both labels, and numerical values, and you are done! When plotting the results in Excel, note that you can ‘right-click’ on any of the features of the plot, such as the axes or the wording or the lines and change their properties such as font size or line styles.  This can really help the plot become more readable.  (please turn off the automatic smoothing, or ‘spline’, in EXCEL, it ruins the plots) In matlab or Python, you can open the ‘figure editor’ and do the same.

Notes on this question (question #2 is after these notes)

A note on EXCEL:  Some hints on doing the conveyor approach in Excel. 

Make a spread sheet of 22 rows and ~50 columns.  Each column of cells represents the bins, and the amount and location of the water on the slope at the end of consecutive 1 hours.  Row 1 and 22 are special.  Row 1 receives only the rainfall, while Row 22 only receives from uphill.  Enter the hourly rainfall manually in the first 21 of the 50 hour columns; the rest of the columns of row 1 will be zero.  The 22th row is the output.  Write your formula in cell B3: B3 = A2 + A$1.  Then ‘fill down’ and ‘fill right’ (in ‘edit’ menu).  This ‘filling’ step is important so you don’t need to do much typing by hand.  See below, or ask somebody to show you if you don’t know how.  Note the absolute addressing of the A1 (ie. A$1) cell row, this makes the rain add to every cell in the column.  The output cell should be filled with B12 = A11.  In effect you are implementing the algorithm from above, but you are keeping the intermediate results.  Marching across the spreadsheet is marching in time, rows going down are going down the slope in space.

Cells in Excel are addressed absolutely with their names and a dollar sign, eg $A$11 which means the actual cell at column A row 11.  More usually you refer to cells relatively by their column and row address, eg A11.  Using relative addresses means that you can copy and paste (or fill) formulas and Excel can (will) change the addresses to match the location you put the formula into [ eg. If you copy A11 into column C cell 11, it will appear as C11].  The absolute address of the A$1 cell means that Excel will also add from the A or B or C column, but only from the 1st cell of the column, (Excel does relative addressing by default).  An address such as A$1 means that excel can change the A column to the B or C or etc as you ‘fill’ the spreadsheet, but it will always point to the top entry (row 1) of that column.

A note on Matlab or Python:  This is a 2 or 3 line program in Matlab or Python.  Enter the rain (R(t) as an array, and then just repeatedly shift and add and plot, all at the same time.

Tutorials on Excel and MATLAB:  There are numerous tutorials out there, in book form or on the web.  They may help you in the above problem.  Two that I have found to be useful are for Excel and MATLAB. (note these are web pages at other Universities, so you get whatever is there).   Super short tutorials on Python or on Matlab (from me).  The best way to learn either is to get a brief tutorial from one of your peers.  Try to find someone to show you the basics, once you have a minimal knowledge, most students can advance on their own.

Mainly for your interest, the numerical convolution approach: (worth reading but you do not need to do the problem this way… [you do get the same answer]):

Our basic equation is:

,     this is the equation I verbally sketched in class. It states that the water flux at some point on the slope is the sum of all the rain that fell at locations upslope, back in the time it took to flow to the observation location. It is written to show that we are summing the water downslope, and the time step is written in terms of distance and water velocity.

This gives the water flux at time t, and the water velocity is just Ksat * sin a / h  and X is the distance down slope from the crest to the point of interest.  The summation is actually over time. We can make this equation specific to our problem by defining the length of the bins (Dx) to be the distance water flows in 1 hour, i.e. Dx = vw * 3600 secs/hr, or 2.5m.  Finally we recognize that the time the water takes to travel across each bin is Dt, which is constant.  Replacing the sum in space coordinates with a sum backwards in time, the equation looks like:

  , where Dt is 1 hour, and ‘t’ and therefore ‘j’ are also in 1 hour steps, ‘j’ is a time index that make the time of the rain go backwards. The T in the summation limit is the time in hours for water to flow from the crest to X: T=20.

You can set it up as a spreadsheet or a MATLAB problem, and do the summation. 

For the Analytically inclined:

If you have learned convolutions in a math class, you can do this problem as a convolution of 2 functions: namely the input (the rainfall R(t)) with the transfer function of the hillslope.  The transfer function in this case is a boxcar function (constant amplitude and length of 20 hours), which makes the analytic convolution very simple.  As a hint, you can add the 3 convolutions, 1 for each rainfall period.  That way the output is just the sum of 3 boxcar to boxcar convolutions. The only difficulty with this approach is to be careful of the limits of the integrals.

And a META note:

 A couple of details for you might think about: Perhaps a better velocity to use in this problem is the effective velocity, which is the previous scale velocity divided by the porosity.  This effective velocity, (which in this case is just twice the ‘q’ velocity) represents the approximate velocity of a tagged water particle. An interesting question  to think about is should we use the scale velocity or the effective velocity? [As an aside, since groundwater is flowing through pores, along tortuous paths, the actual water velocity is highly variable. Thus there are several ‘velocities’ we can talk about: the actual speed of the water, or the velocity the water apparently has, flowing in a straight line, instead of the tortuous path, or the scale velocity, or even others. For this particular problem which is the most appropriate velocity?

Also the x distances in these problems should really be written as slope length distances, however as I pointed out in class, the correction is small, and for curved slopes as below it make the problem much more algebraically complex for little difference in the final answer.

 

And now for the more difficult problem #2:

(difficult) We will apply the same rain to a sigmoidal hill, using our simple shallow soil groundwater approximation.  The hill is defined by the curve Z = 5 * (cos{ (x +1)/7 } + 1)..[careful with the brackets etc, and this is in radians] where x is the distance from the hill crest, and the distance to the stream is 20m and z is the altitude above the stream.  Use a slightly slower Ksat of 0.002 m/s (this hill is shorter than the first).

Some hints: the water velocity now varies, depending on local slope.  That means the time to cross a constant width bin will change depending on location on the slope.  We can simplify if we make the bins different lengths so that the time to cross each bin is constant.  If we do this, then we can use basically the same algorithm as above.  However, we need to take into account the different bin sizes when we add rain to them; bigger bins get more rain. Bin sizes will be inversely related to slope since Vwater ~ Ksat sin(alpha), therefore delta time to cross a bin is delta x/(Ksat sin(alpha)), which gives you an equation for the bin size (delta x).  The bins at the top and bottom of the slope are only about 1/7 the width of the bin in the center of the slope.

To get the gradient of the hillslope for calculating water flow, remember that the derivative of cosine is negative sine (cancel the negative, since water flows in the negative head gradient).  The slope [sin(alpha)] at any point x is 5*sin( (x+1)/7 )/7.  Good luck, and the hillslope is sketched below so you can check your hillslope and gradients.

 

 Chart, line chart

Description automatically generated

I did this problem, and the difficulty was choosing the bin sizes and lengths.  Since it is difficult, I will show the approximate result, and if you need help in calculating bin sizes, ask me and I will try to help.

Chart, line chart

Description automatically generated