Bengaluru, 2015–2030 — ConvLSTM and CNN-LSTM models trained on multitemporal Sentinel-2 and Landsat imagery to forecast land-cover evolution through 2030, with classical CA-Markov and Random Forest baselines for comparison.
📊 Read the full project report → — results, figures, methodology, and limitations. 📑 Also available as
REPORT.docx(Word) andREPORT.pptx(presentation deck).
Between 2015 and 2030, U-Net + ConvLSTM forecasts that built-up area in the Bengaluru AOI grows from 53.0% to 72.8% (+19.8 pp), with dense vegetation declining from 35.4% to 18.3% (−17.0 pp). Total green cover is forecast to fall from 44.0% to 24.0% — nearly half of the city's existing green cover lost in 15 years.
- Shivek Ranjan (IMT2023042)
- Navish Malik (IMT2023060)
- Digvijaysinh Pawar (IMT2023099)
.
├── configs/ # YAML configs for data, models, training
├── data/
│ ├── aoi/ # Bengaluru AOI shapefile/GeoJSON
│ ├── raw/ # GEE exports (untouched)
│ ├── interim/ # Cloud-masked, composited rasters
│ └── processed/ # Tiled, normalized tensors ready for training
├── notebooks/ # Exploration, GEE prep, results visualization
├── scripts/ # Entry-point CLIs (gee_export, preprocess, train, evaluate, predict)
├── src/
│ ├── data/ # Dataset, transforms, tiling
│ ├── models/ # ConvLSTM, CNN-LSTM, U-Net + ConvLSTM, baselines
│ ├── training/ # Trainer, losses
│ ├── evaluation/ # Metrics (IoU, F1, Kappa, Fuzzy Kappa, LEI), back-testing
│ ├── visualization/ # Maps, animations, change trajectories
│ └── utils/ # Config loading, logging, geo helpers
├── outputs/
│ ├── checkpoints/
│ ├── predictions/
│ └── figures/
└── tests/
# Create a Python 3.10+ virtual environment
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/Mac
pip install -r requirements.txtearthengine authenticateYou need a Google account with GEE access (https://earthengine.google.com/signup).
Place a Bengaluru boundary GeoJSON at data/aoi/bengaluru.geojson (BBMP / Greater Bengaluru), then:
python scripts/gee_export_sentinel2.py --years 2015 2025 --out data/raw/s2
python scripts/gee_export_landsat.py --years 2015 2025 --out data/raw/landsatExports go to your Google Drive — sync them back into data/raw/.
python scripts/preprocess.py --config configs/data.yamlThis produces tiled .npy patches in data/processed/ with one file per (tile, year) pair.
# Local quick-check (tiny patches, batch size 1) — your GTX 1650 can handle it
python scripts/train.py --config configs/model_convlstm.yaml --device cuda --debug
# Full training on Colab/Kaggle (T4 16GB)
python scripts/train.py --config configs/model_convlstm.yaml --device cudapython scripts/predict_future.py \
--checkpoint outputs/checkpoints/convlstm_best.pt \
--years 2026 2027 2028 2029 2030 \
--out outputs/predictions/python scripts/evaluate.py --checkpoint outputs/checkpoints/convlstm_best.pt| Stage | Recommended environment |
|---|---|
| GEE export, preprocessing | Local PC (Ryzen 5, 16GB RAM) |
| Exploratory training, debug | Local PC (GTX 1650, batch=1, patch=64×64) |
| Full training, hyperparam tune | Google Colab Pro / Kaggle (T4 16GB / P100) |
| Evaluation, visualization | Local PC |
Why hybrid? ConvLSTM with 5-band input × 10 timesteps × 256×256 patches blows past 4GB VRAM at any reasonable batch size. The free T4 on Colab gives you 4× the VRAM and a 2× faster GPU at zero cost.
ROADMAP.md— phased timeline with milestonesconfigs/— all hyperparameters and pathsDeep Learning Land Use Prediction (2).pdf— original project proposal
