The Canadian Forest Fire Danger Rating System (CFFDRS) is the principal source of fire information for all wildland fire management agencies across Canada. It has widespread use as a regional and fireline safety and awareness tool. The CFFDRS is undergoing extensive revisions under the name Next Generation CFFDRS (NG-CFFDRS), with rollout to practitioners occurring during 2024, 2025, and beyond. This GitHub repository is home to the NG-CFFDRS code as it is developed by us, the Canadian Forest Service Fire Danger Group. For more details about implementation and development, check out:
- Our website at cffdrs.github.io/website_en
- The 2021 document on An overview of the next generation of the Canadian Forest Fire Danger Rating System
- Sign up to our newsletter where you can specifically select to receive code updates
This repository contains three programming languages: C, Python, and R. These three versions are written to produce the same results so users can choose the version that fits their own software systems.
While we are not actively seeking code contributions at this time, see our contributing page for details on how to provide us feedback and report bugs.
The next generation revisions to CFFDRS will be released in stages and will be collectively referred to as CFFDRS2025. The Fire Weather Index system (FWI2025) is the first module released.
Feedback from users is crucial, and to that effect – we have heard valuable feedback on the compatibility between FWI2025 and the current Fire Behaviour Prediction (FBP) System that needs to be addressed. FWI2025 is related to a new danger-rating system. It has not yet been linked to absolute (rather than relative) quantities of fire behaviour prediction and therefore should not be used with FBP1992 at this time. Linking of FWI2025 and fire behaviour prediction will come with (interim) iFBP2025. As for what agencies can do, they can implement FWI2025 in parallel with FWI1987 to take advantage of its new capabilities and help us with ongoing testing. Some of those new capabilities include:
- Tracking moisture in fast drying fine fuels like the Fine Fuel Moisture Code
- Provide indication of overnight burning
- Better indicators for ignition, spread and intensity with the Grassland FWI System components (Grassland Fuel Moisture Code, Grassland Spread Index, Grassland Fire Weather Index)
- Better indicator of peak fire danger with calculations of the FWI System components in near-real time
For FBP inputs, they should continue to use FWI1987 for operational decisions, though testing FWI2025 with FBP1992 and providing feedback would be valuable. Work is ongoing to quantify the differences between FWI2025 and FWI1987 in relation to the effect on fire behaviour using the current FBP System (FBP1992). We will communicate our findings this spring via our communication channels. But, at this time, FWI2025 should not be used as an input to the FBP System.
The only branch of this repository with code intended for use is in the default main branch. The code is organized into CFFDRS Subsystems followed by programming language in the following structure:
cffdrs-ng/
- data/
PRF2007_daily_wx.csv(daily weather test data reduced from PRF2007_hourly_wx.csv)PRF2007_daily_wx_C-format.csv(daily weather test data reduced from PRF2007_hourly_wx.csv for C)PRF2007_hourly_wx.csv(hourly weather test data recorded at Petawawa Research Forest in 2007)PRF2007_hourly_wx_C-format.csv(hourly weather test data recorded at Petawawa Research Forest in 2007 for C)PRF2007_standard-daily_summaries.csv(sample output file to compare daily summaries)PRF2007_standard_hourly_FWI(sample output file to compare FWI2025)
- FWI/
- C/
- tutorial/
tutorial_daily_to_hourly.ps1tutorial_hourly_FWI.ps1
daily_summaries.c(function to generate the daily summary output)make_hourly.c(converts daily min/max weather data to hourly data)make_minmax.c(converts daily weather data to daily min/max data)NG_FWI.c(functions and equations for generating FWI2025 outputs)NG_FWI.hNG_FWI_main.c(main()function for generating FWI2025 outputs)util.c(basic, intermediate functions that are not a part of FWI2025 equations)util.h
- tutorial/
- Python/
- tutorial/
tutorial_daily_to_hourly.pytutorial_hourly_FWI.py
daily_summaries.py(function to generate the daily summary output)make_hourly.py(converts daily min/max weather data to hourly data)make_minmax.py(converts daily weather data to daily min/max data)NG_FWI.py(functions and equations for generating FWI2025 outputs)util.py(basic, intermediate functions that are not a part of FWI2025 equations)
- tutorial/
- R/
- tutorial/
tutorial_daily_to_hourly.rtutorial_hourly_FWI.r
daily_summaries.r(function to generate the daily summary output)make_hourly.r(converts daily min/max weather data to hourly data)make_minmax.r(converts daily weather data to daily min/max data)NG_FWI.r(functions and equations for generating FWI2025 outputs)util.r(basic, intermediate functions that are not a part of FWI2025 equations)
- tutorial/
- C/
.gitignoreCHANGELOG.mdCONTRIBUTING.md(guideline on providing feedback and reporting bugs)LICENSE.txt(GPL 2.0 license)README.mdSECURITY.md
FWI2025 remains a daily, landscape-level planning tool. Changes include improving daily weather tracking, reconciling different versions of codes and indices, and introducing new codes and indices.
See the website for a tutorial on how to run FWI2025 scripts.
FWI2025 requires hourly weather data. Some weather stations, forecasts, and gridded datasets provide this directly. However, for sub-hourly sources, hourly values must be estimated before calculating hourly FWI by running the NG_FWI code. This repository provides methods for this conversion, including specific methods for daily 13:00 Local Daylight Time (LDT) observations as well as daily min/max forecasts:
- to convert daily min/max values to hourly data run
make_hourly[.c, .py, .r] - to convert daily 13:00 LDT (or noon standard time) values to daily min/max data run
make_minmax[.c, .py, .r]. Follow this with themake_hourlymethod above to finally get hourly weather data
See the website for a tutorial on converting daily weather data to hourly. Check out the FWI2025 info report for more details.