Use the Rothermel (1972) model with one of the 53 standard fuel models (13 NFFL + 40 Scott & Burgan):
# Fuel moisture (fraction, 0-1) for each size classmoisture =FuelClasses(d1=0.06, d10=0.07, d100=0.08, herb=0.0, wood=0.0)# Rate of spread in m/minrate_of_spread(SHORT_GRASS, moisture=moisture, wind=8.0, slope=0.0)
31.119112730486354
See the Rothermel page for details on fuel models and parameters.
Build a Fire Spread Model
The SpreadModel module lets you compose a FireSpreadModel from pluggable wind, moisture, and terrain components:
model =FireSpreadModel( SHORT_GRASS, # fuel modelUniformWind(speed=8.0), # 8 km/h windUniformMoisture(moisture), # uniform moisture from aboveFlatTerrain() # no slope)# Evaluate at a point: returns spread rate in m/minmodel(0.0, 100.0, 100.0)
31.119112730486354
Run a Fire Spread Simulation
Create a level set grid, ignite, and simulate:
# 200x200 grid, 30m resolution -> 6km x 6km domaingrid =LevelSetGrid(200, 200, dx=30.0)# Ignite a 50m-radius circle at the centerignite!(grid, 3000.0, 3000.0, 50.0)# Simulate 100 steps of 0.5 min each (50 min total)simulate!(grid, model, steps=100, dt=0.5)grid