Skip to content

Commit 0740651

Browse files
authored
Add fire module (#922) (#927)
* Add fire module: burn severity, fire behavior, and KBDI (#922) Seven per-cell raster functions with numpy/cupy/dask/dask+cupy backends: Burn severity: dnbr, rdnbr, burn_severity_class (USGS 7-class) Fire behavior: fireline_intensity (Byram), flame_length, rate_of_spread (simplified Rothermel with Anderson 13 fuel model lookup) Fire danger: kbdi (single time-step Keetch-Byram Drought Index) Includes 54 tests covering known values, NaN propagation, edge cases, input validation, cross-backend parity, Dataset support, and accessor smoke tests. Adds .xrs accessor methods for both DataArray and Dataset. * Add fire analysis user guide notebook Beginner-oriented walkthrough of all 7 fire module functions with synthetic data: dNBR, RdNBR, burn severity classification, fireline intensity, flame length, rate of spread (with fuel model comparison and moisture sensitivity), and multi-day KBDI accumulation. * Add fire section to README feature matrix * Add fire module to Sphinx docs - API reference page (docs/source/reference/fire.rst) with autosummary directives for all 7 public functions - User guide notebook (docs/source/user_guide/fire.ipynb) with synthetic data examples for burn severity, fire behavior, and KBDI - Updated reference and user guide toctrees
1 parent 9931145 commit 0740651

11 files changed

Lines changed: 2549 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ connected-component labelling; and broad dask+cupy backend coverage across the
1010
library.
1111

1212
#### New Features
13+
- Add fire module: dNBR, RdNBR, burn severity class, fireline intensity, flame length, rate of spread (Rothermel), and KBDI (#922)
1314
- Add 3D multi-band support to focal functions (#924)
1415
- Add foundational hydrology tools (#921)
1516
- Add terrain metrics module: TRI, TPI, and Roughness (#920)

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,20 @@ In the GIS world, rasters are used for representing continuous phenomena (e.g. e
163163

164164
-------
165165

166+
### **Fire**
167+
168+
| Name | Description | NumPy xr.DataArray | Dask xr.DataArray | CuPy GPU xr.DataArray | Dask GPU xr.DataArray |
169+
|:----------:|:------------|:----------------------:|:--------------------:|:-------------------:|:------:|
170+
| [dNBR](xrspatial/fire.py) | Differenced Normalized Burn Ratio (pre minus post NBR) | ✅️ | ✅️ | ✅️ | ✅️ |
171+
| [RdNBR](xrspatial/fire.py) | Relative dNBR normalized by pre-fire vegetation density | ✅️ | ✅️ | ✅️ | ✅️ |
172+
| [Burn Severity Class](xrspatial/fire.py) | USGS 7-class burn severity from dNBR thresholds | ✅️ | ✅️ | ✅️ | ✅️ |
173+
| [Fireline Intensity](xrspatial/fire.py) | Byram's fireline intensity from fuel load and spread rate (kW/m) | ✅️ | ✅️ | ✅️ | ✅️ |
174+
| [Flame Length](xrspatial/fire.py) | Flame length derived from fireline intensity (m) | ✅️ | ✅️ | ✅️ | ✅️ |
175+
| [Rate of Spread](xrspatial/fire.py) | Simplified Rothermel spread rate with Anderson 13 fuel models (m/min) | ✅️ | ✅️ | ✅️ | ✅️ |
176+
| [KBDI](xrspatial/fire.py) | Keetch-Byram Drought Index single time-step update (0-800 mm) | ✅️ | ✅️ | ✅️ | ✅️ |
177+
178+
-------
179+
166180
### **Multispectral**
167181

168182
| Name | Description | NumPy xr.DataArray | Dask xr.DataArray | CuPy GPU xr.DataArray | Dask GPU xr.DataArray |

docs/source/reference/fire.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
.. _reference.fire:
2+
3+
****
4+
Fire
5+
****
6+
7+
Burn Severity
8+
=============
9+
.. autosummary::
10+
:toctree: _autosummary
11+
12+
xrspatial.fire.dnbr
13+
xrspatial.fire.rdnbr
14+
xrspatial.fire.burn_severity_class
15+
16+
Fire Behavior
17+
=============
18+
.. autosummary::
19+
:toctree: _autosummary
20+
21+
xrspatial.fire.fireline_intensity
22+
xrspatial.fire.flame_length
23+
xrspatial.fire.rate_of_spread
24+
25+
Fire Danger
26+
===========
27+
.. autosummary::
28+
:toctree: _autosummary
29+
30+
xrspatial.fire.kbdi

docs/source/reference/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Reference
88
:maxdepth: 2
99

1010
classification
11+
fire
1112
flood
1213
focal
1314
multispectral

0 commit comments

Comments
 (0)