Computing Thain’s (1983) curvature correction factor in R

This is an more in depth description of the code provided as a supplement in my latest paper:

Theroux-Rancourt G, Earles JM, Gilbert ME, Zwieniecki MA, Boyce CK, McElrone A, Brodersen CR. 2017. The bias of a 2D view: Comparing 2D and 3D mesophyll surface area estimates using non-invasive imaging. New Phytologist. doi: 10.1111/nph.14687

For an up-to-date version of this code, go to it’s github page.

Thain (1983) curvature correction methods and accompanying R code

Thain (1983) presents a series of equations to compute a curvature correction factor (F), from the measures of height and diameter for cylinder-shaped cells, or from the major and minor axes of spheroid cells. Thain (1983) mixes his abbreviations so that one has different meaning from one equation to another. Here, we avoid this confusion an use:
a: height or major axis of a cell, and
b: diameter or minor axis of a cell.

For cylinder-shaped cells, which can be more common in the long palisade layers of Gossypium hirustum (coton) for example, the equations are:

with hemispherical ends:

with flat ends:

For most cells, however, a spheroid shape might be more appropriate because. For an oblate spheroid, common in spongy cells, the equation is:

and for a prolate spheroid, common is palisade cells:

where e is the eccentricity of the ellipse:

and E is the elliptical integral:

Note that Thain (1983) forgot the square root in the elliptical integral function. Spheroid are probably a more representative shape for most cells in the leaf mesophyll, and this is the shape that Evans et al. (1994) used.

The elliptical integral is easy to solve in many programming languages. I R, this is easily done with the integrate function:

E <- integrate(elliptic.integral, lower = 0, upper = pi/2, e=e)

where e is computed from the eccentricity of the ellipse function above, as defined above. This function and the elliptic integral are written as

eccentricity.ellipse <- function(b, a) sqrt(1 - (b^2/a^2))
elliptic.integral <- function(x, e) sqrt(1-(e^2 * sin(x)^2))

Installation and use of the code

To install this code, copy this line into your R session.

source("https://raw.githubusercontent.com/gtrancourt/curvature_correction/master/curvature_correction.R")

The function to compute the curvature correction factor is Thain.F:

Thain.F(a, b, shape)

where a and b are the major and minor axes of the spheroid, as above, and shapeis the shape of the ideal cell, either prolate, oblate for spheroids, and hemi for hemispherical end cylinders and flat for flat end cylinders.

The function would be then used as:

> Thain.F(14.98, 13.23, "oblate")
[1] 1.24703

References

Evans JR, Caemmerer von S, Setchell BA, Hudson GS. 1994. The relationship between CO2 transfer conductance and leaf anatomy in transgenic tobacco with a reduced content of rubisco Australian Journal of Plant Physiology 21: 475–495.

Thain JF. 1983. Curvature correction factors in the measurement of cell surface areas in plant tissues. Journal of Experimental Botany 34: 87–94.