FireCastNet focuses on forecasting seasonal wildfire activity at a global scale by learning how climate, vegetation, and human factors interact over space and time. The key idea is to represent the Earth as a connected system, where conditions in one region can influence fire activity far away through large-scale climate patterns. FireCastNet first encodes spatio-temporal information from multiple Earth system variables, then models long-range dependencies using a graph-based neural network inspired by recent advances in weather forecasting, capturing both local fire drivers and global teleconnections to enable burned-area predictions several months in advance.
Uses Lightning CLI and supports multiple models. Configuration files are located in configs/.
In order to run for classification:
python main.py fit --config configs/config.yamlOther models can be run using:
python main.py fit --config configs/gru-config.yaml
python main.py fit --config configs/conv-gru-config.yaml
python main.py fit --config configs/conv-lstm-config.yaml
python main.py fit --config configs/utae-config.yamlAdjust the configuration file and name it with a regr suffix.
python main.py fit --config configs/config-regr.yamlYou need to install pytorch, DGL and lightning. Start from DGL as this will dictate the rest of the dependencies. Example with python 3.10, DGL 2.0.0, pytorch 2.7 and cuda 12.1.
python -m venv .venv
source .venv/bin/activate
pip install https://data.dgl.ai/wheels/cu121/dgl-2.0.0%2Bcu121-cp310-cp310-manylinux1_x86_64.whl
pip install xarray xbatcher zarr
pip install pytorch-lightning lightning
pip install einops scikit-learn
pip install -U 'jsonargparse[signatures]>=4.27.7'Folder icospheres/ contains the GraphCast icospheres. Folder icospheres-lam contains tools for local
area modelling icospheres where some regions are denser while the rest of the world is sparser.
Download the SeasFire dataset from zenodo. Note it is 44GB.
Unzip the dataset to a folder of your choice. Reference the dataset from the config file.
Various model checkpoints, global or localized per GFED-region can be found at
hugging-face. See file inference_fcn.py
on how to use them.
A few helper scripts can be found in this repository.
inference_fcn.py: Given a cube and a FireCastNet model checkpoint, perform inference and produce a cube containing the predictions as a variable.compute_metrics.py: Given a cube with a variable with predictions (for classification), output global and per GFED region metrics.compute_cls_baselines.py: Compute classification baselines and output them as variables in a cube.compute_feature_importance.py: Compute feature importance using Integrated Gradients from captum.
@article{Michail2025FireCastNet,
title = {FireCastNet: Earth-as-a-Graph for Seasonal Fire Prediction},
author = {Michail, Dimitrios and
Davalas, Charalampos and
Chafis, Konstantinos and
Panagiotou, Lefki-Ioanna and
Prapas, Ioannis and
Bountos, Nikolaos Ioannis and
Kondylatos, Spyros and
Papoutsis, Ioannis},
journal = {Scientific Reports},
publisher = {Nature Publishing Group UK},
year = {2025},
month = dec
}This work is part of the SeasFire project, which deals with ”Earth System Deep Learning for Seasonal Fire Forecasting” and is funded by the European Space Agency (ESA) in the context of the ESA Future EO-1 Science for Society Call.
