Global Renewables Watch

A comprehensive global temporal dataset of commercial solar photovoltaic (PV) farms and onshore wind turbines, derived from high-resolution satellite imagery analyzed quarterly from the fourth quarter of 2017 to the second quarter of 2024.
https://github.com/microsoft/global-renewables-watch

Category: Energy Systems
Sub Category: Energy Data Accessibility and Integration

Last synced: about 4 hours ago
JSON representation

Repository metadata

README.md

Global Renewables Watch

We present a comprehensive global temporal dataset of commercial solar photovoltaic (PV) farms and onshore wind turbines, derived from high-resolution satellite imagery analyzed quarterly from the fourth quarter of 2017 to the second quarter of 2024. We create this dataset by training deep learning based segmentation models to identify these renewable energy installations from satellite imagery, then deploy them on over 13 trillion pixels covering the world. For each detected feature, we estimate the construction date and the preceding land use type. This dataset offers crucial insights into progress toward sustainable development goals and serves as a valuable resource for policymakers, researchers, and stakeholders aiming to assess and promote effective strategies for renewable energy deployment. Our final spatial dataset includes 375,197 individual wind turbines and 86,410 solar PV installations. We aggregate our predictions to the country level --- estimating total power capacity based on construction date, solar PV area, and number of windmills --- and find a R2 values of 0.96 and 0.93 for solar PV and onshore wind respectively compared to IRENA's most recent 2023 country level capacity estimates.

Dataset Download

Download the complete dataset from the release page, or use direct links below:

The datasets are provided as GeoPackage (.gpkg) files containing global detections with construction dates and land use information.

Model Inference

We provide two inference scripts: inference_solar.py for solar panel detection and inference_wind.py for wind turbine detection with the pretrained models. These each take a single GeoTIFF image as input and output a prediction GeoTIFF of the same shape.

Setup

First, setup a conda environment using the provided environment.yml file:

conda env create -f environment.yml
conda activate grw

Then download the pre-trained models to the models/ directory:

mkdir -p models
wget -O models/solar_model.ckpt https://github.com/microsoft/global-renewables-watch/releases/download/v1.1/solar_model.ckpt
wget -O models/wind_model.pth https://github.com/microsoft/global-renewables-watch/releases/download/v1.1/wind_model.pth

Solar Panel Inference

Run the solar panel detection model on a single GeoTIFF image:

python inference_solar.py \
    --model-fn models/solar_model.ckpt \
    --input-fn data/example_image.tif \
    --output-dir results/ \
    --gpu 0 \
    --verbose

Wind Turbine Inference

Run the wind turbine detection model on a single GeoTIFF image:

python inference_wind.py \
    --model-fn models/wind_model.pth \
    --input-fn data/example_image.tif \
    --output-dir results/ \
    --gpu 0 \
    --verbose

Notes

  • Solar inference expects 4096x4096 pixel images
  • Wind inference can handle arbitrary image sizes using a sliding window approach
  • Both scripts support skip/overwrite modes to avoid reprocessing existing outputs
  • GPU is recommended for faster inference but not required
  • Output files maintain the same geospatial reference as input files

Polygonization

After running inference, use polygonize.py to convert raster predictions into vector features (GeoJSON format). This script automatically processes both solar and wind predictions:

  • Solar: Extracts polygon features of detected solar panels (filtered by minimum area)
  • Wind: Extracts centroid points of detected wind turbines

Usage

python polygonize.py \
    --input-dir results/ \
    --output-dir vectors/ \
    --min-area 10000 \
    --num-workers 6 \
    --verbose

Output:

  • Solar predictions → *_solar.geojson (Polygon features with area)
  • Wind predictions → *_wind.geojson (Point features with area)
  • All geometries are in EPSG:3857 projection
  • Features include filename and area (in m²) properties

Citation

If you use this work, please consider citing our paper:

@article{robinson2025global,
  title={Global Renewables Watch: A Temporal Dataset of Solar and Wind Energy Derived from Satellite Imagery},
  author={Robinson, Caleb and Ortiz, Anthony and Kim, Allen and Dodhia, Rahul and Zolli, Andrew and Nagaraju, Shivaprakash K and Oakleaf, James and Kiesecker, Joe and Ferres, Juan M Lavista},
  journal={arXiv preprint arXiv:2503.14860},
  year={2025}
}

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit Contributor License Agreements.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct.
For more information see the Code of Conduct FAQ or
contact opencode@microsoft.com with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
Microsoft's Trademark & Brand Guidelines.
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.


Owner metadata


GitHub Events

Total
Last Year

Issue and Pull Request metadata

Last synced: 6 days ago

Total issues: 4
Total pull requests: 0
Average time to close issues: about 2 hours
Average time to close pull requests: N/A
Total issue authors: 4
Total pull request authors: 0
Average comments per issue: 0.5
Average comments per pull request: 0
Merged pull request: 0
Bot issues: 0
Bot pull requests: 0

Past year issues: 4
Past year pull requests: 0
Past year average time to close issues: about 2 hours
Past year average time to close pull requests: N/A
Past year issue authors: 4
Past year pull request authors: 0
Past year average comments per issue: 0.5
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/microsoft/global-renewables-watch

Top Issue Authors

  • AviralPadlia (1)
  • Msnglx (1)
  • simulacraliasing (1)
  • jurajbetak (1)

Top Pull Request Authors


Top Issue Labels

Top Pull Request Labels

Score: -Infinity