Doyle Boardfoot Log Volume

This is one of the most widely use and well as one of the oldest log rules. The rule was developed by Edward Doyle in 1825. The rule states: "Deduct 4 inches from the diameter of the log, D, in inches, for slabing, square one-quarter of the remainder, and multiply by the length of the log, L, in feet." This is equivalent to squaring the log into a cant and calculating the board feet in the cant. Doyle assumed 25 % reduction for kerf and shrinkage. The rule can be stated as:

$$ V = \frac{(D-4)^2 L}{12}(1.0 - 0.25) $$ $$ V = \left(\frac{D-4}{4}\right)^2 L $$

where $V$ is the volume in board feet, $D$ is the small end diameter of the log, and $L$ is the log length. Known issues include:

  1. The formula is very simple.
  2. The rule works best for logs between 26 and 36 inches in diameter.
  3. Larger logs produce underruns.
  4. Smaller logs produce overruns.
  5. Example

    Imperial Units
    dia small = 10 in inches
    L = 16 feet
    Answer = 36 board feet

    dia small = 28 in inches
    L = 16 feet
    Answer = 576 board feet

    Board feet is a imperial units only system.

    Code

    Visual Basic

     
    Function bfLogVolume(sdia As Single, length As Single, Optional voltype As String = "int") As Double
    ' Function to calculate the Doyle, scribner and International board foot volume of a log
    ' sdia is in inches and length is in feet
    ' by David R. Larsen, Copyright October 9, 2012
    ' Creative Commons http://creativecommons.org/licenses/by-nc/3.0/us/
    
    If (voltype = "doyle") Then
        bfLogVolume = ((sdia - 4) / 4) ^ 2 * length
    ElseIf (voltype = "scribner") Then
        bfLogVolume = (0.79 * sdia ^ 2 - 2# * sdia - 4#) * (length / 16#)
    ElseIf (voltype = "int") Then
        If (length = 4#) Then
            bfLogVolume = 0.22 * sdia ^ 2 - 0.71 * sdia
        ElseIf (length = 8#) Then
            bfLogVolume = 0.44 * sdia ^ 2 - 1.2 * sdia - 0.3
        ElseIf (length = 12#) Then
            bfLogVolume = 0.66 * sdia ^ 2 - 1.47 * sdia - 0.79
        ElseIf (length = 16#) Then
            bfLogVolume = 0.88 * sdia ^ 2 - 1.56 * sdia - 1.36
        ElseIf (length = 20#) Then
            bfLogVolume = 1.1 * sdia ^ 2 - 1.35 * sdia - 1.9
        ElseIf (length = 24#) Then
            bfLogVolume = 1.1 * sdia ^ 2 - 1.35 * sdia - 1.9 + 0.22 * sdia ^ 2 - 0.71 * sdia
        ElseIf (length = 28#) Then
            bfLogVolume = 1.1 * sdia ^ 2 - 1.35 * sdia - 1.9 +  0.44 * sdia ^ 2 - 1.2 * sdia - 0.3
        ElseIf (length = 32#) Then
            bfLogVolume = 1.1 * sdia ^ 2 - 1.35 * sdia - 1.9 + 0.66 * sdia ^ 2 - 1.47 * sdia - 0.79 
        ElseIf (length = 36#) Then
            bfLogVolume = (0.88 * sdia ^ 2 - 1.56 * sdia - 1.36) * 2
        ElseIf (length = 40#) Then
            bfLogVolume = (1.1 * sdia ^ 2 - 1.35 * sdia - 1.9 ) * 2
        Else
            bfLogVolume = 0
            MsgBox ("Unknown log length, options are: 4, 8, 12, 16, 20")
        End If
        
    Else
        bfLogVolume = 0
        MsgBox ("Unknown voltype, options are: doyle, scribner, or int")
    End If
    
    End Function
    
    
    Excel® Visual Basic Code

    R Statistical Package Code

     
    doyle = function( sdia, length )
    {
    # Function to calculate the Doyle Board Foot volume
    # by David R. Larsen, Copyright November 2, 2012
    # Creative Commons http://creativecommons.org/licenses/by-nc/3.0/us/
    
      doyle = ((sdia - 4) / 4 )^2 * length
      doyle
    }  
      
    
    R Statistical Package Code

    Python Code

     
    #!/usr/local/bin/python
    # Function to calculate the Doyle Board foot volume 
    # from small end diameter and log length
    # by David R. Larsen, October 11, 2012
    # Creative Commons,  http://creativecommons.org/licenses/by-nc/3.0/us/
    
    
    def doyle( sdia, length):
        value = (( sdia - 4.0) / 4.0 )**2 * length
        return value
    
    print "doyle =", doyle(sdia=10,length=16)
    print "doyle =", doyle(sdia=28,length=16)
    
    Python Code

    Note the python files has a extra "txt" at the end to allow the files to be viewed in a web browser.


Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.

Author: Dr. David R. Larsen, Copyright 2012
Created: November 1, 2012
Last Updated: November 20, 2013