Adaptation of the Nelson Dead Fuel Moisture Model for Fire

Adaptation of the
Nelson Dead Fuel Moisture Model
for Fire Behavior and Fire Danger
Software Application
April 2005
Collin D. Bevins
Systems for Environmental Management
Page 1
0. Introduction
This document describes the procedures and results of an effort to adapt Nelson's
(2000) dead fuel moisture model for use in fire behavior and fire danger software
applications. The following steps were undertaken:
1. All available dead fuel moisture content field data and associated weather
observations were collected, reviewed, and edited into a common format. The
data included measurements for 1-h, 10-h, 100-h, and 1000-h dead fuel dowels.
2. A preliminary C++ class, DeadFuelMoisture, was written based upon
Bevins' Fuel Moisture Stick C library, incorporating the most recent parameter
values available from Ralph Nelson and J. D. Carlson (Carlson 2003, 2004a,
2004b).
3. A C++ test platform was written to perform iterative statistical analysis of
observed and predicted dead fuel moisture contents using the
DeadFuelMoisture class.
4. Model logic and radius-dependent model parameters were tuned to provide best
fit with the field data.
5. Functions were developed to estimate radius-dependent parameters, enabling
DeadFuelMoisture to be used for arbitrary fuel sizes.
1. Field Data
Table 1 summarizes the moisture content field data and associated weather
observations gathered from various sources. The data were in a variety of formats, with a
range of documentation and data integrity. Obvious data errors such as dropped digits
were corrected.
The data were edited into a common test format. A large number of files were
created representing various groupings and weather patterns during model testing. The
individual data sets have been archived in the deadfuelmoisture.xls spreadsheet
file using the format described in Table 2. The spreadsheet file is included in the
accompanying compact disc
Page 2
Table 1 – Field Data Sources
Location- Year
Radius
Weather
(cm)
Obs
Fuel Moisture
Frequency
Obs
Frequency
Slapout, OK 1996-1997
6.4
15576 60 min
891 08:00 & 17:00
Slapout, OK 1996-1997
2
15576 60 min
915 08:00 & 17:00
Slapout, OK 1996-1997
0.64
15576 60 min
1240 08:00 & 17:00
Slapout, OK Std .5” Sticks 96-97
0.64
15576 60 min
1239 08:00 & 17:00
Unknown, April 1997
0.64
36 60 min
35 60 min
Burnsville, NC 1993
0.64
304 60 min
303 60 min
Unknown, March 1995
0.64
40 60 min
38 60 min
Mio, MI 1993
0.64
301 60 min
300 60 min
Missoula, MT 1996
0.64
1121 60 min
Unknown, April 1995
0.2
331 10 min
55 60 min
Unknown, April 1997
0.2
211 10 min
35 60 min
Missoula, MT 1996
0.2
1247 6 min
1246 6 min
Missoula, MT 1997
0.2
883 6 min
865 6 min
Slapout, OK 1996-1997
0.2
15576 60 min
66 Variable
1234 08:00 & 17:00
Table 2 – Field Data Spreadsheet Format
Column
Content
Units
A
Elapsed time
H
B
Year
YYYY
C
Month
MM (Jan=1, Dec=12)
D
Day
DD
E
Hour
MM
F
Minute
MM
G
Second
MM
H
Air temperature
C
I
Relative Humidity
G/g
J
Solar Radiation
W/m2
K
Cumulative rainfall
Cm
L
Observed fuel moisture contents
G/g
(<=0 indicates no observation)
M
Predicted fuel moisture content
G/g
N
Fuel moisture content prediction error
G/g
O
Fuel moisture state at end of update()
Index
Page 3
2. DeadFuelMoisture C++ Class
The DeadFuelMoisture class is an ANSI/ISO standard C++ class
implementing Nelson's (2000) dead fuel moisture model as modified by Carlson (2003,
2004a, 2004b) and the results of this study. It requires no other code libraries besides the
C++ Standard Template Library (STL) available in all C++ development environments.
The class header file DeadFuelMoisture.h contains the class interface and
description, while the source code file DeadFuelMoisture.cpp contains the class
implementation and definition. The source code is heavily commented with extensive
Doxygen markup for automatic generation of on-line and PDF manuals.
3. Model Parameter Testing and Selection
The parameters listed in Table 3 vary by stick radius in the Nelson model. Nelson
selected his parameter values based upon a series of ad hoc trials with a limited set of field
data until a good fit was found (Nelson, personal communication). One objective of the
current study was to reselect parameter values based upon a larger body of field data using
a more systematic approach.
A C++ test application based upon the DeadFuelMoisture class was
developed to assist in the parameter value selection process. The test application could
read one or more of the various data sets, generate predicted fuel moisture contents,
accumulate observed v predicted statistics, and produce various output data, statistical, and
graphics files.
The parameters in Table 3 were iteratively varied to find a combination of values
yielding the best observed v predicted results. This was repeated for the combined field
data sets for each of the 1-h, 10-h, 100-h, and 1000-h time lag fuel size classes. The result
of these trials was set of model parameters for each of the 4 fuel size classes yielding the
minimum prediction error.
Page 4
Table 3 – Radius-Dependent Model Parameters
Parameter
Units
Moisture computation radial nodes
count
Moisture computation time steps per observation
count
Moisture diffusivity time steps per observation
count
Maximum local moisture content
g/g
Planar heat transfer rate
cal/cm2-h-C
Surface mass transfer rate for adsorption
(cm3/cm2)/h
Surface mass transfer rate for desorption
(cm3/cm2)/h
Rainfall runoff factor during first hour of rain event
dl
Rainfall runoff factor during subsequent hours of rain event
dl
Storm transition value (precipitation rate)
cm rain/h
Water film contribution to stick moisture content
g/g
4. Model Modifications
As a result of testing the model against all the field data sets, a series of
modifications were made to DeadFuelMoisture to produce the best predictions.
4.1 Storm Transition Value
Nelson's model categorized rainfall into “non-storm” and “storm” events. The
distinction between the two depended upon a precipitation rate threshold called the “storm
transition value”. Testing showed that raising this threshold to an arbitrarily high value
(such as 99999 cm/h) yielded the best predictions for all data sets. Because of this, the
storm transition state logic was removed from the DeadFuelMoisture class.
4.2 Rainfall Runoff Factors
Similarly, Nelson applied one rainfall runoff factor during the first hour of a rainfall
event, and a second factor during subsequent periods for the same rainfall event. Not only
did this produce a disjoint moisture content prediction curve throughout a rainfall event, it
also increased prediction error. Removing the subsequent rainfall runoff factor logic from
the DeadFuelMoisture class yielded improved predictions for all data sets.
4.3 Water Film Contribution
Setting the water film contribution to zero resulted in the best predictions for all
size classes.
Page 5
4.4 Maximum Local Moisture Content
Setting the maximum local moisture content to 0.6 g/g resulted in the best
predictions for all size classes. It especially improved the responsiveness and accuracy of
1000-h fuel moisture content predictions.
4.5 Surface Mass Transfer Rate for Desorption
Model results were relatively insensitive to the surface mass transfer rate for
desorption. Fixing its value to 0.06 (cm3/cm2)/h did not significantly degrade any of the
model predictions.
4.6 Radius-Dependent Parameters
The remaining model parameters were determined to be radius-dependent:
●
●
●
●
●
●
number of moisture computation radial nodes,
number of moisture content computation steps per weather update,
number of moisture diffusivity computation steps per weather update,
planar heat transfer rate,
surface mass transfer rate for adsorption, and
rainfall runoff factor.
5. Radius-Dependent Model Parameter Functions
Optimal model parameter sets for the four idealized 1-h, 10-h, 100-h, and 1000-h
fuel size classes are generally adequate for most fire danger uses. Fire behavior
applications, however, typically deal with dead fuels whose surface area-to-volume ratio
range from 30-3500 ft-1 (2.0 – 0.017 cm radius). A method of estimating the 6 radiusdependent parameters is therefore desirable for fire behavior modeling.
Inverse power functions (Tables 4-9) were fitted to the optimal parameter sets;
parameter values become asymptotic as radius increases, and approach infinity as the
radius approaches zero. The function values and charts are archived in the
deadfuelmoisture.xls spreadsheet file.
Page 6
Table 4 – Number of Moisture Computation Radial Nodes
N = 10.72 + 0.1790 / radius1.0
Radius (cm)
Surface area-to-volume (ft-1)
Parameter Value (n)
0.01742
3500
21
0.03048
2000
17
0.20000
304.8
11
0.64000
95.25
11
2.00000
30.48
11
6.40000
9.5
11
15.24000
4
11
30.28000
2
11
Table 5 – Number of Moisture Computation Steps per Update
N = 9.8202 + 26.865 / radius1.4
Radius (cm)
Surface area-to-volume (ft-1)
Parameter Value (n)
0.01742
3500
7804
0.03048
2000
3570
0.20000
304.8
265
0.64000
95.25
60
2.00000
30.48
20
6.40000
9.5
11
15.24000
4
10
30.28000
2
10
Table 6 – Number of Moisture Diffusivity Computation Steps per Update
N = 4.777 + 2.496 / radius1.3
Radius (cm)
Surface area-to-volume (ft-1)
Parameter Value (n)
0.01742
3500
487
0.03048
2000
238
0.20000
304.8
25
0.64000
95.25
9
2.00000
30.48
5
6.40000
9.5
5
15.24000
4
4
30.28000
2
4
Page 7
Table 7 – Planar Heat Transfer Rate
Rate = 0.2195 + 0.05260 / radius2.5
Radius (cm)
Surface area-to-volume (ft-1)
Parameter Value (cal/cm2-h-C)
0.01742
3500
1314
0.03048
2000
324.5
0.20000
304.8
3.16
0.64000
95.25
0.38
2.00000
30.48
0.23
6.40000
9
0.22
15.24000
4
0.22
30.28000
2
0.22
Table 8 – Surface Mass Transfer Rate for Adsorption
Rate = 0.0004509 + 0.006126 / radius2.6
Radius (cm)
Surface area-to-volume (ft-1)
Parameter Values ((cm3/cm2)/h)
0.01742
3500
229.4378
0.03048
2000
53.5500
0.20000
304.8
0.4027
0.64000
95.25
0.0200
2.00000
30.48
0.0015
6.40000
9.5
0.0005
15.24000
4
0.0005
30.28000
2
0.0005
Table 9 – Rainfall Runoff Factor
Factor = 0.02822 + 0.1056 / radius2.2
Radius (cm)
Surface area-to-volume (ft-1)
Parameter Values (dl)
0.01742
3500
782.31
0.03048
2000
228.41
0.20000
304.8
3.67
0.64000
95.25
0.31
2.00000
30.48
0.05
6.40000
9
0.03
15.24000
4
0.03
30.28000
2
0.03
Page 8
The power functions for estimating the 6 radius-dependent model parameters were
incorporated into DeadFuelMoisture. A final run of the modified model against all
the field data sets produced results (Tables 10-13) whose standard errors were within
0.0002 g/g of the optimal parameter sets.
Table 10 -- 1000-h Predicted v Observed Fuel Moisture Content Results
Data Set
Slapout, OK 1996-97
Samples
891
Mean Abs
Diff
Std
Error
0.0337 0.0431
R2
0.9094
Y
intercept
Slope
0.0436 0.7490
Std Err
Est
0.0395
Table 11 -- 100-h Predicted v Observed Fuel Moisture Content Results
Data Set
Slapout,OK 1996-97
Samples
915
Mean Abs
Diff
Std
Error
0.0360 0.0492
R2
0.8886
Y
intercept
Slope
0.0047 0.8141
Std Err
Est
0.0436
Table 12 -- 10-h Predicted v Observed Fuel Moisture Content Results
Data Set
April 1997
Samples
Mean Abs
Diff
Std
Error
R2
Y
intercept
Slope
Std Err
Est
35
0.0204
0.0272
0.9798
-0.0227 1.3867
0.0184
303
0.0166
0.0233
0.9928
0.0006 1.0523
0.0200
38
0.0238
0.0299
0.9924
0.0219 0.9768
0.0259
300
0.0283
0.0378
0.9812
-0.0100 1.0142
0.0374
66
0.0416
0.0553
0.8685
-0.0027 0.8495
0.0499
Slapout, OK 1996-97
1240
0.0483
0.0762
0.8317
0.0624 0.7516
0.0667
Slapout, OK 1996-07
0.5” Std Dowels
1239
0.0472
0.0787
0.8269
0.0694 0.5790
0.0639
All Data Sets
3217
0.0423
0.0699
0.8756
0.0555 0.7576
0.0628
Burnsville, NC 1993
March 1995
Mio, MI 1993
Missoula, MT 1966
Table 13 -- 1-h Predicted v Observed Fuel Moisture Content Results
Data Set
Samples
Mean Abs
Diff
Std
Error
R2
Y
intercept
Slope
Std Err
Est
April 1995
55
0.1575 0.2206
0.9222
0.0922 0.4737
0.0699
April 1997
35
0.0175
0.0242
0.9849
-0.0176 1.2151
0.0191
March 1995
38
0.0987
0.1531
0.8906
0.0939 0.4395
0.0561
Missoula, MT 1996
1246
0.0134
0.0196
0.9787
0.0209 0.8680
0.0172
Missoula, MT 1997
865
0.0527
0.0851
0.9452
0.0633 0.5278
0.0378
Slapout, OK 1996-97
1234
0.0750
0.1249
0.6968
0.1113 0.4191
0.0807
All Data Sets
3473
0.0483
0.0923
0.8261
0.0801 0.4898
0.0580
Page 9
The DeadFuelMoisture model performed well on the trial data sets with R2's
in the 0.70-0.99 range and standard errors of prediction generally around 0.04 - 0.06 g/g.
Standard errors of prediction were inflated by larger errors under wetter conditions.
Of concern was the behavior of the DeadFuelMoisture model for fuels less
than 0.2 cm and greater than 6.4 cm radii; i.e., outside the range of the test data sets. This
was especially true for the finer fuels, whose model parameters (based on the inverse
power functions of Tables 4-9) become exponentially large. Furthermore, it has been noted
by Nelson, Carlson, and Bevins that the model projections become unstable for smaller
fuels if an insufficient number of radial nodes, moisture content steps, or moisture
diffusivity steps are applied.
The 1-h fuel weather observations were used to generate moisture content
predictions for fuels with 2000 ft-1 and 3500 ft-1 surface area-to-volume ratios. The
parameter functions were adjusted until all computational instabilities were overcome
(these modifications are incorporated into Tables 4-9). In all cases, predictions for these
two fine fuel sizes appeared reasonable, generally following the 0.2 cm prediction curve
but responding more rapidly to changes in relative humidity. For most (but not all)
weather observations, the 2000 ft-1 and 3500 ft-1 predictions were the same.
Modeling finer fuel moisture content carries a fairly heavy computational burden.
The model is cpu-bound, with computation time t proportional to:
t = n ( m + d )
where t is the relative time, n is the number of radial nodes, m is the number of moisture
content computation time steps, and d is the number of moisture diffusivity time steps.
Table 14 – DeadFuelMoisture Relative Computation Times
Radius
(cm)
Radial Nodes
(n)
Moisture
Content Steps
(m)
Moisture
Diffusivity
Steps (d)
Computation
Time Factor
(t)
Relative
Computation
Time
0.0174
21
7,804
487
174,111
229.40
0.0348
17
3,570
238
64,736
85.29
0.2000
11
265
25
3,190
4.20
0.6400
11
60
9
759
1.00
2.0000
11
20
5
275
0.36
6.4000
11
11
5
176
0.23
15.2400
11
10
4
154
0.20
30.4800
11
10
4
154
0.20
Page 10
6. Conclusions
The DeadFuelMoisture model performed well in predicting moisture content
for the 15 field data sets covering 1-h, 10-h, 100-h, and 1000-h fuel size classes. Observed
v predicted R2s ranged from 0.70 to 0.99, with standard errors generally in the 0.02 to 0.08
g/g range.
The inverse power functions for estimating the 6 radius-dependent model
parameters also performed well, yielding computationally stable results that appear
reasonable for very fine fuels.
The DeadFuelMoisture C++ class has been fairly well exercised during the
testing process, and appears stable and ready for use in larger applications.
7. References Cited
Carlson, J.D. 2003. Evaluation of a new dead fuel moisture model in a near-real-time
data assimilation and forecast environment. Progress report on file at USDA Forest
Service, Rocky Mountain Research Station, Fire Sciences Lab, Missoula, MT. Sep
15, 2003. 6 pp.
Carlson, J.D. 2004a. Evaluation of a new dead fuel moisture model in a near-real-time
data assimilation and forecast environment. Progress report on file at USDA Forest
Service, Rocky Mountain Research Station, Fire Sciences Lab, Missoula, MT. Feb
10, 2004. 16 pp.
Carlson, J.D. 2004b. Evaluation of a new dead fuel moisture model in a near-real-time
data assimilation and forecast environment. Progress report on file at USDA Forest
Service, Rocky Mountain Research Station, Fire Sciences Lab, Missoula, MT. Jul
13, 2004. 27 pp.
Nelson, Ralph M. Jr. 2000. Prediction of diurnal change in 10-h fuel stick moisture
content. Can. J. For. Res. 30: 1071-1087.
Page 11
8. CD-ROM
The contents of the accompanying cd-rom are:
●
●
●
●
●
●
DfmReport200504.doc – this document in MS Word doc format
DfmReport200504.pdf – this document in Adobe PDF formats
DeadFuelMoisture.xls – archival field data, observed v predicted, and charts
DeadFuelMoisture.cpp – DeadFuelMoisture C++ class source code file
DeadFuelMoisture.h – DeadFuelMoisture C++ class header file
Docs – Directory containing DeadFuelMoisture HTML Doxygen documentation
for developers (start with the index.html file)
Page 12