IndabaX DRC 2025 Workshop
A comprehensive workshop series designed to take you from machine learning fundamentals to deploying AI-powered disaster response systems using Sentinel-1 & 2 satellite imagery.
This repository offers a two-step learning path:
- Foundations: An introduction to deep learning using the PyTorch framework and the FashionMNIST dataset.
- Application: A deep dive into building a 95%+ accurate flood detection system using multi-modal satellite data and ensemble learning.
- Python 3.8+
- NVIDIA GPU (Recommended)
- 15GB+ Free Disk Space
-
Clone the repository:
git clone [https://github.com/ganji759/Flood-Prediction-Using-Machine-Learning.git](https://github.com/ganji759/Flood-Prediction-Using-Machine-Learning.git) cd Flood-Prediction-Using-Machine-Learning -
Create environment:
python -m venv flood_env source flood_env/bin/activate # Windows: flood_env\Scripts\activate
-
Install dependencies:
# Install PyTorch (CUDA 11.8) pip install torch torchvision torchaudio --index-url [https://download.pytorch.org/whl/cu118](https://download.pytorch.org/whl/cu118) # Install workshop libraries pip install pytorch-lightning transformers kagglehub rasterio opencv-python pandas matplotlib seaborn scikit-learn xgboost thop
-
Configure Data Access:
- Download
kaggle.jsonfrom your Kaggle Account Settings. - Place it in
~/.kaggle/kaggle.json(Linux/Mac) orC:\Users\<User>\.kaggle\(Windows).
- Download
Run jupyter notebook and select the file matching your goal:
| Notebook File | Focus | Description |
|---|---|---|
Workshop Session 1.ipynb |
Foundations | Start Here. Based on official PyTorch tutorials. Introduces ML concepts, tensor operations, and image classification using the FashionMNIST dataset. |
Workshop DAY 1.ipynb |
Application | Deep Dive. Focuses on disaster risk monitoring. Covers processing Sentinel-1 (SAR) & Sentinel-2 (Optical) data, training ensembles (ResNet, EfficientNet), and evaluating the SEN12FLOOD dataset. |
In Workshop DAY 1.ipynb, we develop a robust classifier using the following techniques:
- Dataset: SEN12FLOOD (~10,000 satellite chips).
- Preprocessing: Speckle noise filtering (SAR), CLAHE, and Percentile stretching.
- Models: ResNet-50, DenseNet-121, EfficientNet-B0, Vision Transformer (ViT).
- Ensembling: Stacking (Logistic Regression meta-learner), Hard Voting, and Soft Voting.
- Performance: Achieved 95.6% accuracy (Stacking Ensemble).
- PyTorch - Official documentation and tutorials.
- Copernicus Open Data Hub - Access point for Sentinel satellite data.
- Kaggle SEN12FLOOD - Flood detection dataset (SAR + Optical).
- FashionMNIST - Benchmarking dataset used in the intro session.
- ESA Sentinel-1 Mission - Synthetic Aperture Radar (SAR) imagery specifics.
- ESA Sentinel-2 Mission - Optical multispectral imagery specifics.
- Deep Residual Learning for Image Recognition (ResNet)
- SEN12FLOOD: A SAR and Multispectral Dataset for Flood Detection
- EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
This project is licensed under the MIT License.
Happy Learning! 🚀