Physically-informed Sentinel-2 wildfire-risk spectral simulator
Project description
FireSynth-S2
FireSynth-S2 is a physically-informed synthetic Sentinel-2 wildfire-risk spectral dataset generator designed for research and machine-learning applications. It produces realistic Sentinel-2 band reflectance values together with vegetation & burn indices under both fire and non-fire scenarios — enabling reproducible wildfire risk modeling without requiring raw satellite downloads.
🌍 Motivation
Obtaining labeled wildfire training data from satellite imagery is:
- ⚠ time-consuming
- ⚠ storage-heavy
- ⚠ often incomplete
- ⚠ difficult to balance (fire vs non-fire)
FireSynth-S2 solves this by generating statistically realistic, label-balanced synthetic samples that reflect published spectral wildfire behavior — ideal for:
✔ model prototyping ✔ academic experiments ✔ teaching ✔ dataset augmentation
🚀 Features
-
Sentinel-2-like spectral bands:
B02_blueB03_greenB04_redB08_nirB11_swir1B12_swir2
-
Derived indices:
NDVINDWINBR
-
Binary wildfire label (
1 = fire,0 = non-fire) -
California-tuned priors (expandable)
-
Deterministic & reproducible generation
-
Export to Pandas DataFrame
-
Lightweight (no remote downloads)
📦 Installation
TestPyPI (current release)
pip install -i https://test.pypi.org/simple firesynth-s2
🧠 Quick Start
from firesynth import FireSynthS2
gen = FireSynthS2(region="California")
df = gen.generate(10000)
print(df.head())
Example output:
| B04_red | B08_nir | NDVI |
|---|---|---|
| 0.12 | 0.55 | 0.64 |
| 0.18 | 0.72 | 0.60 |
| 0.30 | 0.40 | 0.14 |
🔬 Scientific Basis
FireSynth-S2 reflects documented wildfire-driven spectral behavior:
| Condition | NIR (B08) | SWIR (B11/B12) | NDVI | NBR |
|---|---|---|---|---|
| Healthy vegetation | High | Low | High | High |
| Stressed vegetation | Medium | Rising | Falling | Falling |
| Active / burned | Decreased | Strongly increased | Low | Very low |
Values are sampled from distributions calibrated to:
- vegetation physiology
- soil reflectance
- moisture loss
- combustion impacts
(citations available on request / planned for docs)
📁 Output Schema
| Column | Description |
|---|---|
S2_tile |
Sentinel-2 grid tile ID |
acquisition_date |
Synthetic date |
B02_blue |
Band 2 reflectance |
B03_green |
Band 3 reflectance |
B04_red |
Band 4 reflectance |
B08_nir |
Band 8 reflectance |
B11_swir1 |
Band 11 reflectance |
B12_swir2 |
Band 12 reflectance |
NDVI |
(NIR-RED)/(NIR+RED) |
NDWI |
(NIR-SWIR)/(NIR+SWIR) |
NBR |
(NIR-SWIR2)/(NIR+SWIR2) |
label |
1 = fire, 0 = non-fire |
⚖ Class Balance
By default:
50% fire
50% non-fire
🧪 Reproducibility
gen = FireSynthS2(seed=42)
📍 Regions
Currently implemented:
✔ California (empirical priors)
More regions coming soon.
📊 Use Cases
- wildfire risk prediction ML
- anomaly detection
- academic coursework
- preprocessing pipeline testing
- benchmarking
- augmentation for real datasets
⚠ Disclaimer
FireSynth-S2 generates synthetic data.
It is intended for:
✔ research ✔ experimentation ✔ prototyping
It is not a substitute for operational wildfire intelligence.
🏗 Roadmap
- 🔜 region library expansion
- 🔜 PyTorch dataset wrapper
- 🔜 paper / citation
- 🔜 GUI generator
- 🔜 configurable physics params
🤝 Contributing
Contributions welcome!
- open issues
- submit PRs
- propose regions
- share research links
📜 License
MIT License
🙏 Acknowledgements
Inspired by wildfire remote sensing research involving:
🌲 Sentinel-2 MSI 🔥 Fire radiative effects 🌿 Vegetation indices
✨ Citation (coming soon)
A citable paper / Zenodo DOI is planned.
👤 Maintainer
Chaitanya Kamble (firesynth-s2 developer)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file firesynth_s2-0.1.2.tar.gz.
File metadata
- Download URL: firesynth_s2-0.1.2.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3cc933d22e5a28e99f79300d717a6e477d8d6043743a5c175b927cd3bf05642
|
|
| MD5 |
e3221c33c0def530bef53f04b6a589f7
|
|
| BLAKE2b-256 |
8ff7db0fb74fa5d6a3ac98aed4b9fe57cc4624c8e0c5a4cba6ec8488a7414409
|
File details
Details for the file firesynth_s2-0.1.2-py3-none-any.whl.
File metadata
- Download URL: firesynth_s2-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72e459a2c70dda862318611d4a4163032557fb2fedae10f73efac4e5c9f11e16
|
|
| MD5 |
181954091b89c44ab12f5f0f6faa6aa3
|
|
| BLAKE2b-256 |
74fad349d4db0fdb01f71ce3df1969a94612dfba0e13ae5d400d68feb34f2d6a
|