Slope effects

The slope of the terrain that the fire is burning through effects the rate of spread of the fire. Below is an example of how to include slope effects in a Spark rate of spread model using McArthur’s rule of thumb and CSIRO’s Kataburn model. There are several ways of including slope effects in Spark, this example uses a scalar method as defined in Sharples (2008).

Vegetation

Not vegetation specific

Code

// Slope effects - McArthur and CSIRO Kataburn example

// Defining an omnidirectional rate of spread which will be later modified by a slope factor
speed = 0.1;

// Calculate slope effect

// Calculating slope in direction of the normal of the fire front
REAL slope_in_normal_dir = degrees(atan(dot(normal_vector,grad(elevation))));

// Capping slopes at 20 degrees for largest speed increases or decreases in this example
slope_in_normal_dir = min(max(slope_in_normal_dir,-20),20);

// Using McArthur's rule of thumb to double the speed of the fire for every 10 degrees up-slope.
// 'fabs' is used here as part of the CSIRO Kataburn model.
REAL slope_coeff = pow(2.0, 0.1*fabs(slope_in_normal_dir));

// The CSIRO Kataburn model is implemented here for negative slopes (fire spreading down hill)
// The speed of fire spread normal to the fire perimeter is modified.
if (slope_in_normal_dir >= 0)
   speed *= slope_coeff;
else
   speed *= slope_coeff/(2*slope_coeff-1.0);