Data: . Validated = a single (tilt, azimuth) explains ≥ 2 independent spike dates via the specular reflection condition, tolerance 3°. Point size ∝ √(installation area). Full derivation of the glint signal this pose fit is built on: the method page. Annotated Sentinel-2 / high-res examples of what a validated spike actually looks like in the source imagery: the image gallery.
Best estimate: 526 MWp, with a 90% range of 451–699 MWp. That range covers two specific, measured sources of uncertainty -- but not everything that could move this number. Below: what's inside the range, and what isn't.
What's inside the range:
What's outside the range -- and can't be added back in with more arithmetic:
power=plant perimeters covering 11.7 km² turned out, under the imagery, to be bare ground, bush or fields -- announced project sites mapped as if complete. Removing them moved the hand-mapped tier down by roughly a third. Nowhere else in this project is the mapped population small enough to audit this way, which is worth remembering when reading a larger country's map.Treat this as an early-stage estimate from an active research pipeline, not a finished census. What's genuinely new here -- a reproducible way to estimate distributed solar from free satellite imagery and open-source AI, in places where official statistics are sparse or absent -- holds regardless of whether any single number on this page turns out exactly right. Expect these figures to keep moving as the evidence behind them grows.
Nothing on this page rests on hand-mapped ground truth from this country. Exhaustively mapped areas -- every panel in a few square kilometres, drawn by hand -- are what turns a detection into a capacity estimate: they measure how much of a flagged roof is actually covered in panels, and how many real installations the detectors miss entirely. Until some exist here, read these figures accordingly. Mapping one is the most useful thing anyone can contribute.
data parameter
to https://overpass-api.de/api/interpreter from a script. The raw-detections
download above predates this page and will go stale as mappers keep editing; this query
always reflects live OSM state.
The capacity per grid cell shown on the map, as CSV. One row per 0.1°
cell, generated in your browser from the data this page is drawing, so it is exactly
the numbers above. lon0/lat0 are the south-west corner of
the cell. The GeoParquet carries the cell polygon in EPSG:4326, so it opens directly
in QGIS or GeoPandas.