{"id":336118,"name":"Global Renewables Watch","description":"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.","url":"https://github.com/microsoft/global-renewables-watch","last_synced_at":"2026-05-17T10:05:31.030Z","repository":{"id":317612637,"uuid":"1064257469","full_name":"microsoft/global-renewables-watch","owner":"microsoft","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-21T18:58:44.000Z","size":42541,"stargazers_count":157,"open_issues_count":2,"forks_count":16,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-18T05:38:00.020Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/microsoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-25T19:11:27.000Z","updated_at":"2026-04-15T02:10:34.000Z","dependencies_parsed_at":"2025-10-06T05:03:52.938Z","dependency_job_id":"9c911fb3-3efc-4989-bab0-ca9ccb9e1beb","html_url":"https://github.com/microsoft/global-renewables-watch","commit_stats":null,"previous_names":["microsoft/global-renewables-watch"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/microsoft/global-renewables-watch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fglobal-renewables-watch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fglobal-renewables-watch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fglobal-renewables-watch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fglobal-renewables-watch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","download_url":"https://codeload.github.com/microsoft/global-renewables-watch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fglobal-renewables-watch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32059564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"microsoft","name":"Microsoft","uuid":"6154722","kind":"organization","description":"Open source projects and samples from Microsoft","email":"opensource@microsoft.com","website":"https://opensource.microsoft.com","location":"Redmond, WA","twitter":"OpenAtMicrosoft","company":null,"icon_url":"https://avatars.githubusercontent.com/u/6154722?v=4","repositories_count":7780,"last_synced_at":"2026-05-11T00:03:59.506Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/microsoft","funding_links":[],"total_stars":3933884,"followers":119313,"following":0,"created_at":"2022-11-02T16:20:12.368Z","updated_at":"2026-05-11T00:03:59.506Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft/repositories"},"packages":[],"commits":{"id":11590929,"full_name":"microsoft/global-renewables-watch","default_branch":"master","total_commits":8,"total_committers":2,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":4.0,"dds":0.375,"past_year_total_commits":8,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":4.0,"past_year_dds":0.375,"last_synced_at":"2026-04-06T00:27:04.198Z","last_synced_commit":"dc7bd33621e91926dc36a2d18753875e738829ab","created_at":"2025-11-30T01:00:43.013Z","updated_at":"2026-04-06T00:27:04.168Z","committers":[{"name":"Microsoft Open Source","email":"microsoftopensource","login":"microsoftopensource","count":5},{"name":"Caleb Robinson","email":"calebrob6@gmail.com","login":"calebrob6","count":3}],"past_year_committers":[{"name":"Microsoft Open Source","email":"microsoftopensource","login":"microsoftopensource","count":5},{"name":"Caleb Robinson","email":"calebrob6@gmail.com","login":"calebrob6","count":3}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fglobal-renewables-watch/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-08T00:00:24.542Z","repositories_count":6211966,"commits_count":915256078,"contributors_count":35381030,"owners_count":1143008,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"microsoft/global-renewables-watch","html_url":"https://github.com/microsoft/global-renewables-watch","last_synced_at":"2026-04-06T00:23:13.167Z","status":"error","issues_count":4,"pull_requests_count":0,"avg_time_to_close_issue":6733.0,"avg_time_to_close_pull_request":null,"issues_closed_count":2,"pull_requests_closed_count":0,"pull_request_authors_count":0,"issue_authors_count":4,"avg_comments_per_issue":0.5,"avg_comments_per_pull_request":null,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":4,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":6733.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":0.5,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2025-11-21T21:00:09.718Z","updated_at":"2026-04-06T00:23:13.168Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fglobal-renewables-watch","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fglobal-renewables-watch/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":4},"pull_request_author_associations_count":{},"issue_authors":{"AviralPadlia":1,"Msnglx":1,"simulacraliasing":1,"jurajbetak":1},"pull_request_authors":{},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-08T00:00:09.900Z","repositories_count":14147583,"issues_count":34546263,"pull_requests_count":112868491,"authors_count":11230090,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":4},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{"AviralPadlia":1,"jurajbetak":1,"Msnglx":1,"simulacraliasing":1},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"DeleteEvent":1,"PullRequestEvent":1,"ForkEvent":5,"WatchEvent":30,"IssueCommentEvent":1,"PushEvent":3,"PublicEvent":1,"CreateEvent":1},"last_year":{"DeleteEvent":1,"PullRequestEvent":1,"ForkEvent":5,"WatchEvent":30,"IssueCommentEvent":1,"PushEvent":3,"PublicEvent":1,"CreateEvent":1}},"keywords":[],"dependencies":[],"score":5.762051382780177,"created_at":"2025-11-28T00:06:45.465Z","updated_at":"2026-05-17T10:05:31.031Z","avatar_url":"https://github.com/microsoft.png","language":"Python","category":"Energy Systems","sub_category":"Energy Data Accessibility and Integration","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Global Renewables Watch\n\nWe 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.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"images/Figure1.jpg\" alt=\"Global wind and solar dataset\" width=\"800\"/\u003e\u003cbr/\u003e\n    \u003cb\u003eFigure 1.\u003c/b\u003e Global wind and solar dataset for 2024q2.\n\u003c/p\u003e\n\n\n## Dataset Download\n\nDownload the complete dataset from the [release page](https://github.com/microsoft/global-renewables-watch/releases/tag/v1.0), or use direct links below:\n- **Solar PV Dataset (2024 Q2):** [download](https://github.com/microsoft/global-renewables-watch/releases/download/v1.0/solar_all_2024q2_v1.gpkg)\n- **Wind Turbine Dataset (2024 Q2):** [download](https://github.com/microsoft/global-renewables-watch/releases/download/v1.0/wind_all_2024q2_v1.gpkg)\n\nThe datasets are provided as GeoPackage (.gpkg) files containing global detections with construction dates and land use information.\n\n## Model Inference\n\nWe 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.\n\n\n### Setup\n\nFirst, setup a conda environment using the provided `environment.yml` file:\n```bash\nconda env create -f environment.yml\nconda activate grw\n```\n\nThen download the pre-trained models to the `models/` directory:\n```bash\nmkdir -p models\nwget -O models/solar_model.ckpt https://github.com/microsoft/global-renewables-watch/releases/download/v1.1/solar_model.ckpt\nwget -O models/wind_model.pth https://github.com/microsoft/global-renewables-watch/releases/download/v1.1/wind_model.pth\n```\n\n### Solar Panel Inference\n\nRun the solar panel detection model on a single GeoTIFF image:\n\n```bash\npython inference_solar.py \\\n    --model-fn models/solar_model.ckpt \\\n    --input-fn data/example_image.tif \\\n    --output-dir results/ \\\n    --gpu 0 \\\n    --verbose\n```\n\n### Wind Turbine Inference\n\nRun the wind turbine detection model on a single GeoTIFF image:\n\n```bash\npython inference_wind.py \\\n    --model-fn models/wind_model.pth \\\n    --input-fn data/example_image.tif \\\n    --output-dir results/ \\\n    --gpu 0 \\\n    --verbose\n```\n\n### Notes\n\n- Solar inference expects 4096x4096 pixel images\n- Wind inference can handle arbitrary image sizes using a sliding window approach\n- Both scripts support skip/overwrite modes to avoid reprocessing existing outputs\n- GPU is recommended for faster inference but not required\n- Output files maintain the same geospatial reference as input files\n\n## Polygonization\n\nAfter running inference, use `polygonize.py` to convert raster predictions into vector features (GeoJSON format). This script automatically processes both solar and wind predictions:\n\n- **Solar**: Extracts polygon features of detected solar panels (filtered by minimum area)\n- **Wind**: Extracts centroid points of detected wind turbines\n\n### Usage\n\n```bash\npython polygonize.py \\\n    --input-dir results/ \\\n    --output-dir vectors/ \\\n    --min-area 10000 \\\n    --num-workers 6 \\\n    --verbose\n```\n\n**Output:**\n- Solar predictions → `*_solar.geojson` (Polygon features with area)\n- Wind predictions → `*_wind.geojson` (Point features with area)\n- All geometries are in EPSG:3857 projection\n- Features include `filename` and `area` (in m²) properties\n\n\n## Citation\n\nIf you use this work, please consider citing our [paper](https://arxiv.org/abs/2503.14860):\n```\n@article{robinson2025global,\n  title={Global Renewables Watch: A Temporal Dataset of Solar and Wind Energy Derived from Satellite Imagery},\n  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},\n  journal={arXiv preprint arXiv:2503.14860},\n  year={2025}\n}\n```\n\n\n## Contributing\n\nThis project welcomes contributions and suggestions.  Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit [Contributor License Agreements](https://cla.opensource.microsoft.com).\n\nWhen you submit a pull request, a CLA bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n## Trademarks\n\nThis project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft\ntrademarks or logos is subject to and must follow\n[Microsoft's Trademark \u0026 Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\nAny use of third-party trademarks or logos are subject to those third-party's policies.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["3d-map","web-map"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/336118","html_url":"https://ost.ecosyste.ms/projects/336118"}