Checking for missing content type metadata ...

Checking for non-preferred file/folder path names (may take a long time depending on the number of files/folders) ...

BurnSAVe: A Multi-Source Dataset for Wildfire Analysis


Authors:
Owners: This resource does not have an owner who is an active HydroShare user. Contact CUAHSI (help@cuahsi.org) for information on this resource.
Type: Resource
Storage: The size of this resource is 10.5 GB
Created: Aug 24, 2026 at 5:17 p.m. (UTC)
Last updated: Aug 24, 2026 at 9:14 p.m. (UTC) (Metadata update)
Published date: Aug 24, 2026 at 9:14 p.m. (UTC)
DOI: 10.4211/hs.d9fd82b3dbc343a893f30b4b3ef94814
Citation: See how to cite this resource
Sharing Status: Published
Views: 121
Downloads: 34
+1 Votes: Be the first one to 
 this.
Comments: No comments (yet)

Abstract

Wildfire burn severity manifests as impacts on above-ground vegetation, relevant to ecological processes, or on soil, including below-ground organic matter, with direct relevance to hydrological and geomorphological processes. While Vegetation Burn Severity (VBS) is typically estimated using remote sensing proxies, Soil Burn Severity (SBS) is generally assessed through expensive, time-consuming manual field measurements. We introduce the Burn Severity of Soil And Vegetation (BurnSAVe) dataset to not only enable descriptive understanding of SBS and VBS interconnections but also facilitate prescriptive models that translate VBS to SBS. BurnSAVe integrates 456 spatially and temporally harmonized attributes describing fire severity, vegetation condition, terrain, climate, weather, soil properties and moisture, and daily fire progression for 532 large fires mainly across the Western United States from 2012 through 2024. We evaluated dataset quality and consistency using multiple complementary approaches, including cross-source comparisons and statistical assessments. BurnSAVe provides analysis-ready, pixel-level information suitable for statistical and machine learning applications, supporting systematic investigation of wildfire severity patterns, fire progression, and post-fire ecosystem responses across broad spatial and temporal scales.

Subject Keywords

Coverage

Spatial

Coordinate System/Geographic Projection:
WGS 84 EPSG:4326
Coordinate Units:
Decimal degrees
Place/Area Name:
contiguous united states (CONUS)
North Latitude
49.3400°
East Longitude
-66.9300°
South Latitude
24.3900°
West Longitude
-125.7800°

Temporal

Start Date:
End Date:

Content

README.md

BurnSAVe dataset overview

BurnSAVe Dataset

Each thematic category in the dataset contains one or more GeoTIFF (.tif) files. Individual GeoTIFF files may consist of either a single band or multiple bands, depending on the variable and its temporal representation (e.g., static layers versus event-centered time series).

Within each year folder, files are named using the following convention:

{n}L_{MTBS_ID}.tif

where:

  • {n}L indicates the number of bands (layers) contained in the GeoTIFF file.
  • MTBS_ID is the unique MTBS fire identifier.

Example

4L_AZ3237811092720200606.tif

This filename indicates:

  • 4L: a four-band GeoTIFF file.
  • AZ3237811092720200606: the MTBS fire ID.

The final eight digits of the MTBS fire ID encode the fire ignition date in the format:

YYYYMMDD

For the example above, the ignition date is June 6, 2020 (2020-06-06).

Nested File Structure

Base_Data
├── Burnseverity_fireintensity_metrics
│   ├── Soil Burn Severity Classes (SBS)
│   │   ├── 2012
│   │   │   ├── 1L_az3415011088320120614.tif
│   │   │   └── …
│   │   ├── 2013
│   │   │   ├── 1L_AZ3143511076720130517.tif
│   │   │   └── …
│   │   └── …
│   │
│   ├── Vegetation Burn Severity (VBS)
│   │   ├── 2012
│   │   │   ├── 4L_OR4227712061220200815.tif
│   │   │   └── …
│   │   └── …
│   │
│   └── Fire Intensity Proxy (FRP)
│       ├── 2012
│       │   ├── 3L_az3415011088320120614.tif
│       │   └── …
│       └── …
│
├── Landsurface Vegetation Topography
│   ├── Ecoregions_Level_1_2_3
│   │   ├── 2012
│   │   │   ├── 3L_az3415011088320120614.tif
│   │   │   └── …
│   │   └── …
│   │
│   ├── Vegetation and Land Cover (LANDFIRE)
│   │   ├── 2012
│   │   │   ├── 2L_az3415011088320120614.tif
│   │   │   └── …
│   │   └── …
│   │
│   ├── Landsurface Temperature (LST)
│   │   ├── 25L_Day_Median
│   │   │   ├── 2012
│   │   │   │   ├── 25L_az3415011088320120614.tif
│   │   │   │   └── …
│   │   │   └── …
│   │   │
│   │   ├── 25L_Day_Std
│   │   │   ├── 2012
│   │   │   │   ├── 25L_az3415011088320120614.tif
│   │   │   │   └── …
│   │   │   └── …
│   │   │
│   │   ├── 25L_Night_Median
│   │   │   ├── 2012
│   │   │   │   ├── 25L_az3415011088320120614.tif
│   │   │   │   └── …
│   │   │   └── …
│   │   │
│   │   └── 25L_Night_Std
│   │       ├── 2012
│   │       │   ├── 25L_az3415011088320120614.tif
│   │       │   └── …
│   │       └── …
│   │
│   ├── Topography
│   │   ├── 2012
│   │   │   ├── 3L_az3415011088320120614.tif
│   │   │   └── …
│   │   └── …
│   │
│   └── Vegetation Condition and Greenness
│       ├── EVC
│       │   ├── 2012
│       │   │   ├── 1L_az3415011088320120614.tif
│       │   │   └── …
│       │   └── …
│       │
│       ├── EVH
│       │   ├── 2012
│       │   │   ├── 1L_az3415011088320120614.tif
│       │   │   └── …
│       │   └── …
│       │
│       ├── EVI
│       │   ├── 2012
│       │   │   ├── 25L_az3415011088320120614.tif
│       │   │   └── …
│       │   └── …
│       │
│       └── NDVI
│           ├── 2012
│           │   ├── 25L_az3415011088320120614.tif
│           │   └── …
│           └── …
│
├── Soil Characteristics
│   ├── 2012
│   │   ├── 25L_az3415011088320120614.tif
│   │   └── …
│   └── …
│
├── Weather and Climate
│   ├── Climate Normal (30 Year Averages)
│   │   ├── 2012
│   │   │   ├── 7L_az3415011088320120614.tif
│   │   │   └── …
│   │   └── …
│   │
│   └── Event Centered Climate
│       ├── Pr
│       │   ├── 2012
│       │   │   ├── 25L_az3415011088320120614.tif
│       │   │   └── …
│       │   └── …
│       │
│       ├── Tmmn
│       │   ├── 2012
│       │   │   ├── 25L_az3415011088320120614.tif
│       │   │   └── …
│       │   └── …
│       │
│       └── Tmmx
│           ├── 2012
│           │   ├── 25L_az3415011088320120614.tif
│           │   └── …
│           └── …
│
└── Daily Fire Progression Attributes
    ├── VIIRS based Data
    │   ├── 2012
    │   │   ├── 192L_az3415011088320120614.tif
    │   │   └── …
    │   └── …
    │
    └── FIRED Data
        ├── 2012
        │   ├── 8L_az3415011088320120614.tif
        │   └── …
        └── …

Table of Contents

Section Subsection Description
1. Burn Severity and Fire Intensity Metrics 1.1 Soil Burn Severity (SBS) Soil burn severity classes
1.2 Vegetation Burn Severity (VBS) Vegetation burn severity metrics
1.3 Fire Radiative Power (FRP) Fire intensity proxy
2. Landsurface, Vegetation, and Topography 2.1 Ecoregions Level 1, 2, and 3 Ecoregion classifications
2.2 Vegetation and Land Cover (LANDFIRE) Vegetation and land-cover information
2.3 Landsurface Temperature (LST) Daytime and nighttime land-surface temperature
2.4 Terrain Data Topographic attributes
2.5 Vegetation Condition and Greenness Vegetation condition and greenness indices
3. Soil Characteristics Soil physical and hydrological characteristics
4. Weather and Climate 4.1 Climate Normal (30-Year Averages) Long-term climate averages
4.2 Event-Centered Climate Climate variables centered around each fire event
5. Daily Fire Progression Attributes 5.1 VIIRS-Based Data Daily fire progression derived from VIIRS
5.2 FIRED Data Daily fire progression derived from FIRED

BurnSAVe Stacking App

Stack fire-related raster features (burn severity, fire intensity, climate, vegetation, topography, and daily fire-progression variables) into per-fire-event, multi-band GeoTIFFs — with real variable names and definitions on every band, not generic placeholders.

You download the public BurnSAVe dataset yourself from HydroShare (no account or login required), then give the app the path to the zip file or the extracted folder. The app takes it from there.


Contents

File Purpose
app.py The application. Interactive prompts or CLI flags; this is what you run.
stacker.py Core stacking engine (alignment, resampling, GeoTIFF writing). You shouldn't need to touch this.
band_metadata.py Real variable names/definitions/units/sources for every band, transcribed from the dataset's metadata document.
local_data.py Unzips your downloaded data (if needed) and locates the BurnSAVe folder automatically.
environment.yml Conda environment spec (Python, numpy, rasterio).
setup_env.sh / setup_env.ps1 One-time environment setup (Linux/macOS / Windows).
run.sh / run.ps1 Convenience wrappers that activate the environment and run app.py, forwarding any arguments.
README.md This file.

Requirements

  • Conda (Miniconda or Anaconda) — https://docs.conda.io/en/latest/miniconda.html
  • A web browser, to download the public dataset from HydroShare

No extra Python packages beyond environment.yml are needed — there's no API client involved.


Quick Start

1. Set up the environment

Linux/macOS:

``` chmod +x setup_env.sh run.sh

./setup_env.sh ```

conda activate sbs_app

Windows PowerShell:

.\setup_env.ps1

conda activate sbs_app

2. Download the dataset

Download the dataset from its public HydroShare page using your web browser. Save the downloaded .zip file to a location of your choice.

3. Run the application

Run the application and specify the path to the downloaded dataset:

python app.py --data-root "C:/Downloads/BurnSAVe.zip" --features VBS,NDVI --years 2020 --out-dir ./outputs

The app unzips the file automatically (next to where it already is), finds the BurnSAVe folder inside, and produces stacked GeoTIFFs in ./outputs. Re-running the same command later skips re-unzipping, since it detects the data is already extracted.


Step-by-Step Setup

1. Install Conda

Download Miniconda for your OS, install with default options, then reopen your terminal. Confirm it worked: bash conda --version

2. Get the app files

Put this whole folder somewhere convenient and open a terminal in it: bash cd sbs_app ls

3. Create the environment (one-time)

Linux/macOS: bash chmod +x setup_env.sh run.sh ./setup_env.sh conda activate sbs_app

Windows (PowerShell): powershell .\setup_env.ps1 conda activate sbs_app Your prompt should now start with (sbs_app). This creates the environment from environment.yml (Python 3.11, numpy, rasterio). You only need to do this once per computer; re-run setup_env any time environment.yml changes.

4. Download the dataset yourself

Open the dataset's public HydroShare page in a browser and download it as a zip — no account or login required, since it's public. Save it anywhere convenient; you don't need to unzip it yourself.


Pointing the App at Your Data

--data-root (or the SBS_DATA_ROOT environment variable) accepts either:

  • A .zip file — the app unzips it automatically, into a new folder named after the zip, right next to it. For example, C:/Downloads/BurnSAVe.zip extracts to C:/Downloads/BurnSAVe/.
  • An already-extracted folder — used directly (or searched one level in, if the BurnSAVe folder is nested a level or two deeper, e.g. inside a folder HydroShare added around it).

Either way, the app automatically finds the folder literally named BurnSAVe and uses that as the dataset root. This never requires internet access — it only touches files already on your disk.

One-off, per run

bash python app.py --data-root "C:/Downloads/BurnSAVe.zip" --features VBS,NDVI --out-dir ./outputs

Set once for the whole terminal session

bash export SBS_DATA_ROOT=/full/path/to/BurnSAVe # Linux/macOS, already extracted $env:SBS_DATA_ROOT = "C:\full\path\to\BurnSAVe" # Windows PowerShell, already extracted

Note: SBS_DATA_ROOT expects an already-extracted folder, not a zip. Use --data-root if you want to point directly at a .zip file.

Sanity-check before a real run

bash python app.py --data-root "C:/Downloads/BurnSAVe.zip" --list-features This unzips/locates the data (if needed) and runs the same path-existence check the stacker uses, warning immediately if anything's missing instead of failing partway through a run.

Extract/locate only, without stacking anything

bash python local_data.py --path "C:/Downloads/BurnSAVe.zip" Prints the resolved BurnSAVe folder path and the exact commands to use it, without running the stacker.

If nothing is set

If you don't pass --data-root, don't set SBS_DATA_ROOT, and you're running non-interactively, the app falls back to the built-in default path in app.py (DEFAULT_DATA_ROOT). On a new computer this usually won't exist, and the app fails fast with a clear error instead of silently producing zero outputs: [ERROR] The SBS reference folder does not exist: <path> Fix it with one of: --data-root "C:/path/to/BurnSAVe.zip" --data-root /path/to/already/extracted/BurnSAVe export SBS_DATA_ROOT=/path/to/your/BurnSAVe


Running the App

Interactive mode

Run with no arguments at all: bash python app.py You'll be prompted in order for: the path to your BurnSAVe data (a .zip or an extracted folder — skipped if --data-root/SBS_DATA_ROOT is already set), output folder, years, months, MTBS IDs, features (the full feature list with descriptions is printed first), whether to include SBS, strict mode, and debug logging. Press Enter at any prompt to accept its default.

Non-interactive / scripted mode

Pass any of --out-dir, --years, --months, --mtbs-ids, --features, --include-sbs, --strict, --debug, or -y, and the app skips the prompts and runs directly — useful for batch/HPC jobs: bash python app.py --data-root "C:/Downloads/BurnSAVe.zip" --years 2019,2020 --features VBS,NDVI --out-dir ./outputs --strict run.sh/run.ps1 forward any arguments, so ./run.sh --list-features works the same way.


Exploring Features and Bands

These need no data on disk — they just read the built-in metadata catalog:

List all available features

python app.py --list-features

Describe a specific feature

python app.py --describe-feature VBS

Available features

Feature Bands Description
SBS 1 Soil Burn Severity classes (categorical). Always used as the spatial reference grid.
VBS 4 Vegetation Burn Severity: dNBR_BARC, dNBR_MTBS, dNBR6, RdNBR.
FRP 3 Fire Radiative Power: max, cumulative, day/night flag.
Climate_Normals 7 30-year climate normals: wind, temperature, radiation, precipitation, ET.
Pr 25 Monthly precipitation, event-centered (12mo pre-fire … fire month … 12mo post-fire).
Tmmn / Tmmx 25 each Monthly min/max temperature, event-centered.
Soil_Characteristics 6 Silt, sand, clay, organic matter, theta_r, theta_s.
Ecoregions 3 EPA Level I/II/III ecoregion IDs (categorical).
Landcover 2 LANDFIRE vegetation group + biophysical setting code (categorical).
LST_Day_median / LST_Night_median / LST_Day_std / LST_Night_std 25 each Monthly land-surface temperature statistics, event-centered.
Topography 3 Elevation, slope, aspect.
EVC / EVH 1 each LANDFIRE Existing Vegetation Cover / Height class (categorical).
EVI / NDVI 25 each Monthly vegetation indices, event-centered.
VIIRS_daily 192 Daily/event-centered fire-progression and environmental driver variables.
FIRED 8 FIRED daily fire-weather variables.

VIIRS_daily and FIRED were previously named Daily_zach/Daily_Jennifer. Both old names still work (auto-mapped internally) if you have older scripts referencing them.

Band naming in the output

Every band in a stacked GeoTIFF is named <feature>__<variable>, e.g. VBS__dNBR6, Pr__pr_m-12 (12 months pre-fire), Pr__pr_m+00 (fire month). This is stamped as the band description in the GeoTIFF itself (visible in QGIS/ArcGIS/gdalinfo), along with tags for DEFINITION, UNITS, SOURCE, and CLASSES where applicable.


CLI Reference

Flag What it does
--list-features Print every available feature with a one-line description. No data needed.
--describe-feature NAME Print the full band-by-band definition of one feature. No data needed.
--data-root PATH Path to your BurnSAVe data — a .zip file (unzipped automatically) or an already-extracted folder.
--out-dir PATH Output folder for stacked GeoTIFFs, band-legend CSVs, and logs (default: ./outputs).
--years LIST Comma-separated years, or a range like 2012-2015. Default: all available.
--months LIST Comma-separated months (1-12). Default: all.
--mtbs-ids LIST Comma-separated MTBS fire identifiers, to restrict to specific fire events.
--features LIST Comma-separated features to stack (default: VBS,NDVI).
--include-sbs Include the Soil Burn Severity layer as an output band.
--strict Stop with an error on any missing feature, instead of skipping it.
--debug Verbose logs, including per-band resampling detail.
-y, --yes Force non-interactive mode using defaults for anything not given as a flag.

Run python app.py --help any time for the full, current list.


Output Structure

outputs/ STACK_<mtbs_id>.tif <- stacked, multi-band GeoTIFF for one fire event STACK_<mtbs_id>_bands.csv <- plain-English legend: variable, definition, units, source, classes, per band logs/ stack_log_<timestamp>.log <- full run log stack_report_<timestamp>.csv <- FOUND / MISSING / ERROR, per feature per fire

Always check the _bands.csv first to know exactly what each band in the GeoTIFF represents.


Troubleshooting

Symptom What to do
conda: command not found Reopen your terminal after installing Miniconda, or confirm conda is on your PATH.
ImportError: cannot import name '...' from 'band_metadata' (or similar) Your app.py/band_metadata.py/stacker.py/local_data.py are from different versions. Replace all of them together, not one at a time.
[ERROR] Path not found: ... The path/zip you gave --data-root doesn't exist — check for typos, or that the file finished downloading.
[ERROR] The SBS reference folder does not exist No data root is configured yet, or it's pointing at the wrong place. Set --data-root to your zip file or extracted folder.
Could not find a 'BurnSAVe' folder inside the extracted contents The zip extracted with an unexpected layout. Inspect the extracted folder by hand, then pass --data-root pointed directly at the correct location.
Outputs written: 0 with a warning Your --years/--months/--mtbs-ids filters excluded every fire, or every match failed — check logs/stack_report_<timestamp>.csv for FAIL/MISSING entries.
setup_env.sh: No such file or directory The file is missing from your local folder — re-copy the full file set listed under Contents.
--features SBS alone produces 0 outputs SBS is always the alignment reference, not a regular stackable feature — combine it with --include-sbs if you want it as an output band.

Notes

  • Nothing in this app ever connects to the internet or any API — all it does is read a .zip file or folder you already downloaded yourself.
  • find_data_root() searches case-insensitively for BurnSAVe, so variations in capitalization in the extracted folder name won't break auto-discovery.
  • Re-running the same --data-root <zip> command is safe — it detects the zip is already extracted and skips redoing it.

Additional Metadata

Name Value
Application guideline First, download both the dataset and the application. Instructions for installing and using the application are provided in the APP-README file.

Credits

Funding Agencies

This resource was created using funding from the following sources:
Agency Name Award Title Award Number
NASA Earth Science NASA FINESST 80NSSC24K1758

How to Cite

Montazeri, A. (2026). BurnSAVe: A Multi-Source Dataset for Wildfire Analysis, HydroShare, https://doi.org/10.4211/hs.d9fd82b3dbc343a893f30b4b3ef94814

This resource is shared under the Creative Commons Attribution CC BY.

http://creativecommons.org/licenses/by/4.0/
CC-BY

Comments

There are currently no comments

New Comment

required