Explore the facility-level PV generation and aerosol-loss dataset interactively at pvfacilitymap.uk.
Click the preview to open the live dashboard in a new tab. The dashboard complements this repository: this repo provides the raw data and reproducible scripts, while the dashboard offers a visual, exploratory entry point.
This repository provides example code and reproducible plotting workflows for the global facility-level solar PV dataset associated with the manuscript:
Coal plants persist as a large barrier to the global solar energy transition.
The dataset used here includes:
- a global PV facility inventory (
PV_ID, latitude, longitude, country, year, area) - yearly facility-level PV generation and aerosol-related loss files (
PV_facility_generation_year_YYYY.csv)
The goal of this repo is practical reproducibility:
- understand dataset structure quickly
- reproduce selected manuscript-style aggregate figures
- provide a clean codebase that can be extended in future
This repository contains convenient working copies of selected files for examples. For scientific use and citation, the authoritative dataset source is Zenodo:
- Zenodo record: https://zenodo.org/records/18794231
- Zenodo DOI:
10.5281/zenodo.18794231
Please cite:
- The Zenodo dataset DOI (
10.5281/zenodo.18794231). - The manuscript.
- This repository version/commit (if using scripts from this repo).
Code license: MIT (see LICENSE).
Dataset license and usage terms: follow the Zenodo record.
Citation metadata is also provided in CITATION.cff.
data/: dataset files used by example scriptsscripts/examples/: runnable analysis and figure-replication scriptsoutputs/tables/: generated summary tablesoutputs/figures/: generated figuresdocs/: data dictionary and release notesmetadata/: metadata and checksum filessrc/: reusable modules (for future expansion)tests/: tests
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtRun core scripts:
python scripts/examples/interpret_global_pv_parquet.py --save-output
python scripts/examples/plot_aerosol_loss_vs_new_generation.py
python scripts/examples/plot_country_aerosol_loss_2023.py- Global aerosol-loss vs new PV generation:
python scripts/examples/plot_aerosol_loss_vs_new_generation.py --year-start 2017 --year-end 2023- Manuscript Fig.2f style (2023 country comparison):
python scripts/examples/plot_country_aerosol_loss_2023.pyIf the input files are unchanged, key outputs should be close to:
plot_country_aerosol_loss_2023.py- China aerosol-loss share: ~
54.91% - India aerosol-loss share: ~
12.99% - USA aerosol-loss share: ~
9.63%
- China aerosol-loss share: ~
- Figure files in
outputs/figures(.png,.pdf) are versioned for reference. - Table outputs in
outputs/tablesremain ignored by Git (except.gitkeep). - Regenerate outputs by rerunning scripts locally.
data/global_pv_facility_inventory.csvdata/pv_generation_losses/PV_facility_generation_year_2017.csvdata/pv_generation_losses/PV_facility_generation_year_2018.csvdata/pv_generation_losses/PV_facility_generation_year_2019.csvdata/pv_generation_losses/PV_facility_generation_year_2020.csvdata/pv_generation_losses/PV_facility_generation_year_2021.csvdata/pv_generation_losses/PV_facility_generation_year_2022.csvdata/pv_generation_losses/PV_facility_generation_year_2023.csv
See CHANGELOG.md.