Plotting Wolman counts

Wolman counts can be used to determine the size of bed material - Tambo River at Ramrod Creek.

Wolman counts can be used to characterise the size of bed material in a gravel bed river – Tambo River at Ramrod Creek.

Wolman counts are a method of measuring the size of material on a stream bed.  The approach was first proposed by Wolman (1954) who suggested collecting 100 pebbles on a grid and measuring their size.  Hey and Thorn (1983) developed a ‘gravelometer’ which increased the speed and accuracy of determining particle sizes and Bevenger and King (1995) suggested sampling ‘at toe point’ as you walk along the stream zig-zaging from left to right bank.

Gravelometer as developed by Hay and Thorn (1983)

Gravelometer as developed by Hey and Thorn (1983)

At the conclusion of sampling you have 100 or more values which represent the size of the sampled bed material.  Using the gravelometer will result in a discrete set of values that depends on the size of the holes (see the picture above).  My gravelometer has holes of the following sizes (mm): 4, 5.7, 8, 11.3, 16, 22.5, 32, 45, 60, 90, 128, 180, 256, 362.  In addition, a 2 mm sand grain can be measured by comparing it to the edge of the gravelometer. Once the data are collected, they need to be plotted.  An R function (PhiPlot) is shown below which will produce something similar to the following plot.

Plot of data from a Wolman count

Plot of data from a Wolman count

# Function to produce a % finer plot from wolman counts
# Used with gravelometer data

# Arguments
#   wolman.count = vector of gravel sizes
#   phi.max = largest phi value for plotting
#   phi.min = smallest phi value for plotting
#   ... additional graphical parameters



PhiPlot <- function(wolman.count, phi.max = 512, phi.min = 1, ...){
  
  # set up phi intervals for plotting
  
  phi.n.max <- log(phi.max, base = 2)
  phi.n.min <- log(phi.min, base = 2)
  phi.n <- c(phi.n.min:phi.n.max)
  phi.size <- 2^ phi.n
  
  # gravelometer sizes
  wolman.size <- c(2, 4, 5.7, 8, 11.3, 16, 22.5, 32, 45,
                   60, 90, 128, 180, 256, 362)
  
  
  # number recorded for each gravelometer size
  
  wolman.count.f <- factor(wolman.count, levels = wolman.size)
  wolman.count.t <- table(wolman.count.f)
  
  wolman.pcfiner <- 100*cumsum(wolman.count.t)/sum(wolman.count.t)
  
  plot(wolman.size, wolman.pcfiner, # set up plot
       log='x',
       xaxt='n',
       yaxt = 'n',
       xlim=c(phi.max, phi.min),
       type='n',
       las = 1,
       xlab = '',
       ylab = '',
       ...
  )
  
  axis(side = 1, at = phi.size, label = phi.size)
  axis(side = 2, at = axTicks(2), label = axTicks(2), las = 1)
  title(xlab = 'Grain size (mm)', ylab = '% finer')
  
  # add grid
  abline(h = axTicks(2), lty=2, col='grey')
  abline(v = phi.size, lty=2, col='grey')
  
  # add size description on top
  axis(side = 3, at = c(256, 64, 2, 0.0625), label=NA)
  mtext(text = 'Boulders', side = 3, at = 300, adj=1)
  mtext(text = 'Cobbles', side = 3, at = 128)
  mtext(text = 'Gravel', side = 3, at = 8)
  mtext(text = 'Sand', side = 3, at = 1.5, adj = 0)
  
  # add data
  lines(wolman.size, wolman.pcfiner,
        type = 's')
  
  
  
}

#_____________________________________________________________________

# Example
# Generate some Wolman count data


wolman.size <- c(2, 4, 5.7, 8, 11.3, 16, 22.5, 32, 45,
                 60, 90, 128, 180, 256, 362)

wolman.count <- sample(wolman.size, 100, replace = TRUE, prob = 1/wolman.size)
PhiPlot(wolman.count)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s