Ember Spotting and Crown Fire
Both extensions are off by default and add fields, plotfile variables and checkpoint state only when enabled.
Ember spotting
erf.fire.spotting.enable turns on a stochastic firebrand model after
Albini (1983). Every erf.fire.spotting.spotting_interval fire
steps (one fire step per atmospheric step; default every step), with the
same random draws on every rank whatever the decomposition:
The launch set is identified. With
erf.fire.spotting.launch_from = "burned"(default) it is every burned cell (\(\phi < 0\)) with a positive rate of spread, so the number of brands grows with the burned area and the launch probability has to be retuned for each domain. With"front"it is only the burned cells that have unburned fuel withinerf.fire.spotting.front_bandfire cells (default 2), the fireline Albini’s model describes, so the count follows the fireline length.The Byram fireline intensity \(I_B\) [kW/m] of each front cell is formed from the rate of spread, the fuel load and the heat content (\(h w_0 R\) on every burning cell until its load is 1 % of the initial, about \(4.6\,\tau\) behind the front; the launch band of
"burned"and theP_basecalibration moved with this in October 2026).Cells below
erf.fire.spotting.I_B_min(default 100 kW/m) launch nothing. Otherwise the lofting height is\[H_z = 12.2\, I_B^{1/3} \quad [\mathrm{m}],\]Albini’s equation 1 for wind-driven surface fires.
A brand is launched with probability
erf.fire.spotting.P_baseper front cell per application (default 0.01).The brand falls at
erf.fire.spotting.terminal_velocity(default 0.5 m/s) while drifting with the wind at its height: the reference wind at the height it was sampled (erf.fire.wind_ref_ht, or 6.096 m for every cell withuse_per_fuel_wind_ht) scaled by the neutral log profile \(\ln(z/z_0) / \ln(z_{ref}/z_0)\) with \(z_0\) =erf.fire.wind_sample_z0, so a brand lofted to 200 m rides a wind about twice the 6.1 m wind (until October 2026 it drifted on the WAF-reduced midflame wind, about a quarter of that). The fall is integrated by forward Euler overerf.fire.spotting.n_traj_stepssub-steps (default 20) from \(H_z\) to the terrain surface, which is interpolated under the brand so that drift downslope lands farther away.The landing distance is capped at the maximum spotting distance of the source cell’s fuel (its code on a fuel map, the domain fuel otherwise; a burning structure’s footprint cell takes the map’s code under it, the tables’ 500 m for a non-burnable code) from Scott (2006) and Albini, for the fuel system selected by
erf.fire.spotting.fuel_system,"13"(Anderson) or"40"(Scott and Burgan).The brand ignites with probability
erf.fire.spotting.P_catch(default 1) and only if the landing cell still holds at leasterf.fire.spotting.reentry_fuel_thresh(default 0.05) of its initial fuel load, so brands landing in the burned area or on consumed fuel are discarded.A disc of radius
erf.fire.spotting.spot_radius(default 10 m) is stamped negative into \(\phi\) at the landing point, in the convention of the propagation path: normalised by the radius on the FARSITE path, as a signed distance in metres on the level-set path. The landing removes no fuel: the spot burns its cells’ load like any other burning cell (until October 2026 it stripped 95 % of the load from every cell of the disc, losing its heat). A brand that lands on a non-burnable cell is dropped and, with the exposure diagnostics on, counted on that cell.
Note
Until the exposure work the spotting step clamped \(\phi\) to \([-1, 1]\) on every call regardless of the path. On the level-set path, where \(\phi\) is a distance in metres, that squashed the distance function every spotting step and changed the spread even when no brand landed. Level-set runs with spotting on therefore differ from earlier builds; FARSITE runs do not.
erf.fire.spotting.random_seed fixes the draws for reproducibility;
zero seeds from the clock. The four-component diagnostic field
fire_albini_data records, per cell, the lofting height at source cells,
the number of brands launched, the maximum landing distance reached from
that cell, and a flag marking cells that received a spot ignition; the
statistics CSV adds the number of spot fires per step and the largest
landing distance. The spotting sources and landings are on the fire grid
and use the fire-grid wind, so brands do not see the three-dimensional
plume; the terrain reader supplies the ground under the trajectory.
Crown fire
erf.fire.crown.enable adds the transition from surface fire to crown
fire and an active crown rate of spread. The canopy is described by uniform
parameters: base height erf.fire.crown.canopy_base_ht (m), bulk
density erf.fire.crown.canopy_bulk_den (kg/m³), depth
erf.fire.crown.canopy_depth (m), foliar moisture
erf.fire.crown.foliar_moisture (fraction) and heat content
erf.fire.crown.h_crown_BTU_lb. Cruz’s regression was fitted to North
American conifer stands and is not meant for grass or shrub fuel models.
Initiation. A surface fire crowns where its Byram intensity exceeds the Van Wagner (1977) critical intensity,
with \(C_{BH}\) the canopy base height [m] and \(m\) the foliar
moisture content in percent of dry mass (erf.fire.crown.foliar_moisture
times 100). At the defaults (5 m, 100 %) \(I_0\) = 1883 kW/m. Until
September 2026 the 3/2 power was missing and the moisture entered as the excess
over a “critical” value, so the threshold was 16x lower and dry foliage could
not crown. Once a cell has crowned it stays crowned.
Active crown rate of spread. erf.fire.crown.ros_model selects
"cruz"(default), Cruz, Alexander and Wakimoto (2005),\[R_{crown} = \frac{11.02}{60}\, U_{10}^{0.90}\, C_{BD}^{0.19}\, e^{-0.17\, M_{10}} \quad [\mathrm{m/s}],\]with \(U_{10}\) the 10 m wind in km/h (the reference wind at
erf.fire.wind_ref_ht, an open wind, not the WAF-reduced midflame wind; or fixed byerf.fire.crown.wind_10m_kmhwhen positive) and \(M_{10}\) the 10-hour dead moisture in percent;"rothermel1991", \(R_{crown} = 3.34\, R_{surface}\);"van_wagner_proxy", \(R_{crown} = (3 / C_{BD})\, f(M_{fol}) / 60\).
With erf.fire.crown.use_passive_blend the transition is continuous
through the crowning fraction \(CF = \min\bigl((I_B/I_{crit})^{2/3}, 1\bigr)\),
\(R = (1 - CF)\, R_{surface} + CF\, R_{crown}\); otherwise the crown rate
replaces the surface rate in crowned cells. Crowned cells are burned, so
the rate is also carried into the unburned band ahead of them, every cell
within \(2 + \lceil R_{max}\Delta t / \Delta x \rceil\) cells taking
the largest crown rate of its burned or already reached neighbours when
that exceeds its surface rate, and the ratio to the surface rate is a
per-cell factor that the directional level-set stages multiply into the
rate they rebuild, as the acceleration factor is (until October 2026 the
crown rate reached the front only on the FARSITE path and the isotropic
level set; the directional path, the default, rebuilt the surface rate at
every stage). The crown fraction burned of
Scott and Reinhardt (2001), \((R - R_{surface}) / (R_{crown} - R_{surface})\),
is written as fire_crown_fraction_burned.
Heat release. Crowned cells consume the canopy load
\(C_{BD} \times\) depth with the e-folding time
\(\mathrm{depth} / R_{crown}\) (at least 1 s) and add its heat to the
sensible flux as a step mean, \(w_c h_c (1 - e^{-\Delta t/\tau}) /
\Delta t\), so the heat handed over is the heat of the canopy consumed; it
enters the atmosphere with the same exponential injection and e-folding
depth as the surface flux. fire_crown_active and
fire_crown_load are checkpointed so crowned cells stay crowned across a
restart.
References
Albini, F. A. (1983). Potential spotting distance from wind-driven surface fires. USDA Forest Service Research Paper INT-309.
Scott, J. H. (2006). An analytical model for estimating spotting distance from surface fires. In: Fuels Management: How to Measure Success, USDA Forest Service RMRS-P-41.
Van Wagner, C. E. (1977). Conditions for the start and spread of crown fire. Canadian Journal of Forest Research, 7(1), 23-34.
Cruz, M. G., Alexander, M. E. and Wakimoto, R. H. (2005). Development and testing of models for predicting crown fire rate of spread in conifer forest stands. Canadian Journal of Forest Research, 35(7), 1626-1639.
Rothermel, R. C. (1991). Predicting behavior and size of crown fires in the northern Rocky Mountains. USDA Forest Service Research Paper INT-438.
Scott, J. H. and Reinhardt, E. D. (2001). Assessing crown fire potential by linking models of surface and crown fire behavior. USDA Forest Service Research Paper RMRS-RP-29.