← Back to Projects
GeoShift-Change-Detection hero cover

GeoShift-Change-Detection

Deep learning + spectral analysis system for detecting land-use changes using before/after satellite imagery. Highlights deforestation, construction, new roads, and river shrinkage using geospatial ML.

Satellite-Based Before vs After Change Detection using Geospatial ML

Status Tech License

Overview

GeoShift is an MVP system that detects and visualizes landscape changes using multi-temporal satellite imagery. By comparing “Before vs After” scenes, the system automatically highlights areas that have undergone transformations such as:

✔ Deforestation ✔ New constructions & roads ✔ Water body shrinkage ✔ Urban expansion ✔ Agricultural land-use shift

The project demonstrates remote sensing + machine learning + temporal analysis, making it suitable for environmental monitoring & geospatial AI portfolios.

📚 Read the full story on Medium


Streamlit App Demo

Below is the visual interface of the GeoShift app detecting landscape changes using uploaded satellite images:

GeoShift Streamlit UI - Home
Home Screen — Upload Before/After imagery

GeoShift Streamlit Change Heatmap Before After Comparison


Key Features

ModuleCapability
Data AcquisitionUpload "Before" and "After" GeoTIFF images
Pre-processingBasic raster alignment (reprojection)
Change Detection EngineSpectral Change Detection (NDVI Differencing)
Visualization LayerDifference Heatmaps + Change Masks + Side-by-Side Comparison
Output Metrics% Area Changed, GeoTIFF Mask Export

YouTube YouTube Series: Building GeoShift

This repository is accompanied by a YouTube Shorts series titled “Building GeoShift: Geospatial ML Project.”

The objective of the series is to document and explain the complete journey of the GeoShift project in a simple and practical way — covering:

  1. What GeoShift is and the problem it solves
  2. Why automated land-change detection is important
  3. How satellite imagery and machine learning are used
  4. Technical decisions behind the MVP
  5. Real-world use cases and future possibilities

The series is designed to break down complex geospatial and AI concepts into short, easy-to-understand 30-second episodes.

YouTube Playlist

YouTube Channel

📅 New episodes are uploaded every Monday.

Follow along to see how GeoShift evolves from idea to implementation!


Spectral Change Detection (MVP baseline)

  • Compute NDVI/NDWI/NBR for both timestamps
  • Generate difference raster: delta = im_after - im_before
  • Threshold differences to create change mask
  • Overlay mask on original scene for visualization

Tech Stack

CategoryTools
LanguagePython
Geospatial ProcessingRasterio, NumPy
ML / CVOpenCV, Matplotlib
Data SourceUser Upload / Synthetic Mock Data
VisualizationStreamlit
DeploymentLocal Streamlit Server

Project Structure

GeoShift-Change-Detection/
│── data/               # input imagery + output masks
│── src/
│   ├── preprocessor.py       # image alignment + band extraction
│   ├── differencer.py        # NDVI change computation
│   ├── generate_mock_data.py # synthetic data generator
│   ├── debug_ndvi.py         # debug script for NDVI values
│   ├── test_differencer.py   # unit tests for differencer
│── results/            # heatmaps, overlays, reports
│── app.py              # Streamlit frontend
│── requirements.txt    # dependencies
│── README.md

How to Run

# 1. Clone the repository
git clone https://github.com/SukritiC/GeoShift-Change-Detection.git
cd GeoShift-Change-Detection

# 2. Install dependencies
pip install -r requirements.txt

# 3. Generate mock data (Optional, for testing)
python src/generate_mock_data.py

# 4. Run the application
streamlit run app.py

License

This documentation and conceptual content are distributed under the Apache License. See the LICENSE file for more information.