Semi-arid mallee heath

The Cruz (2013) rate of spread model was developed for predicting fire spread rates in semi-arid mallee heath.

Vegetation

Semi-arid mallee heath

Fuel inputs

temp
rel_hum
mallee_fuel_height
mallee_cover
delta
  • Temperature (degrees C)
  • Relative humidity (%)
  • Mallee overstorey height (m)
  • Overstorey mallee cover (%)
  • Solar radiation factor (0 orĀ 1)

Code

// Semi-arid mallee heath model - Cruz et al. (2013)

// -------------------------------------------
// Model parameters
// These must be defined below, or included as a user-defined layer
//
// 1. Temperature, 'temp' (input)
// 2. Relative humidity, 'rel_hum' (input)
// 3. Mallee overstorey height, 'mallee_fuel_height' (input)
// 4. Overstorey mallee cover, 'mallee_cover' (input)
// 5. Solar radiation factor, 'delta' (input), {0,1}, delta = 1 for sunny days from 12:00 - 17:00 from October to March (high solar radiation) and 0 otherwise.
// -------------------------------------------

// Calculating the wind speed which is used to calculate head fire ROS
REAL wind_speed = length(wind_vector);

// Calculating the normalised dot product between the wind vector and the normal to the fire perimeter
REAL wdot = dot(normalize(wind_vector),advect_normal_vector);

// Calculate length-to-breadth ratio (LBR) which varies with wind speed
// Equations are curve fits adapted from Taylor (1997)
REAL LBR = 1.0;
if (wind_speed < 5){
    LBR = 1.0;
} else if (wind_speed < 25){
    LBR = 0.9286 * exp(0.0505 * wind_speed); 
} else {
    LBR = 0.1143 * wind_speed + 0.4143; 
} 

// Determine coefficient for backing and flanking rank of spread using elliptical equations
// Where R_backing = cb * R_head, R_flanking = cf * R_head,
REAL cc = sqrt(1.0-pow(LBR, -2.0)); 
REAL cb = (1.0-cc)/(1.0+cc); 
REAL a_LBR = 0.5*(cb+1.0); 
REAL cf = a_LBR/LBR; 

// Determine shape parameters 
REAL f = 0.5*(1.0+cb); 
REAL g = 0.5*(1.0-cb); 
REAL h = cf; 

// Now calculate a speed coefficient using normal flow formula
REAL speed_fraction = (g*wdot+sqrt(h*h+(f*f-h*h)*wdot*wdot)); 

// Initialising the solar radiation variable 
REAL delta; 
if (hour > 11 && hour < 17){
    delta = 1;
} else{
    delta = 0;} 

// Calculating moisture content using Cruz (2010) 
REAL MC = 4.79 + 0.173*rel_hum - 0.1*(temp - 25) - delta * 0.027 * rel_hum; 

// Calculating the probability of a sustained surface fire 
REAL Ps = 1 / (1 + exp(-1*(14.62 + 0.207*wind_speed - 1.872*MC - 0.304*mallee_cover))); 

// Calculating head fire rate of spread with a weighted average of the surface and crown spread rates
REAL head_speed;
// Ps threshold of 0.5 to determine whether surface fire will be self sustaining 
if (Ps > 0.5){
    // Calculating probability of crowning
    REAL Pc = 1 / (1 + exp(-1*(-11.138 + 1.4054*wind_speed - 3.4217*MC)));

    // Calculating surface fire rate of spread
    REAL Rs = 3.337 * wind_speed * exp(-0.1284 * MC) * pow(mallee_fuel_height, -0.7073);

    // Calculating crown fire rate of spread
    REAL Rc = 9.5751 * wind_speed * exp(-0.1795 * MC) * pow(0.01*mallee_cover, 0.3589);

    // Weighting total rate of spread based on probability of crowning
    head_speed = (1 - Pc)*Rs + Pc*Rc;
}
else{
    head_speed = 0;}

// Converting spread rate into m/s
head_speed = head_speed / 60;

// Adjust for calculated speed coefficient for fire flanks
speed = head_speed * speed_fraction;