International 1/4" board foot Log Volume
One of the most accurate mathematical log rules was proposed by J. F.
Clark (1906). The log rule was developed for 4 foot sections of a
log. It assumes a 1/8 inch kerf and a 1/16 inch shrinkage.
Clark suggested a 1/2 inch taper per 4-foot section of log and so came
up with the following formulas:
$$ V_{4'log} = 0.22 D^2 - 0.71 D $$
$$ V_{8'log} = 0.44 D^2 - 1.20 D - 0.30 $$
$$ V_{12'log} = 0.66 D^2 - 1.47 D - 0.79 $$
$$ V_{16'log} = 0.88 D^2 - 1.52 D - 1.36 $$
$$ V_{20'log} = 1.10 D^2 - 1.35 D - 1.90 $$
Clark suggest that logs larger that 20 feet be measured as multiples of
one of these log lengths.
Example
- Imperial Units
- dia small = 10 in inches
- L = 16 feet
- Answer = 71.44 board feet
- dia small = 28 in inches
- L = 16 feet
- Answer = 646 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
int14Volume = function( sdia, length )
{
# Function to calculate the International 1/4" Board Foot volume
# by David R. Larsen, Copyright November 2, 2012
# Creative Commons http://creativecommons.org/licenses/by-nc/3.0/us/
if( length == 4 ){
int14Volume = 0.22 * sdia^2 - 0.71 * sdia
}else if( length == 8 ){
int14Volume = 0.44 * sdia^2 - 1.20 * sdia - 0.30
}else if( length == 12 ){
int14Volume = 0.66 * sdia^2 - 1.47 * sdia - 0.79
}else if( length == 16 ){
int14Volume = 0.88 * sdia^2 - 1.52 * sdia - 1.36
}else if( length == 20 ){
int14Volume = 1.10 * sdia^2 - 1.35 * sdia - 1.90
}else if( length == 24 ){
int14Volume = 1.10 * sdia^2 - 1.35 * sdia - 1.90 + 0.22 * sdia^2 - 0.71 * sdia
}else if( length == 28 ){
int14Volume = 1.10 * sdia^2 - 1.35 * sdia - 1.90 + 0.44 * sdia^2 - 1.20 * sdia - 0.30
}else if( length == 32 ){
int14Volume = 1.10 * sdia^2 - 1.35 * sdia - 1.90 + 0.66 * sdia^2 - 1.47 * sdia - 0.79
}else if( length == 36 ){
int14Volume = 1.10 * sdia^2 - 1.35 * sdia - 1.90 + 0.88 * sdia^2 - 1.52 * sdia - 1.36
}else if( length == 40 ){
int14Volume = (1.10 * sdia^2 - 1.35 * sdia - 1.90) * 2
}
int14Volume
}
R Statistical Package Code
Python Code
#!/usr/local/bin/python
# Function to calculate the International 1/4" 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 int14Volume( sdia, length):
if( length == 4 ):
value = 0.22 * sdia**2 - 0.71 * sdia
elif( length == 8 ):
value = 0.44 * sdia**2 - 1.20 * sdia - 0.30
elif( length == 12 ):
value = 0.66 * sdia**2 - 1.47 * sdia - 0.79
elif( length == 16 ):
value = 0.88 * sdia**2 - 1.52 * sdia - 1.36
elif( length == 20 ):
value = 1.10 * sdia**2 - 1.35 * sdia - 1.90
elif( length == 24 ):
value = 1.10 * sdia**2 - 1.35 * sdia - 1.90 + 0.22 * sdia**2 - 0.71 * sdia
elif( length == 28 ):
value = 1.10 * sdia**2 - 1.35 * sdia - 1.90 + 0.44 * sdia**2 - 1.20 * sdia - 0.30
elif( length == 32 ):
value = 1.10 * sdia**2 - 1.35 * sdia - 1.90 + 0.66 * sdia**2 - 1.47 * sdia - 0.79
elif( length == 36 ):
value = 1.10 * sdia**2 - 1.35 * sdia - 1.90 + 0.88 * sdia**2 - 1.52 * sdia - 1.36
elif( length == 40 ):
value = (1.10 * sdia**2 - 1.35 * sdia - 1.90) * 2
return value
print "International 1/4 volume =", int14Volume(sdia=10,length=16)
print "International 1/4 volume =", int14Volume(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.
Reference
Clark, J. F. 1906. Measurement of Sawlogs.Forestry
Quart. 4:79-93.
|