Skip to content

EarthPV

Free and open mapping of photovoltaics around the Earth!
Including Capacity, Growth and Orientation Systems Above 10 kWp

Active development

EarthPV is research software in the alpha stage that relies heavily on content generated by LLM. Its detectors, calibration and headline numbers are still being tested and revised, not settled.

Many countries do not know how much solar power sits on their roofs, or where. EarthPV answers that from space with free data: it detects PV arrays in Sentinel-2 satellite imagery, turns them into capacity estimates, and hands each detection to OpenStreetMap mappers to verify. What they confirm trains the next model. Built only on open models and global datasets, it works for any country.

EarthPV explained by Open Energy Transition: We are mapping solar panels in every country.

Evidence atlas

Each country gets an interactive evidence atlas: hand-mapped OpenStreetMap installations plus the model's own detections, per 0.1° cell, with a 90% range on the headline figure. They are tiered by how well they are calibrated and checked (what each level needs); mapping calibration areas and checking the mapping leads is how an atlas moves up, so maps a calibration area.

Tier Country What the atlas rests on
Gold none yet Installations above and below 400 m², the small ones calibrated on areas mapped panel by panel, with the rooftop classifier checked by people on randomly drawn cells and on its score for every building
Silver Pakistan 400 m² and up, checked against local ground truth, with about a third of the mapping leads and of the very large outlines checked and mapped in OpenStreetMap, and the model retrained on them; Pakistan also has a calibrated estimate below 400 m², not yet checked by people
Bronze, calibrated as Silver Germany, France, Yemen 400 m² and up, checked against the national register (Germany, France) and hand-mapped communes (France); Yemen's small solar-irrigation arrays calibrated on mapped farm areas. Germany also shows a small-installation estimate fitted to its register, not yet validated. Bronze until more of their leads are mapped in OpenStreetMap to localize the model
Bronze Egypt, India, Morocco, Namibia, Nigeria, Poland, South Africa, Turkey, Vietnam, Zambia 400 m² and up, not yet calibrated: hand-mapped installations plus what the model outlines; small installations missing

The EarthPV evidence atlas: Pakistan's rooftop solar capacity, best estimate 34,589 MWp (90 percent range 29,308 to 41,736), a night-lights style map of estimated capacity per 0.1 degree cell concentrated in the Punjab corridor and the Karachi industrial belt.

How it works

At Sentinel-2's 10 m resolution a large array has a shape you can trace and a small one does not, so EarthPV runs two instruments and combines them.

  • Segmentation, the fine-tuned TerraMind, outlines arrays above roughly 400 m². Every detection becomes a ranked mapping lead, and it is the only instrument for ground-mounted solar at any size.
  • roofclf asks a smaller question of every building: does this roof carry PV? A 100 m² array is a handful of mixed pixels, too few to outline but often enough to classify. It is cross-checked with SPPI, a zero-training spectral index.

Both are calibrated against areas where every installation was mapped by hand, then combined with the hand-mapped OpenStreetMap layer into the evidence atlas, de-duplicated against each other. A country with neither calibration areas nor a register gets the segmentation half only.

The evidence atlas workflow: Sentinel-2 imagery, OpenStreetMap solar mapping and VIDA building footprints feed two detectors, TerraMind segmentation for arrays of 400 square metres and above plus all ground-mount, and the per-building roofclf classifier cross-checked with SPPI. Both are calibrated against hand-mapped ground-truth quadrats, then combined with overlaps removed into the published evidence atlas. The evidence atlas workflow: Sentinel-2 imagery, OpenStreetMap solar mapping and VIDA building footprints feed two detectors, TerraMind segmentation for arrays of 400 square metres and above plus all ground-mount, and the per-building roofclf classifier cross-checked with SPPI. Both are calibrated against hand-mapped ground-truth quadrats, then combined with overlaps removed into the published evidence atlas.

Why free imagery, when sharper imagery exists. Esri, Bing and Mapbox resolve individual panels but only let a person trace from them in the OpenStreetMap editor. So the model reads only Sentinel-2, people read only the high-resolution layers, and what they map becomes openly licensed training data for the next model. The next update costs close to nothing, and anyone can reproduce, check or improve the result.

The mapping flywheel. Checking the model's leads is one way in. People also map calibration areas, where every panel is traced so the small-installation estimate can be fitted and checked, and track down the registers and statistics a country already keeps. Everything mapped goes into OpenStreetMap and comes back as counted capacity and as training labels for the country's next model. An LLM assistant helps at every station and makes none of the calls. Contribute data shows where to start.

The mapping flywheel: six numbered stations run clockwise round a ring with the OpenStreetMap logo at the hub. 1, detect from space with each country's TerraMind model and the small-installation classifiers. 2, publish the evidence atlas with mapping leads and areas to map. 3, people map the leads of 400 square metres and more. 4, people map calibration areas completely. 5, people investigate local datasets such as registers and official statistics. 6, retrain the model and recalibrate on what was mapped. Arrows from stations 3 and 4 carry mapped panels into OpenStreetMap, and arrows out of it carry them to the atlas as counted capacity and to retraining as labels. A dashed frame round the whole wheel marks an LLM assistant that helps at every station but never edits OpenStreetMap, declares an area complete or signs off a number. The mapping flywheel: six numbered stations run clockwise round a ring with the OpenStreetMap logo at the hub. 1, detect from space with each country's TerraMind model and the small-installation classifiers. 2, publish the evidence atlas with mapping leads and areas to map. 3, people map the leads of 400 square metres and more. 4, people map calibration areas completely. 5, people investigate local datasets such as registers and official statistics. 6, retrain the model and recalibrate on what was mapped. Arrows from stations 3 and 4 carry mapped panels into OpenStreetMap, and arrows out of it carry them to the atlas as counted capacity and to retraining as labels. A dashed frame round the whole wheel marks an LLM assistant that helps at every station but never edits OpenStreetMap, declares an area complete or signs off a number.

Keeping it current. An update is a re-run of the same pipeline on new imagery: new detections become mapping leads, what mappers confirm becomes verified capacity and training data, and each round starts from a better map than the last. Keeping PV data current describes one round.

Full detail, including panel orientation from glint and growth since 2021/22: How it works.

How small an installation does it find?

Measured on 30 exhaustively hand-mapped Pakistani calibration areas (123,898 buildings), at the operating point the published atlas uses:

Panel area on the roof Roughly Found
Above 100 m² above 20 kWp 92% rising to over 99%
50 to 100 m² 10 to 20 kWp 83%
20 to 50 m² 4 to 9 kWp 49%
Below 20 m² below 4 kWp 22 to 31%

Detection is recall-first: about 1 in 10 PV-free buildings is also flagged, so detections are leads for human verification, not a finished inventory.

What did not work

Most of what was tried failed, and the failures are documented because they map where the 10 m resolution limit actually is: band stacking, Sentinel-1 corner reflection, two routes from glint to density, roof-axis priors, three super-resolution variants, spectral unmixing, and two retrains that won in-sample and lost on held-out data. Each has runnable code in scripts/. The register with a verdict and the measurement behind each: Experiments.

Contribute

The goal is a global atlas assembled country by country, each run and checked by people who know the ground, with a fork per country and the results coming back here.

  • Map. Load the mapping leads into MapRoulette or JOSM, check each against the high-resolution layers and map what is real, tagged generator:source=solar or power=plant with plant:source=solar.
  • Map a quadrat. Mapping every installation inside a drawn boundary measures what the model misses, which scattered mapping cannot. 31 exist so far; a sparse rural one, sized to include the farmland between villages, is worth the most. Protocol: Quadrat mapping protocol.
  • Review a sample. earthpv calibrate-sample and the random-cell validation batches are waiting for human verdicts against high-resolution imagery.
  • Run a new country. Running on a new region needs nothing pre-downloaded, and Contribute your country atlas back has the runbook, the agent prompt and the review checklist. Still open among the programme's targets: Mexico, Japan, Korea, Indonesia and Brazil.
  • File what you find at open-energy-transition/earthpv.

TraceTheSun

TraceTheSun is an emerging community of open-source PV detection projects and experienced OpenStreetMap solar mappers, working on tagging and mapping solar worldwide in an open, verifiable and cost-effective way. It currently includes:

The full programme description is in the TraceTheSun concept note.

The Centre for Water Informatics and Technology (WIT), LUMS

A team of WIT students has worked alongside Open Energy Transition since the pilot began, taking EarthPV from a trained model to a working rooftop solar mapping pipeline. They trace and verify Pakistani installations in OpenStreetMap, bring the local context satellite data cannot capture, and map the ground-truth quadrats that every recall figure on this site is measured against. Their in-domain training chips raised recall on large Punjabi rooftop arrays from 0.18 to 0.55. For WIT the longer-term aim is to feed this open, verifiable capacity map into energy and power-system models.

Licence

Code is MIT. Imagery from Copernicus Sentinel-2; building footprints from VIDA Open Buildings and Overture Maps; labels from OpenStreetMap contributors under ODbL; administrative boundaries from geoBoundaries under CC-BY; solar-panel import figures from Ember under CC-BY-4.0.

Published data outputs (the atlases, capacity tables, raw detections and any other derived dataset offered for download) are derivative databases of OpenStreetMap's solar labels and, via VIDA Open Buildings, of Microsoft and Google building footprints, so under ODbL's share-alike clause they are licensed under the Open Database License (ODbL) v1.0. Any use must attribute © OpenStreetMap contributors, VIDA Open Buildings (CC BY 4.0) for the footprints and, for anything derived from the German validation, the Marktstammdatenregister (Bundesnetzagentur, Datenlizenz Deutschland - Namensnennung - Version 2.0).