Skip to content

ESA-PhiLab/E2E-Wildfire

Repository files navigation

GitHub stars GitHub forks GitHub issues GitHub pull requests GitHub last commit GitHub code size GitHub top language GitHub repo size GitHub contributors Python 3.9+ Documentation Status PRs Welcome DOI License: GPL v3

ESA-PhiLab Logo

E2E2: End-to-end training on S-2 RAW data

The END2END project studies the problem of performing on-board satellite thermal anomalies classification on Sentinel-2 Raw data. It provides a complete codebase that enables users to replicate experiments, train and test an EfficientNet-lite-0 architecture for the classification of thermal anomalies.

👥 Authors

  • Gabriele Meoni 🔬 (Google Scholar)
  • Roberto Del Prete 🎓 (Google Scholar)
  • Lucia Ancos-Villa,
  • Enrique Albalate-Prieto
  • David Rijlaarsdam
  • Jose Luis Espinosa-Aranda
  • Nicolas Longépé
  • Maria Daniela Graziano
  • Alfredo Renga

📖 Project Reference

📝 Abstract

Nowadays, the use of Machine Learning (ML) onboard Earth Observation (EO) satellites has been investigated for a plethora of applications relying on multispectral and hyperspectral imaging. Traditionally, these studies have heavily relied on high-end data products, subjected to extensive pre-processing chains natively designed to be executed on the ground. However, replicating such algorithms onboard EO satellites poses significant challenges due to their computational intensity and need for additional metadata, which are typically unavailable on board. Because of that, current missions exploring onboard ML models implement simplified but still complex processing chains that imitate their on-ground counterparts. Despite these advancements, the potential of ML models to process raw satellite data directly remains largely unexplored. To fill this gap, this paper investigates the feasibility of applying ML models directly to Sentinel-2 raw data to perform thermal hotspot classification. This approach significantly limits the processing steps to simple and lightweight algorithms to achieve real-time processing of data with low power consumption. To this aim, we present an end-to-end (E2E) pipeline to create a binary classification map of Sentinel-2 raw granules, where each point suggests the absence/presence of a thermal anomaly in a square area of 2.5 km. To this aim, lightweight coarse spatial registration is applied to register three different bands, and an EfficientNet-lite0 model is used to perform the classification of the various bands. The trained models achieve an average Matthew’s correlation coefficient (MCC) score of 0.854 (on 5 seeds) and a maximum MCC of 0.90 on a geographically tripartite dataset of cropped images from the THRawS dataset. The proposed E2E pipeline is capable of processing a Sentinel-2 granule in 1.8 s and within 6.4 W peak power on a combination of Raspberry PI 4 and CogniSat-XE2 board, demonstrating real-time performance.

🛠️ How to Use

Detailed instructions to set up and run the project at src/README.md

Requirements

This repository uses a modern Python environment standard:

  • Python ≥ 3.9
  • Dependencies are specified in the pyproject.toml file.

To install:

pip install .

Or using PDM:

pdm install

📚 Citations

Please cite the following works if you use this code:

@article{meoni2025e2e,
    title={E2E: Onboard satellite real-time classification of thermal hotspots events on optical raw data},
    author={Meoni, Gabriele and Del Prete, Roberto and Ancos-Villa, Lucia and Albalate-Prieto, Enrique and Rijlaarsdam, David and Espinosa-Aranda, Jose Luis and Long{\'e}p{\'e}, Nicolas and Graziano, Maria Daniela and Renga, Alfredo},
    journal={Astrodynamics},
    year={2025},
    publisher={Springer},
    doi={10.1007/s42064-024-0249-x},
    url={https://doi.org/10.1007/s42064-024-0249-x}
}

📂 Repository Structure

├── LICENSE
├── README.md
├── pyproject.toml      # project metadata & dependencies
├── setup.cfg           # optional packaging config
├── environment.yml     # optional environment specification
├── src/                # source code & Python package
│   └── your_package/   # replace with your package name
├── notebooks/          # Jupyter notebooks for experiments or analysis
├── papers/             # manuscript sources (LaTeX, figures, assets)
├── data/               # raw/processed datasets or external links
├── scripts/            # utility scripts and entry points
├── tests/              # unit and integration tests
├── docs/               # documentation (Sphinx, MkDocs, GitHub Pages)
│   ├── index.html      # main documentation page
│   ├── images/         # documentation assets (images,..)
└── examples/           # usage examples and demos

The docs/ directory contains the project's documentation website with comprehensive information about the project, including:

  • Project overview and goals
  • Installation and setup instructions
  • Usage examples and tutorials
  • API documentation
  • Links to related resources and publications
  • Team and contributor information

📄 License

This project is licensed under the CC BY-NC-ND 4.0 license. See the LICENSE file or read more at creativecommons.org.

📊 Dataset Hosting

Datasets are either included in data/ or hosted externally:

Ensure external links are functional and persistent.

📥 Data Download Utilities

This repository includes a utility script for downloading datasets or models from the Hugging Face Hub:

# Install required dependencies
pip install huggingface_hub

# Run the download script
python data/download_hf_datasets.py

The script (data/download_hf_datasets.py) provides a robust way to fetch datasets with automatic retries and error handling. It uses the huggingface_hub library to download repositories with the following features:

  • Downloads datasets or models from Hugging Face Hub
  • Configurable retry mechanism for handling network issues
  • Progress tracking and error reporting
  • Supports custom local directories for downloads
  • Uses HF's optimized transfer protocol

About

End2End detection of wildfire from raw Sentinel-2 Data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published