LANDFIRE Fuel Models
Overview
LANDFIRE (Landscape Fire and Resource Management Planning Tools) provides geospatial data for wildland fire management across the United States. This data loader provides fire behavior fuel model (FBFM) classifications at 30m resolution over the contiguous United States (CONUS).
Two fuel model products are available:
- FBFM13: Anderson 13 fire behavior fuel models (codes 1–13), the classic fuel classification system.
- FBFM40: Scott & Burgan 40 fuel models (codes 101–204), a more detailed classification.
Both products include non-burnable codes: 91 (urban/developed), 92 (snow/ice), 93 (agriculture), 98 (water), and 99 (barren). Code 0 indicates no fuel data.
The fuel model codes from LANDFIRE map directly to fuel property dictionaries (e.g., fuel bed depth, moisture of extinction, surface-area-to-volume ratios) used in fire spread models such as the Rothermel model.
Reference: LANDFIRE: Landscape Fire and Resource Management Planning Tools. U.S. Department of the Interior, Geological Survey. https://landfire.gov/
EarthSciData.LANDFIRE — Function
LANDFIRE(
domaininfo;
name,
product,
version,
resolution,
stream
)
Create a ModelingToolkit System that provides fuel model data from LANDFIRE.
The system exposes a single variable fuel_model (dimensionless) interpolated to the simulation coordinates using nearest-neighbour interpolation (appropriate for categorical data).
Arguments
domaininfo: ADomainInfospecifying the spatial and temporal domain.name: System name (default:LANDFIRE).product: LANDFIRE product (default"FBFM13"for Anderson 13 fuel models).version: LANDFIRE version (default"LF2022").resolution: Target resolution in arc-seconds (default 1.0 ≈ 30m).stream: Whether to stream data lazily (defaulttrue).
Example
using EarthSciData, EarthSciMLBase, ModelingToolkit, Dates
domain = DomainInfo(
DateTime(2018, 11, 8), DateTime(2018, 11, 9);
lonrange = deg2rad(-121.7):deg2rad(0.01):deg2rad(-121.5),
latrange = deg2rad(39.7):deg2rad(0.01):deg2rad(39.8),
levrange = 1:1
)
fuel = LANDFIRE(domain)Implementation
Data is downloaded from the LANDFIRE ImageServer REST API as GeoTIFF files. Because this is categorical (integer-valued) data, nearest-neighbour interpolation (BSpline(Constant())) is used for regridding instead of the bilinear interpolation used by other data sources. This preserves the integer fuel model codes.
Variables
using EarthSciData, EarthSciMLBase
using ModelingToolkit, DynamicQuantities, DataFrames
using ModelingToolkit: t
using DynamicQuantities: dimension
using Dates
domain = DomainInfo(
DateTime(2018, 11, 8), DateTime(2018, 11, 9);
lonrange = deg2rad(-121.7):deg2rad(0.01):deg2rad(-121.5),
latrange = deg2rad(39.7):deg2rad(0.01):deg2rad(39.8),
levrange = 1:1
)
landfire = LANDFIRE(domain; resolution = 10.0)
function table(vars)
DataFrame(
:Name => [string(Symbolics.tosymbol(v, escape = false)) for v in vars],
:Units => [dimension(ModelingToolkit.get_unit(v)) for v in vars],
:Description => [ModelingToolkit.getdescription(v) for v in vars]
)
end
table(unknowns(landfire))| Row | Name | Units | Description |
|---|---|---|---|
| String | Dimensio… | String | |
| 1 | fuel_model | Fire behavior fuel model (Anderson 13) |
Parameters
table(parameters(landfire))| Row | Name | Units | Description |
|---|---|---|---|
| String | Dimensio… | String | |
| 1 | t_ref | s | Reference time |
| 2 | fuel_model_itp | Interpolated fuel_model |
Equations
equations(landfire)\[ \begin{align} \mathtt{fuel\_model}\left( t \right) &= \mathtt{fuel\_model\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right) \end{align} \]