You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LANDFIRE CONUS disturbance history — annual disturbance rasters, split out of #203. Designed to join with MTBS (Monitoring Trends in Burn Severity), the highest-priority fire-history add in #143.
⛔ SCOPE
Extent
CONUS only, full upstream extent. (AK / HI / PR-VI have their own annual-disturbance stacks — AKAnnualDisturbance_1999_present, HIAnnualDisturbance_2011_present, PRVIAnnualDisturbance_2015_present — deferred to the same AK/HI follow-up as #203.)
Recommendation: publish the 1999–present annual stack as the primary product (it is the analytical layer — disturbance type, severity, and year per pixel) plus the current-year Dist24; treat Preliminary and Limited products as provisional and exclude them unless there's a specific need, since they'd otherwise silently double-count with the final release.
Structure — resolve BEFORE generating manifests
USAnnualDisturbance_1999_present is a multi-year product. Determine from the zip whether it ships as one multi-band raster, one raster per year, or an encoded type+severity+year composite, then pick the layout:
Categorical (disturbance type / severity classes) → mode + fractions. fractions matters here: it answers "what share of this cell burned / was harvested", which mode cannot.
Never sum/mean on class codes.
Join with MTBS
The point of this layer is cross-validating and extending burn history. Ensure the H3 grid and year encoding line up with whatever MTBS ingest lands (#143) — same native resolution, same year column name/type. If MTBS lands first, match it.
Naming
Full product names in all STAC titles/descriptions and classification:classes[].name (e.g. "LANDFIRE Annual Disturbance 1999–present (CONUS)"); abbreviations only in keys. Document every disturbance-type and severity code from the shipped CSV.
Bucket / license
public-landfire, license: public-domain, registered in the bucket-level STAC collection created in #203.
Acceptance criteria
Layout question above answered in this issue before any cluster job runs.
Annual stack (+ Dist24) on public-landfire, full CONUS, provisional products explicitly in or out.
Per layer/year: COG + res-10 hex with modeandfractions.
Complete classification:classes (type + severity) with color_hint; year column documented.
Dataset
LANDFIRE CONUS disturbance history — annual disturbance rasters, split out of #203. Designed to join with MTBS (Monitoring Trends in Burn Severity), the highest-priority fire-history add in #143.
⛔ SCOPE
Extent
CONUS only, full upstream extent. (AK / HI / PR-VI have their own annual-disturbance stacks —
AKAnnualDisturbance_1999_present,HIAnnualDisturbance_2011_present,PRVIAnnualDisturbance_2015_present— deferred to the same AK/HI follow-up as #203.)Products — verified URLs (HEAD-probed 2026-08-05)
annual-disturbancehttps://landfire.gov/data-downloads/AnnualDist/USAnnualDisturbance_1999_present.zipdist-2024https://landfire.gov/data-downloads/CONUS_Disturbance/LF2024_Dist24_CONUS.zipAlso available, decide in/out before building:
LF2024_PDist24_CONUS.zip— Preliminary Disturbance 2024LF2025_LDist25_CONUS.zip(42 MB) /LF2025_PDist25_CONUS.zip— Limited / Preliminary Disturbance 2025CONUSLimitedDisturbance_2023_Present.zipRecommendation: publish the 1999–present annual stack as the primary product (it is the analytical layer — disturbance type, severity, and year per pixel) plus the current-year
Dist24; treat Preliminary and Limited products as provisional and exclude them unless there's a specific need, since they'd otherwise silently double-count with the final release.Structure — resolve BEFORE generating manifests
USAnnualDisturbance_1999_presentis a multi-year product. Determine from the zip whether it ships as one multi-band raster, one raster per year, or an encoded type+severity+year composite, then pick the layout:catalog/land-cover/k8s/Ingest: NLCD Annual — land cover + land cover change (2015-2026) #453): one COG + one hex per year, consistent dataset naming (annual-disturbance/<year>).Record the answer in this issue before building. 27 years × (COG + 2 hex jobs) is a large commitment — confirm the layout first.
H3 + reducer
--parent-resolutions 9,8,7,6,5,0— matches Import: LANDFIRE CONUS vegetation & departure suite — EVT, BpS, FRG, SClass, VCC, VDep (LF2024/2020/2016) #203, Import: LANDFIRE 2024 CONUS vegetation structure & fuels — EVC, EVH, FBFM13/40, FVC/FVH/FVT, canopy CBH/CBD/CC/CH #515, and NLCD for directh10 = h10joins.mode+fractions.fractionsmatters here: it answers "what share of this cell burned / was harvested", whichmodecannot.sum/meanon class codes.Join with MTBS
The point of this layer is cross-validating and extending burn history. Ensure the H3 grid and year encoding line up with whatever MTBS ingest lands (#143) — same native resolution, same year column name/type. If MTBS lands first, match it.
Naming
Full product names in all STAC titles/descriptions and
classification:classes[].name(e.g. "LANDFIRE Annual Disturbance 1999–present (CONUS)"); abbreviations only in keys. Document every disturbance-type and severity code from the shipped CSV.Bucket / license
public-landfire,license: public-domain, registered in the bucket-level STAC collection created in #203.Acceptance criteria
Dist24) onpublic-landfire, full CONUS, provisional products explicitly in or out.modeandfractions.classification:classes(type + severity) withcolor_hint; year column documented.scripts/check-hex-coverage.sh);scripts/verify-stac.py --bucket public-landfire --dataset <each>exits 0.h10.Split from #203. Part of #140; serves the fire-history gap in #143.