Skip to content

tanisheesh/SolarSight

Repository files navigation

☀️ Solar Sight

Rooftop Solar Energy Potential Mapping via Satellite Imagery & Geospatial Intelligence

Python Streamlit Google Earth Engine License Status


A modular geospatial intelligence pipeline for high-precision assessment of rooftop solar energy viability — powered by Sentinel-2 multispectral imagery, MODIS thermal data, and building-level suitability scoring.


Overview

Solar Sight is a research-grade remote sensing system that quantifies rooftop photovoltaic potential at the building level across any geographic region. By fusing multi-resolution satellite observations from Google Earth Engine with OpenStreetMap building footprints and computer vision–based detection, the system produces ranked, actionable outputs that characterise solar installation viability for individual structures — without relying on field surveys or ground-truth instrumentation.

The pipeline operates at two levels of spatial granularity:

Mode Satellite Source Resolution Output
High-Precision Sentinel-2 MSI 10 m Per-building ranked suitability + energy forecast
Regional Survey MODIS MOD11A1 1 km Area-wide irradiance and cloud climatology maps

Research Motivation

Rapid rooftop solar deployment is constrained by the prohibitive cost of site-by-site physical assessments. Existing regional solar atlases operate at coarse resolution (≥1 km) and provide no actionable building-scale intelligence. Solar Sight bridges this gap by leveraging freely available multi-spectral satellite archives to deliver sub-10 m suitability intelligence at zero marginal survey cost, enabling urban planners, energy researchers, and municipal authorities to prioritise solar investments with quantitative rigour.

System Architecture

┌─────────────────────────────────────────────────────────────────┐
│                        Solar Sight Pipeline                      │
│                                                                  │
│  ┌──────────────┐    ┌──────────────┐    ┌──────────────────┐   │
│  │ Data         │    │ Data         │    │  Suitability     │   │
│  │ Extraction   │───▶│ Processing   │───▶│  Analysis        │   │
│  │              │    │              │    │                  │   │
│  │ GEE / S2     │    │ Irradiance   │    │  Weighted        │   │
│  │ GEE / MODIS  │    │ Cloud Cover  │    │  Scoring Engine  │   │
│  └──────────────┘    │ Solar Calc   │    └────────┬─────────┘   │
│                      └──────────────┘             │              │
│  ┌──────────────┐    ┌──────────────┐    ┌────────▼─────────┐   │
│  │ Output &     │    │ Validation   │    │  Building        │   │
│  │ Export       │◀───│ & Metrics    │◀───│  Detection       │   │
│  │              │    │              │    │  (OSM + CV)      │   │
│  │ XLSX/GeoJSON │    │ RMSE/R²/Bias │    │                  │   │
│  └──────────────┘    └──────────────┘    └──────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                               │
              ┌────────────────▼──────────────────┐
              │        Streamlit Web Interface      │
              │  Interactive Maps · Ranked Tables  │
              │  Export · Validation · Comparison  │
              └────────────────────────────────────┘

Methodology

Satellite Data Acquisition

Solar Sight interfaces directly with the Google Earth Engine cloud computation platform, pulling from two complementary archives:

  • Sentinel-2 Level-2A — 13-band multispectral imagery at 10–60 m resolution, processed to surface reflectance. Used for high-precision building footprint analysis and irradiance proxy computation via Band 8 (NIR) and Band 4 (Red).
  • MODIS MOD11A1 — Terra Land Surface Temperature & Emissivity product at 1 km/day temporal cadence. Provides long-term thermal climatology for regional solar resource characterisation.

Building Detection

Building footprints are extracted through a two-stage ensemble:

  1. OSM Integration — Queries the OpenStreetMap Overpass API for vector building polygons within the study area extent.
  2. Computer Vision Fallback — Where OSM coverage is sparse, a spectral index–based detector using NDVI differencing and morphological operations identifies rooftop candidates directly from Sentinel-2 imagery.

Suitability Scoring

Each detected building receives a composite Suitability Score ∈ [0, 1] computed as a weighted linear combination of five independently normalised factors:

Factor Weight Proxy Metric
Solar Irradiance 35% Mean annual surface irradiance (W/m²)
Cloud Frequency 20% Annual cloud occlusion frequency
Rooftop Area 15% Usable panel installation area (m²)
Accessibility 15% Structural accessibility index
Structural Quality 15% Roof morphology confidence score

Classification thresholds:

  • 🟢 High — Score ≥ 0.70
  • 🟡 Medium — 0.40 ≤ Score < 0.70
  • 🔴 Low — Score < 0.40

Energy Estimation

Annual photovoltaic yield is estimated per building using the standard performance equation:

E_annual = A_usable × η_panel × H_peak × PR

Where A_usable is the effective rooftop area, η_panel is panel efficiency (assumed 20.6%), H_peak is peak sun hours derived from satellite irradiance, and PR is the system performance ratio (0.75).

Pilot Study — Kattankulathur, Chennai

The system was validated over the Kattankulathur urban cluster (SRM University campus and surroundings), Tamil Nadu, India — a high-insolation tropical urban environment representative of peninsular India's solar resource regime.

Study Parameters:

  • Spatial extent: 12.820°N – 12.826°N, 80.040°E – 80.050°E
  • Temporal window: 2025-01-01 to 2025-12-31
  • Scoring weights: Irradiance 0.70 · Cloud Cover 0.30

Results:

Metric Value
Buildings analysed 51
Total assessable rooftop area 94,707 m²
Estimated annual energy yield 4,769.8 MWh/yr
Aggregate installed capacity 17.97 MW
Total panel count 51,331
Mean surface irradiance 198.9 W/m²
Medium suitability buildings 43 (84%)
Low suitability buildings 8 (16%)

The predominance of medium-class ratings reflects the sub-tropical cloud climatology of the Tamil Nadu coast during the northeast monsoon season — consistent with independent ground-based radiometric records from the region.

Key Capabilities

  • Multi-source data fusion — Harmonises Sentinel-2 and MODIS observations with vector building data into a unified analytical framework
  • GEE cloud computation — All satellite preprocessing executes serverside on Google Earth Engine; no raw imagery download required
  • Memory-efficient raster processing — Chunked tile-based operations via rasterio and numpy enable analysis of arbitrarily large study areas on commodity hardware
  • Property-based statistical testing — Test suite employs the Hypothesis framework for invariant verification across stochastic inputs (20+ test modules)
  • Reproducible pipeline — Full parameter audit trail, intermediate artefact logging, and structured output manifests
  • Interactive web interface — Multi-page Streamlit application with folium-based interactive maps, building explorer, export manager, and validation dashboard

Technology Stack

Layer Libraries
Satellite Access earthengine-api, Google Earth Engine
Geospatial rasterio, geopandas, shapely, fiona, pyproj
Scientific Computing numpy, scipy, pandas, scikit-learn
Computer Vision scikit-image, Pillow
Cartographic Visualisation cartopy, matplotlib, seaborn, folium
Web Interface streamlit, streamlit-folium
Testing pytest, hypothesis
Configuration PyYAML, python-dotenv

Repository Structure

├── building_detection/        # OSM + CV building footprint extraction
├── config/                    # SystemConfiguration management
├── data_extraction/           # GEE authentication & satellite ingestion
│   ├── gee_auth.py            # Service account + Streamlit Secrets auth
│   ├── sentinel2_extractor.py # 10 m Sentinel-2 MSI pipeline
│   └── modis_extractor.py     # 1 km MODIS thermal pipeline
├── data_processing/           # Irradiance, cloud cover & solar calculations
├── pipeline/                  # Orchestration, memory management, progress tracking
├── precision_analysis/        # Building-level scoring & ranking engine
├── rooftop_analysis/          # Panel optimisation & shading loss modelling
├── suitability_analysis/      # Spatial classification & scoring
├── temporal_analysis/         # Time-series change detection
├── validation/                # Statistical metrics: RMSE, R², bias, CI
├── visualisation/             # Cartopy map generation (300 DPI)
├── utils/                     # Output management, logging, chunked processing
├── streamlit_app/             # Interactive web application
│   ├── app.py
│   └── _pages/                # 13 functional pages
├── tests/                     # Property-based & integration test suite
├── run_kattankulathur.py      # Pilot study reproducibility script
└── requirements.txt

Configuration

Analysis parameters are specified via the SystemConfiguration dataclass. Key fields:

SystemConfiguration(
    study_area_bounds = (min_lat, max_lat, min_lon, max_lon),
    temporal_range    = ("2025-01-01", "2025-12-31"),
    processing_parameters = {
        "spatial_resolution": 10,        # metres (Sentinel-2)
        "cloud_threshold":    0.3,       # fractional cloud cover limit
        "temporal_aggregation": "annual"
    },
    scoring_weights = {
        "solar_irradiance": 0.70,
        "cloud_frequency":  0.30
    }
)

Outputs

Each analysis run produces a structured output artefact bundle:

outputs/<location>_<timestamp>/
├── building_rankings.xlsx     # Ranked building table with all metrics
├── buildings.geojson          # Vector building footprints (EPSG:4326)
└── maps/
    ├── suitability_map.png    # Classified suitability choropleth (300 DPI)
    ├── energy_potential_map.png
    ├── rooftop_area_map.png
    └── top_10_buildings_map.png

License

Distributed under the GNU General Public License v3.0. See LICENSE for details.


Built for academic research in renewable energy geoinformatics.

About

A modular geospatial intelligence pipeline for high-precision assessment of rooftop solar energy viability — powered by Sentinel-2 multispectral imagery, MODIS thermal data, and building-level suitability scoring.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages