EY AI & Data Challenge 2026 - Predicting water quality parameters for South African rivers using ML
# EY AI & Data Challenge 2026 — Water Quality Prediction
Predicting water quality in South African rivers using Landsat satellite imagery and TerraClimate climate data.
**Final score: 0.313 R²** | Baseline: 0.20 | Certificate threshold: 0.40 | Leaderboard top: 0.8529
---
## The Problem
Predict three water quality parameters at river monitoring sites:
| Parameter | Unit | Healthy Range |
|---|---|---|
| Total Alkalinity | mg/L | 20–200 |
| Electrical Conductance | µS/cm | **Note:** EY-provided datasets (water quality labels, pre-extracted Landsat and TerraClimate features, submission template) are excluded from this repository per the competition Terms & Conditions. To reproduce results, register for the challenge and download from the EY Challenge portal.
---
## Project Structure
```
├── data/
│ ├── terraclimate_training_multi.csv # Self-extracted climate variables (ppt, soil, def, tmax, q)
│ ├── terraclimate_validation_multi.csv # Self-extracted climate variables for validation
│ ├── water_quality_training_dataset.csv # ⛔ Not included (EY confidential)
│ ├── landsat_features_training.csv # ⛔ Not included (EY confidential)
│ ├── landsat_features_validation.csv # ⛔ Not included (EY confidential)
│ ├── terraclimate_features_training.csv # ⛔ Not included (EY confidential)
│ └── terraclimate_features_validation.csv# ⛔ Not included (EY confidential)
├── submissions/
│ ├── submission_final.csv # Best predictions (v8 — 0.313 R²)
│ └── submission_template.csv # ⛔ Not included (EY confidential)
├── .gitignore
├── extract_terraclimate.py # TerraClimate API extraction script
├── ey_water_quality_model.py # Final prediction model
├── README.md
└── requirements.txt
```
---
## Usage
```bash
# Install dependencies
pip install -r requirements.txt
# Run the prediction model (requires EY datasets in data/ folder)
python ey_water_quality_model.py
# (Optional) Re-extract TerraCl …