## Scribner Boardfoot Log Volume

The most common diagram rule is the Scribner log rule.  The Scribner was proposed by J. M. Scribner and first published in 1846 (Husch et al. 1993).  It assumes a 1/4 inch kerf and 1 inch boards probably not less that 8 inches wide. (Chapman and Meyer, 1949).  The Scribner log rules are for logs with small end diameters from 12 to 44 inches and 10 to 24 feet in length.

Bruce and Schumacher (1950) fit a regression equation to the original table an produce the following equation:

$$V = (0.79D^2 - 2D - 4)\frac{L}{16}$$

where $V$ is the Scribner board foot volume, $D$ is the samll end diameter n inches and $L$ is the log length in feet.

### Example

Imperial Units
dia small = 10 in inches
L = 16 feet

dia small = 28 in inches
L = 16 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

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

 
scribner = function( sdia, length )
{
# Function to calculate the Scribner Board Foot volume
# by David R. Larsen, Copyright November 2, 2012

scribner = ( 0.79 * sdia^2 - 2 * sdia - 4) * (length / 16)
scribner
}


R Statistical Package Code

#### Python Code

 
#!/usr/local/bin/python
# Function to calculate the Scribner Board foot volume
# from small end diameter and log length
# by David R. Larsen, October 11, 2012

def scribner( sdia, length):
value = ( 0.79 * sdia**2 - 2 * sdia - 4 ) * (length / 16)
return value

print "scribner =", scribner(sdia=10,length=16)
print "scribner =", scribner(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.