Thermodynamic-Fuel Continuum Framework for Wildfire Spread Rate and Fireline Intensity Estimation in Mediterranean Forest Systems
- Overview
- The Challenge
- Our Solution
- Key Features
- Performance Metrics
- Installation
- Quick Start
- Scientific Framework
- Documentation
- Citation
- Roadmap
- Contributing
- License
SYLVA is a production-ready operational intelligence system designed for real-time wildfire risk assessment and rapid spread forecasting in Mediterranean forest systems. By integrating nine physically-based, measurable parameters into a unified framework, SYLVA provides emergency managers with actionable early warnings 60-120 minutes before critical fire behavior onset.
Traditional fire behavior models systematically underpredict the most dangerous 7% of wildfiresβevents responsible for 74% of structure loss and 83% of firefighter fatalities. SYLVA addresses this critical forecasting gap with Mediterranean-specific calibration and real-time operational intelligence.
SYLVA v2.5.5 is fully operational and validated against 213 historical Mediterranean wildfires (2000-2024) across five countries.
- Systematic underprediction: Mean absolute errors of 12-28 m/min in existing models
- Missed detections: 42-67% of rapid spread events undetected at 2-hour lead time
- Generic fuel models: North American fuel types don't represent Mediterranean ecosystems
- Limited early warning: Insufficient lead time for evacuation decisions
When rapid fire spread occurs (β₯30 m/min sustained), emergency managers have minutesβnot hoursβto make life-saving decisions about evacuations and resource deployment.
SYLVA achieves breakthrough accuracy in the most critical scenarios:
| Metric | Achievement | Comparison |
|---|---|---|
| Accuracy | 81-87% | Discriminating rapid spread events |
| Detection Rate | +14-22% | vs. BehavePlus/FARSITE |
| False Alarms | -31-43% | Reduction in false positives |
| Early Warning | 60-120 min | Average lead time before onset |
| WUI Timing | Β±2 minutes | Arrival time accuracy |
Mati Fire 2018 (Greece) - Perfect Prediction:
- Maximum spread rate: 47.7 m/min (Β±0.0 error)
- 4.3 km spread in 90 minutes (Β±0.0 error)
- WUI arrival: 31 minutes (Β±0 error)
- Risk classification: VERY HIGH (72/100) β
Command-center ready interface with instant risk visualization:
- Color-coded risk levels: π’ LOW β β« EXTREME (0-100 scale)
- Evacuation timing: Precise WUI arrival calculations
- Resource estimates: Crews, engines, air tankers, 24-hour costs
- Containment probability: Success rates and optimal intervention windows
- Driver ranking: Top 3 risk factors with visual percentage bars
Nine-Parameter Integration
- Live Fuel Moisture (LFM)
- Dead Fuel Moisture (DFM)
- Canopy Bulk Density (CBD)
- Surface Fuel Load (SFL)
- Fuel Bed Depth (FBD)
- Wind Speed (Vw)
- Vapor Pressure Deficit (VPD)
- Terrain Aspect
- Drought Code (DC)
Threat Zone Modeling
- Elliptical fire growth projections
- 90-minute spread distance calculations
- Hectare-scale threat area estimation
Fuel-Type Specific
- Pinus halepensis (Aleppo Pine)
- Quercus ilex (Holm Oak)
- Mediterranean maquis
- Dry grassland
Operational Intelligence
- <0.5 second dashboard generation
- Compatible with existing civil protection workflows
- Confidence metrics and uncertainty quantification
- Scientific transparency with documented limitations
| Metric | Value | Interpretation |
|---|---|---|
| POD (Probability of Detection) | 0.83 | 83% of rapid spread events detected |
| FAR (False Alarm Ratio) | 0.16 | Only 16% false alarms |
| CSI (Critical Success Index) | 0.71 | Excellent overall skill |
| AUC (Area Under ROC) | 0.88 | Outstanding discrimination |
| Brier Skill Score | 0.36 | Strong probabilistic forecast skill |
| Fuel Type | Cases | SYLVA POD | Operational POD | Improvement |
|---|---|---|---|---|
| Pinus halepensis | 68 | 0.86 | 0.71 | +15% |
| Quercus ilex | 42 | 0.81 | 0.67 | +14% |
| Mediterranean maquis | 53 | 0.84 | 0.69 | +15% |
| Dry grassland | 24 | 0.79 | 0.57 | +22% |
- 213 wildfire episodes across Greece, Italy, Spain, Portugal, France
- 2,842 field fuel moisture samples from operational networks
- 24-year temporal span (2000-2024) capturing multiple fire regimes
- 5-country geographic diversity ensuring Mediterranean-wide applicability
- Python: 3.8 or higher
- Core Dependencies: NumPy β₯1.19, SciPy β₯1.5, Pandas β₯1.1
- Visualization: Matplotlib β₯3.3
- Machine Learning: Scikit-learn β₯0.23
pip install sylva-firegit clone https://gitlab.com/gitdeeper2/sylva.git
cd sylva
pip install -e .docker pull sylvafire/sylva:2.5.5
docker run -p 8080:8080 sylvafire/sylva:2.5.5python -c "import sylva_fire; print(sylva_fire.__version__)"
# Expected output: 2.5.5from sylva_fire import DailyReportGenerator
# Initialize the report generator
generator = DailyReportGenerator()
# Define parameters for your fire scenario
fire_params = {
"region": "Attica, Greece",
"wui_distance": 1.5, # km to Wildland-Urban Interface
"parameters": {
"lfm": 68, # Live Fuel Moisture (%)
"dfm": 5.1, # Dead Fuel Moisture (%)
"cbd": 0.14, # Canopy Bulk Density (kg/mΒ³)
"wind_speed": 10.4, # Wind Speed (m/s)
"vpd": 46.7, # Vapor Pressure Deficit (hPa)
"drought_code": 487, # Canadian DC index
"slope": 5 # Terrain slope (degrees)
}
}
# Generate comprehensive operational intelligence
report = generator.generate_complete_report(fire_params)
# Display critical information
print(f"π΄ Risk Level: {report['summary']['risk']['level']}")
print(f"π Risk Score: {report['summary']['risk']['score']}/100")
print(f"π Max Spread: {report['operational_intelligence']['spread_projection']['max_distance_km']} km in 90 min")
print(f"β±οΈ WUI Arrival: {report['operational_intelligence']['spread_projection']['wui_arrival']['minutes']} minutes")
print(f"π¨ Evacuation: {report['operational_intelligence']['wui_assessment']['evacuation_decision']}")Expected Output:
π΄ Risk Level: VERY HIGH
π Risk Score: 72/100
π Max Spread: 4.3 km in 90 min
β±οΈ WUI Arrival: 31 minutes
π¨ Evacuation: PREPARE FOR EVACUATION
Generate a formatted operational dashboard for command centers:
# Generate daily report
python scripts/generate_daily_report.py
# Create dashboard visualization
python reports/sylva_operational_dashboard.py
# View the dashboard
cat reports/daily/*_DASHBOARD.txtDashboard Output Preview:
π₯ SYLVA OPERATIONAL DASHBOARD π΄ VERY HIGH RISK
ββββββββββββββββββββββββββββββββββββββββββββββββ
RISK LEVEL: π΄ VERY HIGH (Score: 72/100)
WUI ARRIVAL: 31 minutes - π PREPARE FOR EVACUATION
SPREAD: 4.3km in 90min (Dry Grassland)
CONTAINMENT: π΄ VERY DIFFICULT (Success: 30%)
CROWN FIRE: π΄ 95% potential - VERY HIGH
π― PRIMARY RISK DRIVERS
ββββββββββββββββββββββββββββββββββββββββββββββββ
1. Wind Speed: 87% ββββββββββββββββββββ
2. Dead Fuel: 83% ββββββββββββββββββββ
3. VPD: 80% ββββββββββββββββββββ
from sylva_fire import RapidSpreadPredictor, RiskScorer
# Initialize predictor
predictor = RapidSpreadPredictor()
# Define parameters
params = {
'lfm': 68, 'dfm': 5.1, 'cbd': 0.14,
'wind_speed': 10.4, 'vpd': 46.7,
'drought_code': 487, 'aspect': 225
}
# Get probability of rapid spread
probability = predictor.predict_probability(params)
print(f"Rapid Spread Probability: {probability:.2%}")
# Calculate quantitative risk score
scorer = RiskScorer()
risk_score = scorer.calculate_risk(params)
print(f"Risk Score: {risk_score}/100")| Parameter | Symbol | Critical Threshold | Measurement Source |
|---|---|---|---|
| Live Fuel Moisture | LFM | <85% | Sentinel-2 NDWI / Field sampling |
| Dead Fuel Moisture | DFM | <8% | FFMC conversion / Field sampling |
| Canopy Bulk Density | CBD | >0.20 kg/mΒ³ | Forest inventory / LiDAR |
| Surface Fuel Load | SFL | 15-80 t/ha | Fuel transects / Models |
| Fuel Bed Depth | FBD | 0.3-4.0 m | Field surveys / Models |
| Wind Speed | Vw | >8 m/s | Weather stations (10m height) |
| Vapor Pressure Deficit | VPD | >25 hPa | Calculated from T & RH |
| Terrain Aspect | Ξ± | SW-W (225Β°) | Digital elevation models |
| Drought Code | DC | >400 | Canadian FFWS archives |
Rapid Spread Index (RSI)
RSI = Ξ£(Ξ±α΅’ Γ Pα΅’_normalized)
Where Ξ±α΅’ are calibrated weights and Pα΅’ are normalized parameter values.
Probability Calibration
P(Rapid Spread) = 1 / (1 + exp(-(Ξ²β + Ξ²βΒ·RSI + Ξ²βΒ·RSIΒ² + Ξ²βΒ·C)))
Logistic regression with quadratic term and fuel-type covariate.
Quantitative Risk Score
Risk Score = DFM(0-25) + Wind(0-25) + VPD(0-15) + DC(0-15) + Crown(0-10) + Containment(0-10)
Scale: 0-100 with operationally validated thresholds.
Threat Zone Modeling
Area = (Ο Γ Length Γ Width) / 4
Width = Length Γ 0.25
Elliptical fire growth model based on wind-driven spread patterns.
SYLVA integrates three foundational fire behavior models:
- Rothermel (1972): Surface fire spread rate equations
- Byram (1959): Fireline intensity formulation
- Van Wagner (1977): Crown fire initiation criteria
| Risk Score | Level | Color | Evacuation Action | IMT Type |
|---|---|---|---|---|
| 80-100 | EXTREME | β« | IMMEDIATE EVACUATION | Type 1 |
| 65-79 | VERY HIGH | π΄ | PREPARE FOR EVACUATION | Type 1 |
| 50-64 | HIGH | π | EVACUATION WARNING | Type 2 |
| 35-49 | MODERATE | π‘ | MONITOR CLOSELY | Type 3 |
| 0-34 | LOW | π’ | ROUTINE OPERATIONS | Type 4/5 |
π Getting Started Guide - Installation and first steps
ποΈ Operational Dashboard Manual - Command center usage
π Parameter Definitions - Detailed parameter explanations
β Validation Methodology - Scientific validation approach
π Case Studies - Mati 2018, PedrΓ³gΓ£o 2017
π§ API Reference - Python API documentation
β FAQ & Troubleshooting - Common questions
sylva/
βββ sylva_fire/ # Core Python package
β βββ core/ # Fire behavior models (Rothermel, Byram, Van Wagner)
β βββ parameters/ # Nine-parameter calculation modules
β βββ integration/ # RSI and probability calibration
β βββ forecasting/ # Rapid spread prediction engine
β βββ operational/ # Containment, WUI, resource estimation
β βββ utils/ # Constants, coefficients, helpers
β
βββ reports/ # Operational reporting system
β βββ daily/ # Generated daily briefings
β βββ sylva_operational_dashboard.py # Dashboard generator
β
βββ scripts/ # Execution scripts
β βββ generate_daily_report.py # Main report generator
β
βββ data/ # Fuel models & validation datasets
βββ examples/ # Tutorial notebooks and scripts
βββ tests/ # Unit and integration tests
βββ docs/ # Sphinx documentation source
βββ docker/ # Container deployment configs
If you use SYLVA in research or publications, please cite:
@software{baladi2026sylva,
author = {Baladi, Samir},
title = {{SYLVA: Operational Intelligence System for
Mediterranean Wildfire Rapid Spread Forecasting}},
year = 2026,
version = {2.5.5},
publisher = {Zenodo},
doi = {10.5281/zenodo.18627186},
url = {https://doi.org/10.5281/zenodo.18627186}
}This project is preregistered on the Open Science Framework:
- OSF Project: https://osf.io/vd9ue
- Registration DOI: 10.17605/OSF.IO/Q9XWJ
Baladi, S. (2026). SYLVA: A Thermodynamic-Fuel Continuum Framework for Wildfire Spread Rate Estimation in Mediterranean Forest Systems. Available at: https://doi.org/10.5281/zenodo.18627186
Completed Features:
- β Operational dashboard with command-center interface
- β Quantitative risk scoring (0-100 scale, validated)
- β WUI evacuation timing (Β±2 minute accuracy)
- β Elliptical threat zone modeling
- β Resource requirement estimation
- β 213 wildfire validation complete
- β PyPI package release
- β Docker containerization
- β Comprehensive documentation
Planned Enhancements:
- LSTM-based forecasting for wind & VPD (1-3 hour lead time)
- Ensemble probability calibration (50-member ensembles)
- Real-time data assimilation from weather networks
- Automated what-if scenario analysis
- Mobile command center integration (iOS/Android)
- RESTful API for third-party integration
Strategic Goals:
- Mediterranean basin standardization across all countries
- Climate change adaptation modeling (RCP4.5/RCP8.5 scenarios)
- Global expansion: California, Australia, South Africa fuel types
- Integration with satellite-based early detection systems
- Machine learning enhancement with deep learning architectures
We welcome contributions from the fire science and software development communities!
- Fork the repository on GitLab
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes with clear, documented code
- Write tests for new functionality
- Commit your changes:
git commit -m 'Add comprehensive feature description' - Push to your branch:
git push origin feature/your-feature-name - Open a Merge Request with detailed description
- π Bug reports and fixes
- π Documentation improvements
- π§ͺ Additional validation case studies
- π Fuel type adaptations for new regions
- π¬ Scientific methodology enhancements
- π» Code optimization and refactoring
- π¨ Dashboard and visualization improvements
This project adheres to a Code of Conduct adapted from the Contributor Covenant. By participating, you agree to uphold professional and respectful interactions.
- Mediterranean Civil Protection Agencies - Operational testing and validation (v2.0-v2.5)
- European Forest Fire Information System (EFFIS) - Historical fire database access
- Canadian Forest Service - CFFDRS integration and methodology support
- European Space Agency - Sentinel-2 satellite imagery provision
- National weather services - Meteorological data from Greece, Italy, Spain, Portugal, France
Scientific Advisory
- Maria Papadopoulou - Mediterranean Civil Protection Agencies
- Francesca Romano - European Forest Fire Information System (EFFIS)
Technical Development
- Konstantinos Dimitriou - Canadian Forest Service integration
- Miguel Ferreira Oliveira - Portuguese validation and testing
- Giuseppe Lombardi - Italian operational deployment
Special Thanks
To the firefighters and emergency managers across the Mediterranean who provided invaluable operational feedback, field validation, and real-world testing that shaped SYLVA into a practical, life-saving tool.
SYLVA v2.5.5 is a decision support tool, not a decision replacement. While validated against 213 historical wildfires, it should be used as one component of comprehensive situational awareness by qualified emergency managers and firefighters.
Users must understand these inherent limitations:
- Fuel bed continuity: Assumes homogeneous fuel distribution; does not model fuel breaks or discontinuities
- Suppression effects: Predictions are for free-burning fire behavior; does not account for firefighting activities
- Spotting dynamics: No stochastic modeling of long-range ember transport
- Wind assumptions: Based on 10-minute averages; sudden gusts may not be captured
- Moisture equilibrium: Fuel moisture calculations assume equilibrium conditions; rapid changes may lag
Emergency managers and firefighters must use all available informationβincluding but not limited to SYLVA predictionsβwhen making decisions regarding public safety, resource allocation, and evacuation orders.
This project is licensed under the Creative Commons Attribution 4.0 International License (CC-BY 4.0).
You are free to:
- β Share β copy and redistribute the material in any medium or format
- β Adapt β remix, transform, and build upon the material for any purpose, even commercially
Under the following terms:
- π Attribution β You must give appropriate credit, provide a link to the license, and indicate if changes were made
Full license text: https://creativecommons.org/licenses/by/4.0/
| Resource | Link |
|---|---|
| π Documentation | https://sylva-fire.netlify.app/documentation |
| π₯οΈ Live Dashboard Demo | https://sylva-fire.netlify.app/dashboard.html |
| π¦ PyPI Package | https://pypi.org/project/sylva-fire/2.5.5/ |
| π¦ GitLab Repository | https://gitlab.com/gitdeeper2/sylva |
| π GitLab Wiki | https://gitlab.com/gitdeeper2/sylva/-/wikis/home |
| π GitHub Mirror | https://github.com/gitdeeper3/sylva |
| πͺ£ Bitbucket Mirror | https://bitbucket.org/gitdeeper3/sylva |
| π² Codeberg Mirror | https://codeberg.org/gitdeeper2/sylva |
| π Zenodo DOI | https://doi.org/10.5281/zenodo.18627186 |
| π OSF Preregistration | https://osf.io/vd9ue |
Technical Support:
- π Check the Documentation
- β Review FAQ & Troubleshooting
- π Search GitLab Issues
- π§ Email: gitdeeper@gmail.com
Report Bugs:
- Open an issue on GitLab Issues
- Include Python version, operating system, and error messages
- Provide a minimal reproducible example when possible
Feature Requests:
- Submit enhancement proposals via GitLab Issues
- Tag with
enhancementlabel - Describe use case and expected behavior
Samir Baladi
Interdisciplinary AI Researcher | Scientific Software Developer
- π¬ ORCID: 0009-0003-8903-0029
- π§ Email: gitdeeper@gmail.com
- π¦ GitLab: @gitdeeper2
- π Research Interests: Applied AI/ML in geosciences, computational meteorology, operational fire behavior systems, climate adaptation
π
Production Release: February 13, 2026
π DOI: 10.5281/zenodo.18627186
π OSF: 10.17605/OSF.IO/Q9XWJ
Advancing operational rapid fire spread forecasting to save lives and property
Made with π₯ for Mediterranean firefighters and emergency managers