Open Access

cffdrs: an R package for the Canadian Forest Fire Danger Rating System

  • Xianli Wang1, 2Email author,
  • B. Mike Wotton1, 3,
  • Alan S. Cantin1,
  • Marc-André Parisien4,
  • Kerry Anderson4,
  • Brett Moore2 and
  • Mike D. Flannigan2
Ecological Processes20176:5

DOI: 10.1186/s13717-017-0070-z

Received: 9 November 2016

Accepted: 31 December 2016

Published: 31 January 2017



The Canadian Forest Fire Danger Rating System (CFFDRS) is a globally known wildland fire risk assessment system, and two major components, the fire weather index system and the fire behavior prediction system, have been extensively used both nationally and internationally to aid operational wildland fire decision making.


In this paper, we present an overview of an R package cffdrs, which is developed to calculate components of the CFFDRS, and highlight some of its functionality. In particular, we demonstrate how these functions could be used for large data analysis.

Results and Discussion

With this cffdrs package, we provide a portal for not only a collection of R functions dealing with all available components in CFFDRS but also a platform for various additional developments that are useful for the understanding of fire occurrence and behavior. This is the first time that all relevant CFFDRS methods are incorporated into the same platform, which can be accessed by both the management and research communities.


Fire behavior prediction system Fire weather index system Forest fire Forest fire risk Fuel moisture Landscape ecology


Forest fires are responsible for 14~20% of the annual global burned area (Mouillot and Field 2005; van der Werf et al. 2006), which is between 50~90 Mha (Schultz et al. 2008). In Canada, an average of about 8000 forest fires occurs each year burning 2 Mha of forests, most of which is burned by stand-renewing, high-intensity crown fire. Although wildfire is a natural agent of disturbance over most of the forest landscape of Canada, it is managed when human life, settlements, and infrastructure are at risk. Canadian wildland fire management agencies spend an average of $800 million per year on fire management. These expenditures have been and will continue to rise due to more frequent fire occurrences and extreme fire weather conditions in the recent years (e.g., Beverly et al. 2011; Flannigan et al. 2009) and in the near future (e.g., de Groot et al. 2013; Moritz et al. 2012; Wang et al. 2015).

For over 80 years, research on wildland fire ignition and behavior has been incorporated into the operational decision making within wildland fire management agencies in Canada. In recent years, a growing number of other countries around the world (e.g., France, Indonesia, Malaysia, Mexico, New Zealand, Portugal, Spain, and the USA) have begun to incorporate the outcome of this research, which is collected in a framework called the Canadian Forest Fire Danger Rating System, into their wildfire operations planning. The CFFDRS consists of four linked components (Fig. 1). The Canadian Forest Fire Weather Index (FWI) System (Van Wagner and Pickett 1985; Van Wagner 1987) and the Canadian Forest Fire Behavior Prediction (FBP) System (FCFDG 1992; Hirsch 1996; Wotton et al. 2009) provide the foundation of wildland fire environment assessment for operational forest fire management decision making across Canada. The accessory fuel moisture (AFM) system provides a series of methods for estimating moisture content in different fuels (Lawson et al. 1997, Wotton 2009a), at different times of day (Van Wagner 1977), to supplement the three main daily moisture codes used in the FWI System. Risk of fire occurrence (and expected number of fires), an important part of overall fire danger, is explicitly addressed within the fire occurrence prediction (FOP) System, though no nationally consistent set of equations or methods have been published to date.
Fig. 1

The Canadian Forest Fire Danger Rating System flow chart (FCFDG 1992)

The FWI system and FBP system have been widely used to inform management actions such as preparedness planning, resource movement, resource needs assessment, alert levels, and active predictions of fire growth and intensity. These two systems have also been used extensively in training fire management personnel and studying the relationship between fire and climate change (e.g., Flannigan et al. 2009) and carbon emissions (Amiro et al. 2001; de Groot et al. 2007). There are numerous reviews and summaries of the components of the CFFDRS (e.g., Stocks et al 1989; Taylor and Alexander 2006; Wotton 2009b); Lawson and Armitage (2008) also provide a detailed description of input and usage considerations for the CFFDRS as a whole, including the requirements for obtaining standardized weather observations.

The FWI system is strictly a weather-based system providing six main output indices representing fuel moisture and fire behavior potential (Fig. 2) in a mature pine forest fuel type on level terrain. These indices are unitless indicators of fire potential that are calculated based on the daily noon observation of fire weather, namely the screen-level air temperature and relative humidity, 10-m open wind speed, and 24-h accumulated precipitation collected at solar noon (in Canada this observation time is standardized at 1300 h local Daylight Savings Time). The outputs of the system are indicative of maximum expected fire potential for the day, which occurs during the warmest part of the day, the mid- to late-afternoon. The standard FWI system tracks only daily levels of fuel moisture and fire behavior potential; however, because some elements of the fire environment vary significantly throughout the day, elements of the AFM system provide ways of adjusting some outputs (i.e., fine fuel moisture code (FFMC), initial spread index (ISI), and fire weather index (FWI)) at different times of day (Van Wagner 1977).
Fig. 2

The inputs and outputs and calculation flow of the Canadian Forest Fire Weather Index (FWI) System (Van Wagner 1987)

Moisture content outputs of the FWI system are used as inputs to other models (such as spread rate prediction in the FBP system) and are also used operationally by fire managers as relative indicators of the expected number of fires in their regions. Similarly, the relative fire potential indicators from the FWI system (Fig. 2) are used by fire managers as general indicators of fire growth and fire intensity potential as well as difficulty of suppression for a general region. The final output of the FWI system, also called the fire weather index, is used as the main public indicator of overall fire danger in an area and is used to set roadside fire danger or fire risk signs throughout Canada. The FWI is often used as a scaled indicator of the fire intensity.

The FBP system takes outputs of the FWI system along with other inputs specific to an individual fire’s location and provides quantitative estimates of head fire spread rate, fuel consumption, and fire intensity, along with a basic fire description (e.g., surface, crown, and crown fraction burned) for 16 different important forest and rangeland types across Canada (Fig. 3). These additional site-specific inputs (see Fig. 3) are used to better characterize key elements of the fire environment such as slope and aspect, moisture content of live fuels in the forest canopy, and curing state of grass fuels. Using a simple conceptual model of the growth of a point ignition as an ellipse (Van Wagner 1969), the system also gives, as a set of secondary outputs, estimates of lateral (or flank) and back fire spread rates and consequently overall fire area perimeter length and growth rate (Fig. 3). The models in the FBP system were developed from data collected during an experimental program of large plot burning which began in the 1960s and carried on through the early 1990s. The models described in the formal documentation of the system (Forestry Canada Fire Danger Group FCFDG 1992) follow functional forms derived from simple physical reasoning and are fitted with a database of over 400 experimental, wild, and prescribed fire observations. The FBP system was updated with some minor corrections and revisions in 2009 (Wotton et al. 2009).
Fig. 3

Structure of the Canadian Forest Fire Behavior Prediction (FBP) System (FCFDG 1992)

Tools used to calculate outputs of the FWI and FBP systems have existed in various platforms. The FWI system is a relatively straightforward set of calculations and has been programmed in multiple programing languages such as Pascal, C/C++, FORTRAN, Python, Visual Basic, and Microsoft Excel by both users of the system and Canadian Forest Service (CFS) researchers. The FORTRAN version of the FWI system was formally documented and published (Van Wagner and Pickett 1985) and presents not only computer code but also, most importantly, an organized and explicit description of the equations and calculation flow used. The FBP system is a more complex set of equations than the FWI system; thus, it has not received the same widespread application in a range of programming platforms. Most operational fire agencies, however, have some software (developed either in-house or commercially) to calculate FBP system components as a supplement to the tables in the “Field Guide to the Canadian Forest Fire Behavior Prediction (FBP) System” (Taylor et al. 1997).

For several decades, the Canadian Forest Service (CFS) has provided their C language program to any developer or researcher interested in developing software for fire behavior applications and also published a formal test dataset that could be used for users to initially test their applications (Wotton et al. 2009). Recently, a software package named RedApp (beta version) ( has been developed to provide a freely accessible method of calculating both the FWI and FBP system outputs for single days or weather streams. However, this is not as conducive to more complicated management or research-oriented applications that involve large domains of gridded inputs or multiple weather stations.

With the cffdrs package, we provide a portal not only for a collection of R functions calculating the outputs of the core of the CFFDRS, namely the FWI and FBP systems, but also a platform for inclusion and documentation of various additional calculation methods from the CFFDRS. This package represents the first time that most of the calculation methods used in the CFFDRS are available within a single package that can be widely accessed by both the fire management and research communities. Furthermore, this package provides an updatable location for housing calculation methods for new developments in the CFFDRS, e.g., the first published code for the computation of sheltered duff moisture code (sdmc; Wotton et al. 2005) and the grass fuel moisture code (gfmc; Wotton 2009a). In this paper, we present an overview of cffdrs and highlight some of its functionality; we provide foundational references in the introduction and more extensive descriptions in the package documentation for users who require more details about the background of the system or specific application information.


Overview of cffdrs

This package includes functions for calculating all the outputs of the FWI system (fwi and fwiRaster), some specific weather-based calculations from the AFM system (hffmc, hffmcRaster, sdmc, gfmc, and wDC) (see Table 1 for detailed definitions), and two main functions for the outputs of the FBP system (fbp and fbpRaster), which include options for the level of detail desired in the outputs. An additional function, fireSeason, has been added to determine the fire season start and end dates using daily weather records and the standard temperature criteria, as described in Wotton and Flannigan (1993). The fwi, fwiRaster, and sdmc functions calculate their once-per-day outputs based on daily noon local standard time (LST) weather observations of temperature, relative humidity, wind speed, and 24-h rainfall, as well as the previous day’s moisture content. The hffmc, gfmc, and hffmcRaster functions calculate the outputs based on hourly weather observations of temperature, relative humidity, wind speed, and hourly rainfall, as well as the previous hour’s moisture content as indicated by FFMC or GFMC. The fbp and fbpRaster functions calculate the outputs of the FBP system based on a given set of weather observations and their associated FWI system components, fuel type, and slope (optional).
Table 1

cffdrs package functions and their descriptions




Fire behavior prediction function


Rater-based fire behavior prediction function. This function requires rasterized maps (stack) as inputs, which generates raster maps as outputs


Fire season start and end function


Standard FWI System function, which include 7 output variables FFMC, DMC, DC, ISI, BUI, FWI, and DSR.


Raster-based standard FWI System function. This function requires rasterized maps as inputs, which generates raster maps as outputs


Grass fuel moisture content


Hourly FFMC function


Raster-based hourly FFMC function, which takes raster maps as inputs, and generate outputs in raster map formats


Sheltered DMC


Wintering DC

Value-added features in cffdrs

Most current algorithms

Due to the CFS’s ongoing research program, both the FWI and FBP systems have been through some minor corrections and modifications (e.g., Wotton et al. 2009) since their formal publication. Additionally, as software and hardware systems changed, different versions of these calculation systems have been developed on various platforms by various individuals or groups; however, operational users of these systems typically want software products that are well validated and up-to-date. Functions in this package have been developed to match the most recent and up-to-date algorithms for calculating all of the CFFDRS sub-systems. These functions have been tested against the official test datasets, which make the package an excellent reference for algorithms used in other systems or being adapted in other countries.

Batch-processing capability

The calculation of FWI system variables is iterative, given that the computation of the current time step depends on previous time step conditions. The fuel moisture models in the system are essentially water “bookkeeping” methods for different fuel layers; each day, the moisture exchange calculation must reference the level it is starting from. In this way, the moisture codes in the FWI system (Fig. 2) can be considered as integrating the weather occurring for a particular fire season up to a specific point in time. Calculating FWI system outputs over a fire season is therefore a common practice, and it is important that uninterrupted weather streams are used for multi-day calculations.

Because the FWI system components are highly interrelated and depend on previous day’s calculations, it is expected that the functions would generate all of the system components at once. This is different from the majority of base functions in R, where a single function generates a single output, leaving greater flexibility for the R users to explore the potential applications of such functions. However, we do provide options in the functions where users could choose to switch to single-step FWI system calculations. For example, the main FWI system function fwi is designed to calculate the outputs of the FWI system for 1 day or one fire season. In that function, a batch option is provided with batch = TRUE as default. The function will calculate daily FWI system outputs for one weather station over a period of time chronologically with the given initial conditions (init) applied only to the first day of calculation. But if batch = FALSE is set, the function calculates only one time step (1 day) base on either the user-specified starting values for the moisture codes or the previous day’s FWI system variables, which should also be assigned to init argument. In addition, with batch = FALSE, the fwi function can continue to process multiple station data at the same time, but on a single time step. This is due to the vector computation feature that was built in the function.

The batch-processing feature in the fbp function was applied somewhat differently. Unlike FWI system variables, FBP system variables do not rely on previous time step values. Like the FWI system, the FBP system contains multiple output variables, 42 in total, 8 of which are considered primary and the rest are considered secondary. Input for fbp is a data.frame containing fuel types, fire weather components, and slope. Each vector of inputs defines a single FBP system prediction for a single fuel type and set of weather conditions. By taking advantage of the vector computation in R, the fbp function was designed to evaluate the FBP system for a single fuel type and instant in time, multiple records for a single point (e.g., one weather station, either hourly or daily weather stream for a period of time), or multiple points (multiple weather stations or a gridded surface) for a single time slice. In order to be more efficient in processing large datasets, the function also provides a parallel processing option, which may speed up the processing time significantly if the input data contains millions of data points.

Matrix-based batch-processing capability

The third significant feature in some of the cffdrs functions is the capability of processing data from multiple weather stations (or spatial points) simultaneously, i.e., fwi, hffmc, sdmc, gfmc, and fbp. This feature is useful when calculating system outputs for a large number of weather stations (or spatial points) (e.g., Field et al. 2015; Wang et al. 2015) and may significantly reduce the processing time. This option might not be as intuitive as the defaults, but the logic behind it is fairly easy to understand: the input data has to line up by time steps and by order of the stations. An additional “id” column in the input to label different stations helps to line up the inputs correctly. In addition, the initial values can either be assigned as a vector, which indicates the same start values, or a data.frame with the same number of records as the number of stations, indicating each weather station has its own unique initial values.

Raster-based functions

In this package, we also provided three raster-based functions, fwiRaster, hffmcRaster, and fbpRaster to satisfy users who have inputs in raster maps; this saves users from converting raster maps to point data (tabular data format). Data conversions usually consume significant amount of computation time and require extra efforts in data preparation. Using functions provided by the raster package (Hijmans 2014), the three raster-based cffdrs functions are not only easy to use, but outputs are also easy to visualize because of the plot function inherited from the raster package. Although the general calculation method is similar, the design of the two raster-based FWI system functions is indeed different from their data.frame-based counterparts, where the raster-based functions process data for only one single time step.

Example applications

In this section, we intend to demonstrate the uses of the major cffdrs functions with three example applications: (1) standard FWI system with overwintering DC adjustment, (2) raster-based hourly FFMC, and (3) fire behavior prediction based on the results from the previous example application.

Calculating daily FWI with wintering DC modifications

This example demonstrates how to calculate daily FWI system variables given a chronological dataset that consists of 2 years of daily fire weather observations from one weather station. The computation of the FWI system starts at the beginning of a fire season, which, in Canada, is when the snow is gone and the upper organic soil material has thawed. The drought code (DC), which tracks long-term moisture deficit, can be influenced by the value of the DC at the end of the previous season and the amount of precipitation received overwinter (Lawson and Armitage 2008) when calculations were not being carried out. Thus, the starting DC value in a new season can sometimes be significantly higher (indicating a drier forest floor) than the standard initial value (i.e., DC = 15), which represents soil moisture condition after about 3 days of springtime drying from full saturation. Because of the slowness of drying in this particular fuel layer, this starting difference can potentially bias the outputs of the FWI system over an entire fire season. When there is such a “carry-over” moisture deficit from season to season, the initial DC can be modified by a simple method (Lawson and Armitage 2008).

In the following example, we showed first how to determine fire season start and end dates with fireSeason, then how to make overwintering DC adjustment based on overwinter precipitation with wDC for the second fire season, and eventually how to calculate the daily FWI system variables over two fire seasons with the fwi function (Table 2a). Note that the data used in this example is also the test data for wDC (Fig. 4). In Canada, this overwinter adjustment is often more important in the west than in the east due to the west’s lower annual precipitation. In this example, the second weather station in the test dataset is from eastern Canada, and the overwintered DC used as the starting value in the calculations will be the same as the standard default because of the large amount of overwinter precipitation.
Table 2

Three cffdrs example application codes: (a) standard FWI System with wintering DC adjustment, (b) raster-based hourly FFMC, and (c) fire behavior prediction based on results from the previous example application

(a) Standard FWI System with wintering DC adjustment

(b) Raster-based hourly FFMC

(c) Fire behavior prediction based on results from (b)

#Load test data for wDC:

data ("test_wDC")

#Keep the first weather station, which

#is from Penticton, BC, Canada. The

#data contains two complete years’

#weather records between 2013 and


dat <- test_wDC[test_wDC$id==1,]

#Calculate the fire season start

#and end dates:

fs <- fireSeason (dat)

#Calculate the FWI System

#variables for the first year with

#standard initial start values.

#First, we need to subset the

#input data by the start and end

#of the fire season in the first year:

dat$date <- as.Date (as.POSIXlt (paste (dat$yr,dat$mon,dat$day,sep="-")))

fs$date<- as.Date (as.POSIXlt (paste (fs$yr,fs$mon,fs$day,sep="-")))

curYr <- subset(dat,date>=fs$date[1]&date<=fs$date[2])

#Use of the fwi function is very


curYr.fwi<-fwi (curYr)

#Calculate the FWI System

#variables for the second year

#with overwintering modified DC.

#This may take a few steps to

#accomplish. First, we need to

#subset the overwinter period from

#this two year weather #observations:

winT<-subset (dat,date>fs$date[2]&date<fs$date[3])

#Overwintering DC can then be

#calculated easily with wDC function:

init.DC<-wDC (curYr.fwi$DC[nrow (curYr.fwi)],sum (winT$prec))

#Second, extract the second fire

#season data:

secYr<-subset (dat,date>=fs$date[3]&date<=fs$date[4])

#The second year FWI System could

#be calculated with the overwintering

#DC as the following:

secYr.fwi<-fwi (secYr,c (85,6,init.DC))

#To show the difference, we also

#calculated the FWI System variables

#based on the default initial values:

secYr.fwi.default<-fwi (secYr)

#We then plotted the 3 outputs that

#are affected by the overwintering DC

#adjustment, i.e. DC, BUI, and FWI, to

#show the difference it makes:

x11 (width=12, height=4)

par (mfrow=c (1,3), mar=c (5,5,2,1))

plot(secYr.fwi.default$DC,secYr.fwi$DC,pch=19,col='grey50',ylim=c (0,850),xlab="",ylab="With wintering DC",cex.lab=2.0,cex.axis=1.5)

abline (0,1,lwd=1.5,lty=2)

text (100,800,"DC",cex=2)

plot (secYr.fwi.default$BUI,secYr.fwi$BUI,pch=19,col='grey50',xlab="Without wintering DC",ylab="",cex.lab=2.0,cex.axis=1.5)

abline (0,1,lwd=1.5,lty=2)

text (28,185,"BUI",cex=2)

plot (secYr.fwi.default$FWI,secYr.fwi$FWI,pch=19,col='grey50',xlab="",ylab="",cex.lab=2.0,cex.axis=1.5)

abline (0,1,lwd=1.5,lty=2)

text (8,59,"FWI",cex=2)

#Load the test data for the first

#hour, namely hour01 (See Fig. 4):

data(hour01) #or

hour01src <- system.file("extdata","test_rast_hour01.tif",package="cffdrs")

hour01 <- stack (hour01src)

#Assign names to the layers:

names (hour01)<-c ("temp","rh","ws","prec")

#We calculate the first hour’s

#FFMC with the default initial

#FFMC value of 85:

hffmc.hour01<-hffmcRaster (hour01)

#The FFMC for the second hour is

#then calculated based on

#the previous hour's FFMC. First,

#we load the test data for the

#second hour, namely hour02, to R:

data ("hour02")

hour02src <- system.file("extdata","test_rast_hour02.tif",package="cffdrs")

hour02 <- stack (hour02src)

#Assign variable names to the


names (hour02)<-c ("temp","rh","ws","prec")

#The calculation of the second

#hour FFMC is slightly different:

hffmc.hour02<-hffmcRaster (hour02,ffmc_old=hffmc.hour01)

#Map both the inputs and outputs

#with a plot function from the

#raster package:

x11 (width=5, height=6.2)

plot (hour02)

#First, make a copy of the study area:


#Assign the BUI value:

values (bui) <-50

#Rename the layer:

names(bui) <- "bui"

#Make it into the stack, which can

#be used as input in the #hffmcRaster function.

hour02<-stack (hour02,bui=bui)

#Now we can calculate all hourly

#FWI System variables and plot


hfwi.hour02<-hffmcRaster (hour02,ffmc_old=hffmc.hour01,hourlyFWI=TRUE)

x11 (width=5, height=6.2)

plot (hfwi.hour02)

#First, we calculate the hourly

#FFMC with hffmc function. We

#convert our raster inputs into a

#data.frame first:

hffmc.hour01< (rasterToPoints (hour01))

#The fbp function requires the

#coordinates being labeled as

#"long" and "lat":

names (hffmc.hour01) [1:2]<-c ("long","lat")

#Hourly FFMC as inputs for fbp (note

#this is a 'multiple weather stations

#at one time step' situation):

hffmc.hour01$ffmc<-hffmc (hffmc.hour01,batch=FALSE)

#Alternatively, this could be done

#with hffmcRaster:

r<-hffmcRaster (hour01)

hffmc.hour01$ffmc<-rasterToPoints (r) [,3]

## Add fuel type and unique ID

hffmc.hour01$id<-1:nrow (hffmc.hour01)


#The new variable that was added

#to hffmc.hour01 is named as

#'ffmc', which is required by the

#fbp function.

#Calculate the FBP System (primary

#outputs) with all other default


FBP<-fbp (hffmc.hour01)

#We can then map a few key fire

#behavior measurements from the

#outputs: Head Fire Intensity

#(HFI), Equilibrium Head Fire Rate

#of Spread (ROS), and Total Fuel

#Consumption (TFC).

HFI<-rasterize (as.matrix(hffmc.hour01[,c ("long","lat")]),r,FBP$HFI)

ROS<-rasterize (as.matrix(hffmc.hour01[,c ("long","lat")]),r,FBP$ROS)

TFC<-rasterize (as.matrix(hffmc.hour01[,c ("long","lat")]),r,FBP$TFC)

#Plot them out:

x11 (width=10, height=5.3)

par (mfrow=c (1,3), mar=c (5,3.5,5,4))

brks <- seq (0, 1, by=0.1)

nb <- length (brks)-1

cols <- rev (heat.colors(nb))

plot (HFI,col=cols,main="Head Fire Intensity (HFI)",cex.main=1.8)

plot (ROS,col=cols,main="Rate of Spread (ROS)",cex.main=1.8)

plot (TFC,col=cols,main="Total Fuel Consumption (TFC)",cex.main=1.8)

# using fpbRaster function, it is

# much simplified:



fuel<-ffmc # create a fuel layer

fuel[]<-2 # for C-2 fuel type

r<-stack (ffmc,fuel,ws)

names(r)<-c ("ffmc","fueltype","ws")

FBP<-fbpRaster (r)

# Plot them:

x11 (width=10, height=5.3)

par(mfrow=c (1,3), mar=c (5,3.5,5,4))

brks <- seq (0, 1, by=0.1)

nb <- length (brks)-1

cols <- rev (heat.colors(nb))

plot (FBP$HFI,col=cols,main="Head Fire Intensity (HFI)",cex.main=1.8)

plot (FBP$ROS,col=cols,main="Rate of Spread (ROS)",cex.main=1.8)

plot (FBP$TFC,col=cols,main="Total Fuel Consumption (TFC)",cex.main=1.8)

Fig. 4

The impacts of over-wintering drought code (DC) in the calculation of FWI System outputs

Using the raster-based hourly FFMC (hffmcRaster)

Because the design of the fwiRaster is similar to that of the hffmcRaster, we demonstrate only the hourly FFMC function to show how these raster-based functions could be used and what outputs could be expected from them (see Table 2b). Moisture in the fine litter fuels on the forest floor can vary throughout the day as atmospheric humidity changes, and these moisture levels have an important influence on the ignition probability and spread potential of a forest fire. To account for these important changes in the fire environment, the AFM system has a weather-based hourly fine fuel moisture code (hFFMC) calculation methodology. The raster inputs demonstrated here are also the example data for hffmcRaster in the package, which represents the province of Alberta (49°~60° N and −110°~−120° W). The data has been buffered by a minimum of one additional degree in all directions to minimize error from boundary effects. The data is a regular grid with a spatial resolution of 10 km and a temporal resolution of 1 hour. In order to start the calculation of hourly fire weather indices, the starting values of the system’s moisture codes for the previous hour were required. For the purpose of this example, we used a set value; however, these indices would typically be calculated from a daily weather record that carried on from the start of the season up to the start of the hourly calculations. Both the inputs and outputs were visualized by using a plot function from the raster package (Fig. 5).
Fig. 5

Hourly FWI System inputs (left panel) including hourly temperature (temp), wind speed (ws), relative humidity (rh), and accumulative precipitation (prec), and outputs (right panel) including hourly FFMC (hffmc), ISI (hisi), and FWI (hfwi)

In a standard FWI system calculation, the initial spread index and consequently the fire weather index depend on FFMC (see Fig. 2) and thus, this hourly function also calculates an hourly value for the ISI and FWI (hISI and hFWI). The latter calculation also requires an additional input, the daily buildup index (BUI) value which is derived from the duff moisture code and drought code (Fig. 2) (see Van Wagner 1987). For simplicity in this example, we set BUI = 50 for all the points in the study area; however, this input would more generally be a raster map with calculated BUI values (Table 2b). From the output, it is clear that the isolated rainfall (at the right low corner, Fig. 5 precipitation raster) has the lowest hourly FFMC and consequently low values of hISI and hFWI.

Hourly raster products of hFFMC and hISI are the cornerstone of fire growth modeling products such as the Canadian wildland fire growth model Prometheus (Tymstra et al. 2009) and Burn-P3 (Parisien et al. 2005). Thus, this raster calculation of FWI system outputs has more applications than simply mapping spatial fuel moisture or fire potential outputs.

FBP system

Assuming a landscape of uniform boreal spruce, the C-2 fuel type in the FBP system (Forestry Canada Fire Danger Group FCFDG 1992), and default values for other inputs, we can use the hFFMC raster generated in the previous example to outputs from the FBP system (such as spread rate and fire intensity) in raster form.

First, we calculate the hourly FFMC with hffmc function, and then use either fbp or fbpRaster to finish the calculations (Table 2c). We can then map a few key fire behavior measurements from the outputs (Fig. 6): head fire intensity (HFI), equilibrium head fire rate of spread (ROS), and total fuel consumption (TFC). The HFI estimates the amount of energy released per unit time per unit fire front line (Byram 1959) and is typically used as an indicator of expected flame length and fire-suppression difficulty. The ROS and TFC estimate the speed (m/min) of head fire spread and the amount of fuels (kg/m2) consumed by the frontal fire, respectively.
Fig. 6

Three major fire behavior prediction outputs based on hourly FFMC output from example (2), including head fire intensity (HFI, kW/m), head fire rate of spread (ROS, m/min), and total fuel consumption (TFC, kg/m2)

Results and discussion

Wildland fire is one of the major ecological processes that has been widely examined and studied in landscape ecology not only as a threat to public safety, forest communities, and timber values but also an essential process affecting forest health in Canada. Wildland fire is influenced by a number of factors including flammable biomass, weather, topography, and ignition sources. These factors and how they influence different aspects of fire activity have been studied for decades, and much of the current understanding has been developed into wildfire management information systems like the CFFDRS. However, even such long established fire danger rating systems are continuing to evolve and be adapted to conform to the increasing complexity of challenges in wildfire management today. For instance, Taylor et al. (2013) performed a broad review of how the statistical modeling community has provided increased understanding and predictive models of important information needs of the fire management community, which in many cases involved using outputs of the CFFDRS within complex statistical model forms.

Understanding the interaction between fire behavior and fuel characteristics including their types (e.g., coniferous, broad leaf, and grass), moisture conditions, and spatial distribution (pattern) is crucial in fire risk assessment, fuel treatment planning, and fire-suppression operations, especially in areas when community and value are at risk. Because fire spread may escalate within a very short period of time (i.e., hours or days), tracking daily or hourly fire weather and fuel moisture conditions is critical in monitoring and predicting the behavior of an ongoing fire (e.g., Tymstra et al. 2009; Flannigan et al. 2016) or estimating fire risk at a landscape scale (e.g., Wang et al. 2016). The latter has become a pressing subject due to the increasing fire activities and fire damage in recent years, such as the Slave Lake fire in 2012 (Flat Top Complex Wildfire Review Committee 2012) and the Fort McMurray fire in 2016 (e.g., Parisien 2016). Clearly, the Canadian Forest Fire Danger Rating System (CFFDRS) has been a major tool used in such exercises (e.g., Taylor and Alexander 2006; Wotton 2009b; Wang et al. 2016).

The cffdrs package is designed to facilitate wider use of the CFFDRS in fire operations and research. This is done by (i) providing a broad set of R functions for the calculation of the various CFFDRS sub-systems and recently developed additions and revisions, (ii) providing open accessibility to the algorithms used in the calculation of these systems such that users can engage in their update and continued refinement, and (iii) incorporating the most newly updated methods (e.g., Wotton et al. 2005; Wotton et al. 2009) into the cffdrs suite of functions. Functions in the cffdrs package are designed to be able to process spatially and temporally big datasets, a feature that is critical in both operational and academic worlds.

The CFFDRS, despite providing the foundations for describing the fire environment in Canadian wildfire management operations, continues to develop and evolve as data sources and fire management need change (Wotton et al. 2009). This cffdrs package provides an accessible platform for both the current CFFDRS (which continues to gain international use) and the new developments in the CFFDRS in the near future. The new features, especially the ongoing development of a next generation of the CFFDRS, will be documented and added to the online package as well as the Western Partnership for Wildland Fire Science website (



We thank Ginny Marshall from the University of Alberta for reading the manuscript and providing some of the weather data.

Authors’ contributions

XW, MW, MP, and MF designed the study. XW, MW, MP, and AC drafted the manuscript. XW, AC, MW, KA, and BM designed the examples and wrote the R codes. All authors read and approved the final manuscript.

Competing interests

The authors declare that they have no competing interests.

Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Authors’ Affiliations

Great Lakes Forestry Centre, Canadian Forest Service, Natural Resources Canada
Department of Renewable Resources, University of Alberta
Faculty of Forestry, University of Toronto
Northern Forestry Centre, Canadian Forest Service, Natural Resources Canada


  1. Amiro BD, Todd JB, Wotton BM, Logan KA, Flannigan MD, Stocks BJ, Mason JA, Martell DL, Hirsch KG (2001) Direct carbon emissions from Canadian forest fires, 1959 to 1999. Can J For Res 31:512–525. doi:10.1139/x00-197 View ArticleGoogle Scholar
  2. Beverly JL, Flannigan MD, Stocks BJ, Bothwell P (2011) The association between Northern Hemisphere climate patterns and interannual variability in Canadian wildfire activity. Can J For Res 41:2193–2201. doi:10.1139/x11-131 View ArticleGoogle Scholar
  3. Byram GM (1959) Combustion of forest fuel. In ‘Forest fire: control and use’. (Ed. KP Davis) pp 61-89. McCraw-Hill, New YorkGoogle Scholar
  4. de Groot WJ, Flannigan MD, Cantin AS (2013) Climate change impacts on future boreal fire regimes. For Ecol Manage 294:35–44. doi:10.1016/j.foreco.2012.09.027 View ArticleGoogle Scholar
  5. de Groot WJ, Landry R, Kurz WA, Anderson KR, Englefield P, Fraser RH, Hall RJ, Banfield E, Raymon DA, Decker V, Lynham TJ, Pritchard JM (2007) Estimating direct carbon emissions from Canadian wildland fires. Int J Wildland Fire 16(5):593–606. doi:10.1071/WF06150 View ArticleGoogle Scholar
  6. Field RD, Spessa AC, Aziz NA, Camia A, Cantin A, Carr R, de Groot WJ, Dowdy A, Flannigan MD, Manomaiphiboon K, Pappenberger F, Tanpipat V, Wang X (2015) Development of a global fire weather index database. Nat Hazards Earth Syst Sci 15:1407–1423. doi:10.5194/nhess-15-1407-2015 View ArticleGoogle Scholar
  7. Flannigan MD, Krawchuk MA, de Groot WJ, Wotton BM, Gowman LM (2009) Implications of changing climate for global wildland fire. Int J Wildland Fire 18:483–507. doi:10.1071/WF08187 View ArticleGoogle Scholar
  8. Flannigan MD, Wotton BM, Marshall GA, de Groot WJ, Johnston J, Jurko N, Cantin AS (2016) Fuel moisture sensitivity to temperature and precipitation: climate change implications. Clim Change 134:59–71View ArticleGoogle Scholar
  9. Flat Top Complex Wildfire Review Committee (2012) Final report submitted to the minster of Environment and sustainable resource development, may 2012Google Scholar
  10. Forestry Canada Fire Danger Group (FCFDG) (1992) Development and structure of the Canadian Forest Fire Behavior Prediction System. Forestry Canada, Ottawa, Information Report ST-X-3. 63 pGoogle Scholar
  11. Hijmans RJ (2014) raster: raster: Geographic data analysis and modeling, R package version 2.3-12.
  12. Hirsch KG (1996) Canadian Forest Fire Behavior Prediction (FBP) System: user’s guide. Nat. Resour. Can., Can. For. Serv., Northwest Reg., North. For. Cent., Edmonton, Alberta. Spec. Rep. 7. 122p.
  13. Lawson BD, Armitage OB (2008) Weather guide for the Canadian Forest Fire Danger Rating System, Nat. Resour. Can., Can. For. Serv., North. For. Cent., Edmonton, ABGoogle Scholar
  14. Lawson BD, Dalrymple GN, Hawkes BC (1997) Predicting forest floor moisture contents from duff moisture code values, Can. For. Serv., Tech. Transfer Note 6. 6 pGoogle Scholar
  15. Moritz MA, Parisien M-A, Batllori E, Krawchuk MA, Van Dorn J, Ganz DJ, Hayhoe K (2012) Climate change and disruptions to global fire activity. Ecosphere 3:1–22. doi:10.1890/ES11-00345.1 View ArticleGoogle Scholar
  16. Mouillot F, Field CB (2005) Fire history and the global carbon budget: a 1° × 1° fire history reconstruction for the 20th century. Glob Chang Biol 11:398–420. doi:10.1111/J.1365-2486.2005.00920.X View ArticleGoogle Scholar
  17. Parisien M-A (2016) Science can map a solution to a fast-burning problem. Nature 534(7607):297. doi:10.1038/534297a View ArticleGoogle Scholar
  18. Parisien M-A, Kafka VG, Hirsch KG, Todd JB, Lavoie SG, Maczek PD (2005) Mapping Wildfire Susceptibility with the BURN-P3 Simulation Model, Technical Report NOR-X-405, Natural Resources Canada, Canadian Forest Service, Northern Forestry Centre, Edmonton, AlbertaGoogle Scholar
  19. Schultz MG, Heil A, Hoelzemann JJ, Spessa A, Thonicke K, Goldammer JG, Held AC, Pereira JMC, van het Bolscher M (2008) Global wildland fire emissions from 1960 to 2000. Global Biogeochem Cycles 22:GB2002. doi:10.1029/2007GB003031 View ArticleGoogle Scholar
  20. Stocks BJ, Lawson BD, Alexander ME, Van Wagner CE, McAlpine RS, Lynham TJ, Dube DE (1989) Canadian Forest Fire Danger Rating System: an overview. For Chron 65:258–265. doi:10.5558/tfc65258-4 View ArticleGoogle Scholar
  21. Taylor SW, Alexander ME (2006) Science, technology, and human factors in fire danger rating: the Canadian experience. Int J Wildland Fire 15:121–135. doi:10.1071/WF05021 View ArticleGoogle Scholar
  22. Taylor SW, Pike RG, Alexander ME (1997) Field Guide to the Canadian Forest Fire Behavior Prediction (FBP) System, Technical Report 11, Canadian Forest Service, Northern Forestry Centre, Edmonton, AlbertaGoogle Scholar
  23. Taylor SW, Woolford DG, Dean CB, Martell DL (2013) Wildfire prediction to inform fire management: statistical science challenges. Stat Sci 28(4):586–615View ArticleGoogle Scholar
  24. Tymstra C, Bryce RW, Wotton BM, Armitage OB (2009) Development and structure of Prometheus: the Canadian wildland fire growth simulation Model. Nat. Resour. Can., Can. For. Serv., North. For. Cent., Edmonton, AB. Inf. Rep. NOR-X-417.
  25. van der Werf GR, Randerson JT, Giglio L, Collatz GJ, Kasibhatla PS, Arellano AFJ (2006) Interannual variability in global biomass burning emissions from 1997 to 2004. Atm Chem Phys 6:3423–3441. doi:10.5194/acp-6-3423-2006 View ArticleGoogle Scholar
  26. Van Wagner CE (1969) A simple fire growth model. For Chron 45(2):103–104. doi:10.5558/tfc45103-2 View ArticleGoogle Scholar
  27. Van Wagner CE (1977) A method of computing fine fuel moisture content throughout the diurnal cycle, Environment Canada, Canadian Forestry Service, Petawawa Forest Experiment Station, Chalk River, Ontario. Information Report PS-X-69Google Scholar
  28. Van Wagner CE (1987) Development and structure of the Canadian forest fire weather index system. Forest Technology Report 35. Canadian Forestry Service, OttawaGoogle Scholar
  29. Van Wagner CE, Pickett TL (1985) Equations and FORTRAN program for the Canadian Forest Fire Weather Index System. Can. For. Serv., Ottawa, Ont. For. Tech Rep 33:18Google Scholar
  30. Wang X, Thompson D, Marshall GA, Tymstra C, Carr R, Flannigan MD (2015) Increasing frequency of extreme fire weather in Canada with climate change. Clim Change 130(4):573–586. doi:10.1007/s10584-015-1375-5 View ArticleGoogle Scholar
  31. Wang X, Parisien M-A, Taylor SW, Perakis DD, Little JM, Flannigan MD (2016) Future burn probability in south-central British Columbia. Int J Wildland Fire 25(2):200–212, View ArticleGoogle Scholar
  32. Wotton BM (2009a) A grass moisture model for the Canadian Forest Fire Danger Rating System. In: Proceedings 8th Fire and Forest Meteorology Symposium, Kalispell., MT Oct 13-15, 2009. Paper 3-2Google Scholar
  33. Wotton BM (2009b) Interpreting and using outputs from the Canadian Forest Fire Danger Rating System in research applications. Environ Ecol Stat 16:107–131. doi:10.1007/s10651-007-0084-2 View ArticleGoogle Scholar
  34. Wotton BM, Alexander ME, Taylor SW (2009) Updates and revisions to the 1992 Canadian forest fire behavior prediction system. Nat. Resour. Can., Can. For. Serv., Great Lakes For. Cent., Sault Ste. Marie, Ontario, Canada. Information Report GLC-X-10, 45p.
  35. Wotton BM, Flannigan MD (1993) Length of the fire season in a changing climate. For Chron 69:187–192. doi:10.5558/tfc69187-2 View ArticleGoogle Scholar
  36. Wotton BM, Stocks BJ, Martell DL (2005) An index for tracking sheltered forest floor moisture within the Canadian Forest Fire Weather Index System. Int Wildland Fire 14:169–182. doi:10.1071/WF04038 View ArticleGoogle Scholar


© The Author(s). 2017