Agricultural dry spell prediction model — 4th place out of 132 teams, IndabaX Sudan Hackathon 2025
# Agricultural Dry Spell Prediction — IndabaX Sudan 2025
**🏆 4th place out of 132 teams — IndabaX Sudan Hackathon, December 2025**
---
## The Problem
Smallholder farmers in Sudan depend on rainfall patterns that are becoming increasingly unpredictable. A dry spell — 7 or more consecutive days without meaningful rainfall — during a critical crop growth period can destroy an entire harvest. Farmers currently have no reliable, accessible tool to anticipate these events in advance.
This project builds a machine learning model that predicts whether a 7-day dry spell will occur, given daily climate measurements. The goal: give farmers (or agricultural advisory services) a data-driven early warning signal.
---
## What I Built
A binary classification pipeline that predicts `dryspell_warn_7d` — a flag indicating an upcoming dry spell — for each day in the test period (July–October 2020–2025), trained on historical climate data from 2002–2019.
### Feature Engineering
The model uses 9 core climate variables merged from separate daily CSV sources:
| Feature | Description |
|---|---|
| `5cm_soil_moisture` | Soil moisture at 5cm depth (CFS reanalysis) |
| `potential_water_deficit` | Sudd region water deficit |
| `vapor_pressure_deficit` | Atmospheric dryness indicator |
| `u10_mean` | 10m wind speed (zonal component) |
| `2m_temp` | 2-metre air temperature (ERA5) |
| `max_temp` | Maximum surface temperature (ERA5) |
| `mean_dew_point_temp` | Dew point temperature |
| `sea_level_pressure` | ERA5 sea level pressure |
| `surface_pressure` | ERA5 surface pressure |
In addition to the raw features, I engineered:
- **Rolling means** at 7-day and 14-day windows for all 9 variables (captures medium-term trends)
- **Lag features** at 1, 3, and 7 days for all 9 variables (captures recent trajectory)
- **Calendar features**: month, day-of-year, ISO week, season, weekend flag — all encoded with sine/cosine transforms to capture cyclical patterns without ordinal bias
- **SST feat …