Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ›ฐ๏ธ GeoVision

Advanced Geospatial Feature Detection from Satellite Imagery

A comprehensive AI/ML solution for automated detection and analysis of glacial lakes, road networks, and drainage systems from multi-source satellite imagery using state-of-the-art deep learning techniques.

๐ŸŽฏ Overview

GeoVision provides an end-to-end pipeline for automated geospatial feature detection from satellite imagery:

  • ๐Ÿ”๏ธ Glacial Lakes: Detection and temporal change analysis
  • ๐Ÿ›ฃ๏ธ Road Networks: Centerline extraction and connectivity analysis
  • ๐ŸŒŠ Drainage Systems: Flow modeling and network extraction

โœจ Key Features

  • ๐Ÿ›ฐ๏ธ Multi-source Data Support: Sentinel-1/2, Landsat, Resourcesat, LISS
  • ๐Ÿง  Advanced AI Models: U-Net, DeepLabV3+, Hybrid CNN-DEM architectures
  • โฑ๏ธ Temporal Analysis: Multi-date change detection
  • ๐ŸŽ›๏ธ Interactive Dashboard: Real-time processing interface
  • ๐Ÿ“Š Vector Export: GeoJSON, Shapefile, CSV formats
  • ๐Ÿš€ Production Ready: Scalable architecture with comprehensive testing

๐Ÿ—๏ธ Architecture

geovision/
โ”œโ”€โ”€ data/                    # Data storage
โ”‚   โ”œโ”€โ”€ raw/                # Raw satellite imagery
โ”‚   โ”œโ”€โ”€ processed/          # Preprocessed data
โ”‚   โ”œโ”€โ”€ reference/          # Ground truth data
โ”‚   โ””โ”€โ”€ outputs/            # Model outputs
โ”œโ”€โ”€ models/                 # Trained models
โ”‚   โ”œโ”€โ”€ glacial_lakes/
โ”‚   โ”œโ”€โ”€ road_centerlines/
โ”‚   โ””โ”€โ”€ drainage_networks/
โ”œโ”€โ”€ src/                    # Source code
โ”‚   โ”œโ”€โ”€ preprocessing/      # Data preprocessing
โ”‚   โ”œโ”€โ”€ training/          # Model training
โ”‚   โ”œโ”€โ”€ inference/         # Feature detection
โ”‚   โ”œโ”€โ”€ postprocessing/    # Post-processing utilities
โ”‚   โ””โ”€โ”€ utils/             # Utility functions
โ”œโ”€โ”€ streamlit_app/         # Interactive dashboard
โ”œโ”€โ”€ notebooks/             # Jupyter notebooks
โ”œโ”€โ”€ tests/                 # Unit tests
โ””โ”€โ”€ configs/               # Configuration files

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.8+
  • CUDA-capable GPU (recommended)
  • 16GB+ RAM
  • GDAL/OGR libraries

Installation

  1. Clone the repository
git clone https://github.com/username/geovision.git
cd geovision
  1. Install dependencies
pip install -r requirements.txt
  1. Set up GDAL (if not already installed)
# Ubuntu/Debian
sudo apt-get install gdal-bin libgdal-dev

# Windows (using conda)
conda install -c conda-forge gdal

# macOS
brew install gdal
  1. Configure the project
cp configs/development.yaml config.yaml
# Edit config.yaml with your specific settings

๐ŸŽฎ Usage

1. Data Preprocessing

python src/main.py --mode preprocess --input-dir data/raw --output-dir data/processed

2. Model Training

# Train all models
python src/main.py --mode train --feature all --input-dir data/processed --output-dir models

# Train specific feature
python src/main.py --mode train --feature glacial_lakes --input-dir data/processed --output-dir models

3. Feature Detection

python src/main.py --mode inference --feature all --input-dir data/raw --output-dir data/outputs

4. Launch Dashboard

streamlit run streamlit_app/app.py

๐Ÿ“Š Dashboard Features

The Streamlit dashboard provides:

  • ๐Ÿ—บ๏ธ Interactive Map: Visualize detection results with multiple layers
  • ๐Ÿ“ˆ Temporal Analysis: Track changes over time
  • ๐ŸŽฏ Model Training: Configure and monitor training
  • ๐Ÿ“ Data Explorer: Browse and analyze datasets
  • โฌ‡๏ธ Export Tools: Download results in various formats

Dashboard Screenshots

[Screenshots would be added here in a real project]

๐Ÿ”ฌ Model Details

Glacial Lakes Detection

  • Architecture: DeepLabV3+ with ResNet50 backbone
  • Input: RGB + temporal data
  • Output: Binary segmentation masks
  • Post-processing: Morphological operations, area filtering

Road Centerlines Extraction

  • Architecture: U-Net with EfficientNet-B4 backbone
  • Input: RGB imagery
  • Output: Binary road masks
  • Post-processing: Skeletonization, graph extraction

Drainage Networks

  • Architecture: Hybrid CNN-DEM model
  • Input: RGB + DEM data
  • Output: Drainage network masks
  • Post-processing: Flow modeling, network connectivity

๐Ÿ“ˆ Performance Metrics

Feature Type Precision Recall F1-Score IoU
Glacial Lakes 0.89 0.85 0.87 0.77
Road Centerlines 0.82 0.78 0.80 0.67
Drainage Networks 0.75 0.71 0.73 0.58

Note: Metrics are examples and would be updated with actual results

๐Ÿงช Testing

Run the test suite:

# Run all tests
pytest tests/

# Run specific test module
pytest tests/test_preprocessing.py

# Run with coverage
pytest --cov=src tests/

๐Ÿ“š Documentation

๐Ÿ› ๏ธ Development

Setting up Development Environment

  1. Install development dependencies
pip install -r requirements-dev.txt
  1. Set up pre-commit hooks
pre-commit install
  1. Run code formatting
black src/ tests/
flake8 src/ tests/

Project Structure

# Key modules
from src.preprocessing.data_processor import DataProcessor
from src.training.model_trainer import ModelTrainer
from src.inference.feature_detector import FeatureDetector
from src.postprocessing.vectorization import convert_prediction_to_vector

๐ŸŒ Geographic Coverage

Primary Focus: Indian Himalayas

  • Coordinates: 26ยฐN to 37ยฐN, 72ยฐE to 97ยฐE
  • Coverage Area: ~2.5 million kmยฒ
  • Key Regions: Himachal Pradesh, Uttarakhand, Sikkim, Arunachal Pradesh

๐Ÿ“Š Data Sources

Satellite Imagery

  • Sentinel-1: SAR data for all-weather monitoring
  • Sentinel-2: High-resolution optical imagery
  • Landsat-8/9: Long-term temporal coverage
  • Resourcesat/LISS: Indian satellite data

Reference Datasets

  • NRSC-GL: National glacial lake inventory
  • GLIMS: Global Land Ice Measurements from Space
  • Hi-MAG: Himalayan glacier mapping
  • ICIMOD: International Centre for Integrated Mountain Development
  • OSM: OpenStreetMap for road networks

DEM Data

  • SRTM: Shuttle Radar Topography Mission
  • ASTER: Advanced Spaceborne Thermal Emission
  • CartoDEM: Indian national DEM

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please ensure your code follows our style guidelines and includes appropriate tests.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • ISRO and ESA for satellite data access
  • Open source community for the amazing tools and libraries
  • Research community for foundational papers and datasets
  • Contributors who help improve this project

๐Ÿ”— References

  1. NASA-IMPACT/veda-ai-supraglacial_segmentation
  2. avanetten/cresi - Road network extraction
  3. mdbartos/pysheds - Watershed analysis
  4. Segmentation Models PyTorch
  5. GDAL/OGR - Geospatial data processing

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages