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.

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.

# 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)