Skip to content

SaeidTaleghani/Water-Change-Detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛰️ Lake Urmia Water Monitoring System

Lake Urmia Water Monitoring

A comprehensive remote sensing pipeline for monitoring water surface changes in Lake Urmia (Iran) using Sentinel-2 satellite imagery and Normalized Difference Water Index (NDWI) analysis.

📊 Overview

Lake Urmia, once the largest saltwater lake in the Middle East, has experienced catastrophic water loss since the 1990s. This project provides an automated Python pipeline to:

  • Analyze water surface area changes from 2019-2025
  • Detect water bodies using NDWI thresholding
  • Visualize spatiotemporal changes through animated GIFs
  • Generate comprehensive water loss reports
  • Create professional comparison plots

🎯 Key Features

  • Automated Analysis: Complete pipeline from raw data to insights
  • Multi-Year Comparison: 2019-2025 annual water area analysis
  • Professional Visualizations: RGB/NDWI side-by-side comparison plots
  • Animated Timeline: GIF animations showing year-to-year changes
  • Scientific Reports: Detailed water loss statistics and trends
  • Geospatial Accuracy: Proper coordinate handling with degree formatting

📈 Results Summary (2019-2025)

Year Water Area (km²) Change from Previous Year
2019 4,205.92 km² -
2020 4,101.80 km² -104.12 km² (-2.5%)
2021 3,206.36 km² -895.44 km² (-21.8%)
2022 1,980.23 km² -1,226.13 km² (-38.2%)
2023 808.56 km² -1,171.67 km² (-59.2%)
2024 2,200.56 km² +1,392.00 km² (+172.1%)
2025 497.77 km² -1,702.79 km² (-77.4%)

Total Water Loss (2019-2025): 3,708.15 km² (88.2% reduction)

📸 Visual Outputs

1. Water Trend Analysis (Output/water_area_trend.png)

Water Trend Line chart showing dramatic water loss from 2019-2025 with annual area labels

Technical Implementation

Data Acquisition

  • Satellite: Sentinel-2 Level-2A (10m resolution)
  • Bands: RGB (visualization) + NDWI calculation
  • Processing: Google Earth Engine for cloud-free annual composites
  • Time Period: 2019-2025 (June-September annual averages)

Methodology

  1. NDWI Calculation: NDWI = (Green - NIR) / (Green + NIR)
  • Green: Band 3 (560nm)
  • NIR: Band 8 (842nm)
  1. Water Classification:
  • Threshold: NDWI > 0.2 (empirically determined)
  • Pixel size: 10m × 10m = 100 m² per pixel
  • Area calculation: Water Area (km²) = (Water Pixels × 100) / 1,000,000
  1. Visualization:
  • Side-by-side RGB/NDWI comparison
  • Proper georeferencing with latitude/longitude coordinates
  • Consistent color scales across years
  • Animated GIF creation

🚀 Quick Start

Prerequisites

Before starting, ensure you have:

  • Python 3.8 or higher installed
  • Google Earth Engine account (free for research/educational use)
  • Git installed on your system
  • 10+ GB free disk space for satellite imagery

Step 1: Clone the Repository

git clone https://github.com/SaeidTaleghani/Water-Change-Detection.git
cd Water-Change-Detection

Step 2: Set Up Python Environment

# Create a virtual environment
python -m venv venv

# Activate the virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Install required packages
pip install -r requirements.txt

Step 3: Download Satellite Data

Using Google Earth Engine:

  1. Sign up for a free Google Earth Engine account
    Visit earthengine.google.com/signup and create an account (free for research and educational purposes).

  2. Open the Google Earth Engine Code Editor
    Go to code.earthengine.google.com and sign in with your Google account.

  3. Copy and paste the download script

    • Open the gee_download_S2.js file from this repository
    • Copy the entire contents of the file
    • Paste it into the Google Earth Engine Code Editor
  4. Click Run to execute the script
    Click the Run button (▶️) in the Code Editor toolbar to execute the script.

  5. Go to the Tasks tab and run export tasks

    • Navigate to the Tasks tab in the right panel
    • You'll see export tasks for each year (2019-2025)
    • Click Run next to each task to start the exports
    • ⚠️ Note: This may take 10-30 minutes for all tasks
  6. Download the exported GeoTIFF files from your Google Drive

    • Open Google Drive
    • find the exported GeoTIFF files
    • Download all files to your computer
  7. Create an Images/ folder in the project directory

    # In your project folder
    mkdir Images
  8. Place downloaded files in the Images/ folder

Step 4: Run the Analysis

run

python map_water_change.py

Step 5: View Results

After running the script, check the Output/ folder

About

Remote sensing analysis of Lake Urmia's water loss using Sentinel-2 and NDWI

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors