Wildfire-FM / README.md
nielsr's picture
nielsr HF Staff
Improve model card metadata and link paper
187f33f verified
|
raw
history blame
9.72 kB
---
library_name: pytorch
license: mit
pipeline_tag: other
tags:
- wildfire
- geospatial
- weather
- earth-observation
- foundation-models
- evaluation
- pytorch
pretty_name: WildFIRE-FM
---
<div align="center">
<h1 align="center">WildFIRE-FM</h1>
<h3 align="center">A wildfire-specialized reference backbone for fixed-contract Earth-FM transfer evaluation</h3>
<p align="center"><b>Five seeded PyTorch checkpoints, paper-aligned evaluation artifacts, final figure previews, and source-data access notes for 12-hour wildfire occupancy prediction on a 5 km California grid.</b></p>
<p>
<a href="https://huggingface.co/papers/2605.18911"><img alt="Paper" src="https://img.shields.io/badge/Paper-HF%20Paper%20Page-blue?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/resolve/main/paper/wildfire_fm_evaluation_contracts.pdf"><img alt="Paper PDF" src="https://img.shields.io/badge/Paper-compiled%20PDF-0F5C5F?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/tree/main/models/wildfire_fm/checkpoints"><img alt="Checkpoints" src="https://img.shields.io/badge/Checkpoints-5%20seeds-C66B2D?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/blob/main/models/wildfire_fm/modeling_unet.py"><img alt="PyTorch" src="https://img.shields.io/badge/PyTorch-model%20code-EE4C2C?style=flat-square&logo=pytorch&logoColor=white"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/blob/main/data_sources/DATA_SOURCES.md"><img alt="Data notes" src="https://img.shields.io/badge/Data-source%20notes-536065?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/tree/main/artifacts/results"><img alt="Results" src="https://img.shields.io/badge/Results-sanitized%20summaries-0F5C5F?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/tree/main/assets"><img alt="Figures" src="https://img.shields.io/badge/Figures-final%20previews-C66B2D?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/blob/main/data_sources/DATA_SOURCES.md"><img alt="Grid" src="https://img.shields.io/badge/Grid-5%20km%20EPSG%3A5070-0F5C5F?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#quick-start"><img alt="Input" src="https://img.shields.io/badge/Input-16%20channels-C66B2D?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#task-contract-snapshot"><img alt="Tasks" src="https://img.shields.io/badge/Contracts-6%20task%20views-536065?style=flat-square"></a>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/badge/License-MIT-0F5C5F?style=flat-square"></a>
</p>
<p>
<a href="https://huggingface.co/papers/2605.18911"><b>Read the paper</b></a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM/tree/main/models/wildfire_fm/checkpoints"><b>Download checkpoints</b></a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#quick-start"><b>Load the model</b></a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#task-contract-snapshot"><b>Inspect task-contract results</b></a>
</p>
<h3>5 Seeded Checkpoints · 16-Channel Gridded Input · 12-Hour Occupancy Lead · 6 Fixed Task-Contract Views</h3>
<p>
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#why-wildfire-fm">Why WildFIRE-FM</a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#release-navigation">Release Navigation</a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#visual-tour">Visual Tour</a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#quick-start">Quick Start</a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#task-contract-snapshot">Task Snapshot</a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#data-sources">Data Sources</a> ·
<a href="https://huggingface.co/RAI-Lab/Wildfire-FM#how-to-cite">How to Cite</a>
</p>
</div>
---
<p align="center">
<img src="https://huggingface.co/RAI-Lab/Wildfire-FM/resolve/main/assets/wildfire_fm_model_card.svg" alt="WildFIRE-FM overview" width="95%">
</p>
## Release Navigation
<table>
<tr>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/papers/2605.18911">Paper Page</a></h3>
<p>Visit the paper page on Hugging Face for the full manuscript, discussions, and related research.</p>
</td>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/RAI-Lab/Wildfire-FM/tree/main/models/wildfire_fm/checkpoints">Model Checkpoints</a></h3>
<p>Access five seeded WildFIRE-FM weights with manifest metadata and SHA-256 hashes for release auditing.</p>
</td>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/RAI-Lab/Wildfire-FM/blob/main/models/wildfire_fm/modeling_unet.py">Model Code</a></h3>
<p>Inspect the compact U-Net implementation used to load the released wildfire occupancy backbone.</p>
</td>
</tr>
<tr>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/RAI-Lab/Wildfire-FM#quick-start">Quick Start</a></h3>
<p>Clone the repository, instantiate the model, load a seeded checkpoint, and run the artifact check.</p>
</td>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/RAI-Lab/Wildfire-FM#task-contract-snapshot">Task Snapshot</a></h3>
<p>View the final-paper task-contract summary for occupancy, spread, retrieval, burned area, smoke, and heat.</p>
</td>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/RAI-Lab/Wildfire-FM/tree/main/artifacts/results">Numeric Artifacts</a></h3>
<p>Use sanitized CSV and JSON summaries that back the public model-card tables and figure previews.</p>
</td>
</tr>
<tr>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/RAI-Lab/Wildfire-FM#visual-tour">Visual Tour</a></h3>
<p>Browse final-paper previews for matching-rule sensitivity, selection regret, and task-form ranking changes.</p>
</td>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/RAI-Lab/Wildfire-FM/blob/main/data_sources/DATA_SOURCES.md">Data Sources</a></h3>
<p>See the public provider links and roles for HRRR, FIRMS, LANDFIRE, WRC, LandScan, WFIGS, and MTBS.</p>
</td>
<td width="33%" valign="top">
<h3><a href="https://huggingface.co/RAI-Lab/Wildfire-FM#repository-layout">Repository Layout</a></h3>
<p>Find where checkpoints, manifests, scripts, paper outputs, and release documentation live in this Hub repo.</p>
</td>
</tr>
</table>
---
## Why WildFIRE-FM
Wildfire Earth-FM transfer scores depend strongly on the contract used for comparison: task form, metric, matching rule, spatial scope, and head-selection criterion. The paper studies these choices by holding outputs or features fixed and then changing only the evaluation contract.
WildFIRE-FM is the in-region reference model used in those comparisons. It is trained for 12-hour gridded wildfire occupancy on a California 5 km grid, then evaluated under the same task-specific contracts as the transferred Earth-FM backbones.
---
## Key Features
- **Wildfire-specialized reference model:** Compact U-Net for 12-hour occupancy prediction on a projected California grid.
- **Five seeded checkpoints:** Seeds `1`, `7`, `42`, `99`, and `123` are released with manifest hashes.
- **Fixed-contract artifacts:** Compact summaries cover matching-rule, head-selection, and task-form comparisons from the final paper.
- **Source-data aware release:** Provider links and data roles are documented for each public resource used by the study.
- **Paper-aligned previews:** Figure assets summarize selection regret, supporting-task rank changes, and primary-task rank changes.
---
## Quick Start
Clone the Hub repository or download the files you need:
```bash
git clone https://huggingface.co/RAI-Lab/Wildfire-FM
cd Wildfire-FM
```
Load a seeded checkpoint:
```python
import torch
from models.wildfire_fm.modeling_unet import UNetSmallFlex
model = UNetSmallFlex(
in_ch=16,
base=32,
dropout=0.1,
norm_type="group",
norm_groups=8,
use_aux_spatial_head=True,
)
checkpoint = torch.load(
"models/wildfire_fm/checkpoints/seed_1/best_firms_prauc.pt",
map_location="cpu",
)
state = checkpoint.get("model", checkpoint)
model.load_state_dict(state)
model.eval()
```
The checkpoint expects the same 16-channel gridded input described in the paper and in `data_sources/DATA_SOURCES.md`.
---
## Task-Contract Snapshot
| Task contract | Best final-paper mean | Winner |
|---|---:|---|
| Occupancy union F1 | `60.1506 ± 7.5865` percent | ClimaX |
| Fire-spread spatial F1 | `80.9700 ± 2.0200` percent | WildFIRE-FM |
| Final burned-area log-RMSE | `1.1657 ± 0.0126`, lower is better | WildFIRE-FM |
| Analog retrieval nDCG@10 | `0.5099 ± 0.0336` | WildFIRE-FM |
| Smoke PM2.5 RMSE | `4.4403 ± 0.0488`, lower is better | AlphaEarth |
| Extreme-heat RMSE-C | `0.2179 ± 0.0043`, lower is better | WildFIRE-FM |
---
## How To Cite
If you use WildFIRE-FM, the released checkpoints, the fixed-contract evaluation artifacts, or the paper-aligned scripts, please cite:
```bibtex
@misc{wildfire_fm_evaluation_contracts_2026,
title = {Does Your Wildfire Prediction Model Actually Work, or Just Score Well?},
author = {Yangshuang Xu and Yuyang Dai and Liling Chang and Qi Wang and Yushun Dong},
year = {2026},
note = {WildFIRE-FM model and fixed-contract wildfire evaluation artifacts}
}
```
---
WildFIRE-FM is released to make wildfire Earth-FM transfer comparisons easier to inspect, reproduce at the artifact level, and evaluate under explicit contracts.