Skip to content
Ludovic Beghin edited this page Apr 14, 2023 · 29 revisions

ForeFire takes 3 input files to run:

  1. Fuels: This file defines the classes of fuels and their associated parameters.
  2. Landscape: This file contains data on elevation, wind, and fuel in the region of interest.
  3. ForeFire: This file contains the simulation commands and parameters.

Sample files are provided for running examples, as explained in usage section.

To use your custom data, read carefully the sections below.

Fuels

Definition

Land cover

The fuels present in the sample fuels.ff file match the CORINE Land Cover. To use a different land cover dataset, see Custom fuels.

Parameters

The sample fuels.ff contains a table of fuels, where the first line represents the headers indicating the input parameters for Rothermel's propagation model:

  • Index: fuel's ID
  • Rhod and Rhol: These are values of the particle density of the fuel material in kg/m³, which Forefire accepts in this unit and converts to lb/ft³. It is used to calculate the packing ratio and subsequent variables related to the fuel/oxygen mixture. The variable Rhol is not used by the Forefire code.
  • Md and Ml: This is the moisture content of the fuel material divided by 100. It is used for the calculation of the heat of pre-ignition (Qig). The variable Ml is not used by the Forefire code.
  • sd and sl: These are values referring to the surface to volume ratio of the combustible material in m²/m³ (original ft²/ft³). They are used to calculate the optimum compaction ratio values. The variable sl is not used by the Forefire code.
  • e: Value for the thickness of the blanket of fuel material in m. Dividing the net load of combustible material (kg/m²) gives the value of the density of the combustible material in kg/m³. The net load of fuel material is the mass of fuel discounting the mass of minerals that are part of its composition.
  • Sigmad and Sigmal: The variable that already considers the load of combustible material in kg/m² at 0% humidity discounting the mass of minerals in the composition. Forefire calculates the final density of the combustible material discounting these values. The Sigmal variable is not used by the Forefire code.
  • Deltah and DeltaH: The net calorific value, or heat of combustion in J/kg (original BTU/lb), is the amount of heat available to be released during combustion. It is used to calculate the reaction intensity and the heat released. The variable Deltah is not used by the Forefire code.
  • me: Corresponds to the extinction humidity value in %. Currently it is fixed at the theoretical value of 30%, but can be modified depending on the fuel.

The remaining parameters are only called in the code and are not used in the Rothermel model calculations. To better understand how the Rothermel model works, read this article.

Custom fuels

In your use case, if you are going to use a fuel/land cover dataset different than the CORINE Land Cover, used in the sample fuels.ff, you have two options:

  1. Map your fuels to fuels present in sample fuels.ff, and use the sample. In this case, see the landscape generation section.
  2. Create your custom fuels file

Your custom fuels file will need to follow the pattern of the sample fuels file. The header line with the parameters will be the same:

Index;Rhod;Rhol;Md;Ml;sd;sl;e;Sigmad;Sigmal;stoch;RhoA;Ta;Tau0;Deltah;DeltaH;Cp;Cpa;Ti;X0;r00;Blai;me

Then, you will add the fuels, using the parameters as explained previously. For example, one fuel class could be High Load Dry Climate Grass, with its specific parameters, and the start of the fuels file would look like this:

Index;Rhod;Rhol;Md;Ml;sd;sl;e;Sigmad;Sigmal;stoch;RhoA;Ta;Tau0;Deltah;DeltaH;Cp;Cpa;Ti;X0;r00;Blai;me
1;565;565;0.09;0.5;6017;5250;0.64;1.58;0.11;8.3;1;300;70000;2300000;18608000.0;1800;1000;600;0.3;2.5e-05;4;0.4

Landscape

Definition

The landscape file is in NetCDF format, containing array-shaped data on multiple dimensions:

  • Fuel
  • Elevation
  • Wind

The sample landscape.nc covers the example region in Corsica, France. To get a better understanding of it, you can perform an exploratory data analysis of the file using the provided Jupyter notebook.

Custom landscape

The minimum required to generate your own landscape file is:

  • Fuel/land cover raster of region of interest, where fuel classes correspond to the fuels file you will use
  • Elevation/DEM raster file of region of interest

Before generating the landscape, it is important to note that if you plan to use the sample fuels.ff file but have different fuel classes in your fuels raster, you will need to map your fuel classes to the CORINE land cover classes and then use your mapped/converted fuel raster in the landscape generation.

The following will be inputs to landscape generation:

  • Geographical domain
  • Parameters
  • Fuel data
  • Elevation data
  • Wind data

All of this will be joined in one landscape file. The functions in landscape_gen_funcs.py are provided to help out.

A suggested source for elevation data, if you don't have one, is the SRTM digital elevation dataset.

Custom wind

It's worth noting that generating a landscape file through the provided wind generator function doesn't require any specific information about the wind in the region of interest. The function generates 8 default base wind bands in 8 cardinal/ordinal directions without considering the local topography. However, in this case, the wind direction of the simulation is managed through wind triggers in the ForeFire file (see below).

It's important to recognize that this approach simplifies the simulation and may result in lower accuracy. For more precise wind data, we recommend using WindNinja software.

Alternatively, having only one wind band from an external source or data provider is an option, but this would require recreating the landscape file for each simulation.

ForeFire

The ForeFire file contains the simulation commands and parameters. An example aullene.ff file is provided in examples/aullene.

This file consists of a series of instructions, with each line representing a single instruction. For example, the command setParameter[propagationModel=Rothermel] sets the propagationModel parameter to "Rothermel". You can find a summary of available commands in the ForeFire interpreter by running the following command:

forefire
help[]
forefire help

You can find more details in the User Guide.

There are different ways to construct the ForeFire file. For example, you can define FireFronts and FireNodes, as described in the user guide. But the simplest way would be something like this:

setParameter[dumpMode=geojson]
setParameter[caseDirectory=.]
setParameter[ForeFireDataDirectory=.]
setParameter[projection=EPSG:5880]
setParameter[fuelsTableFile=./fuels.ff]
setParameter[propagationModel=Rothermel]
loadData[landscape_25.nc;test]
startFire[loc=(5626739.831182885,7435804.5140346,0);t=0]
trigger[wind;loc=(0.,0.,0.);vel=(1.0494808870729997,0.8806190252705594,0.);t=0.]
step[dt=600.0s]
print[simulation.ffgeojson]

This provides the information needed to perform the desired simulation. Note the 4 last lines:

  • startFire: gives the location of the ignition, at t=0
  • trigger: wind trigger in the desired speed and direction (location is relative to the fire ignition)
  • step: a 600 seconds step into the simulation
  • print: saving the output geojson of the simulation after 600 seconds

Note that you could save additional stages of the fire spread by adding more step and print commands.

Now that you have your fuels table file, landscape file, and custom.ff file, you can finally run your custom simulation!

forefire -i custom.ff

The output file can then be converted into a standard GeoJSON as explained here.

home

Clone this wiki locally