Burn Severities

The severity module provides two utilities for working with 4-class burned area reflectance rasters. These datasets are typically referred as BARC4 burn severities. In brief, these rasters classify each pixel’s burn severity using an integer from 1 (unburned) to 4 (highly burned). You can use the classification function to return the scheme used/expected by this module:

>>> # Import the severity module and examine the classification scheme
>>> from pfdf import severity
>>> severity.classification()
{
  'unburned': 1,
  'low': 2,
  'moderate': 3,
  'high': 4,
  'burned': [2, 3, 4]
}

mask

The mask function is used to generate a mask from a BARC4-like burn severity raster. Given a set of burn descriptors, the function returns a boolean Raster object. Pixels that match one of the burn descriptors are marked as True, all other pixels are False. For example:

# Load a BARC4-like raster
from pfdf.raster import Raster
barc4 = Raster('barc4.tif')

# Locate pixels with various burn severity levels
high = severity.mask(barc4, "high")
moderate_high = severity.mask(barc4, ["high", "moderate"])
burned = severity.mask(barc4, "burned")

estimate

We recommend using official burn severity classification products when possible. However, these rasters are not always available. When this is the case, you can use the estimate command to estimate a BARC4-like burn severity from dNBR:

# Estimate severity from dNBR
dnbr = Raster('dnbr.tif')
barc4 = severity.estimate(dnbr)

By default, the function uses the following dNBR thresholds to classify severity:

Class

dNBR Range

unburned: 1

[-Inf, 125]

low: 2

(125, 250]

moderate: 3

(250, 500]

high: 4

(500, Inf]

However, you can use the thresholds option to select different thresholds:

# Use custom thresholds to estimate severity from dNBR
thresholds = [100, 300, 700]
barc4 = severity.estimate(dnbr, thresholds)

Note that thresholds are always inclusive for the lower class, and exclusive of the higher class.