Yemen: the map is solar irrigation the sensor cannot see, and the parks are not on it¶
Yemen was composed and run on 11 and 12 October 2026, the second country of the
Morocco-Egypt-Yemen-South Africa queue to reach a page. Like Egypt it started
with no calibration quadrats, no national register and no third-party PV dataset to check
against, and it was run under the owner's standing instruction to localize the
segmentation on the country's own OpenStreetMap labels and to ship whichever checkpoint
scores better on a held-out region. Neither checkpoint scored anything on the holdout, the
tie goes to the localized v13_combined_yemen under that rule, and this page runs on it.
Read it as a map of what OpenStreetMap holds, not as an estimate of Yemen's PV.
Interactive: Yemen PV evidence atlas.
Headline¶
| Verified | 65.9 MWp (90% 46 to 95) |
| Best estimate | 67.1 MWp (90% 49 to 98) |
| Grid | 810 cells of 0.1°, 22 governorates (geoBoundaries) |
| Imagery | Sentinel-2 L2A, October 2025 to March 2026 |
| Model | v13_combined_yemen epoch 28, localized (tied with v5_combined_france at zero on the holdout; see below) |
A precision floor, and here close to the mapped layer alone
Yemen has no calibration quadrats, so there is no roofclf half and no instrument
below the 400 m² segmentation floor. It has no glint sample, so p_unmapped is 0
and p_real collapses to the OpenStreetMap-mapped fraction, which in Yemen is zero in
every size bin (next sections). Recall was deliberately skipped
(--recall-reference none). For scale, IRENA counts 456 MW of operational PV at the
end of 2025, and the 120 MW Aden plant, in operation since July 2024, is being
doubled to 240 MW
(pv magazine, 8 September 2026).
That plant is not in OpenStreetMap, and this page does not count it.
Localizing the detector¶
Labels. 1,892 OpenStreetMap solar features inside Yemen (1,733 ground, 29 rooftop, 130 unclassified points), 1.31 km² in all, median 655 m². The largest is 0.022 km². The solar-thermal filter found no solar-thermal element in the country's bounding box. 1,713 of the features sit in the Tihama plain of Al Hudaydah between 14 and 15°N, and 1,697 of those were last edited in May to August 2023: rectangles of four corners and a median 617 m², scattered across irrigated fields, the pattern of solar-powered irrigation pumps.
Holdout. Picked from the label map before training by scripts/pick_val_region.py:
'Amran Governorate, 47 cells, holding 21 of the country's 1,465 dissolved positives of 400
m² and up (1.4%). Al Hudaydah, with 1,434, is the core and stays in training. The 21
lie near 43.95°E 16.27°N, were all last edited on 23 or 24 February 2024, and are
450 to 1,755 m², 18 of them ground.
Corpus and recipe. 233 train and 13 val chips (190 with PV), weighted x8, the cap, giving 1,877 of 27,115 corpus rows (6.9%). The recipe is v5's verbatim. Best epoch 28 on the pooled validation set (val/mIoU 0.790, over every country's held-out chips, of which Yemen's are 13), early-stopped at epoch 36, 9 hours 44 minutes on the GTX 1060.
The ship decision, scripts/compare_local_vs_v5.py on the 13 held-out chips:
| v5 | v13 (localized) | |
|---|---|---|
| recall, installations at or above 500 m² | 0.000 (0 of 25) | 0.000 (0 of 25) |
| pixel IoU | 0.000 (0 true, 5 false positive pixels) | 0.000 (0 true, 0 false positive pixels) |
Both measures tie, and the rule gives a tie to the localized model. The comparison carries no information: neither checkpoint finds a single held-out pixel.
Why neither model sees Yemen's mapped PV¶
The held-out arrays are not the exception. Scoring v13's own national inference against every mapped feature of 400 m² and up, as the ground screen does, it lights up 2 of 1,466, including the Tihama arrays it was trained on. The cause is in the imagery, not the model:
- The arrays barely differ from what surrounds them. Across the 181 Yemeni training chips with at least three PV pixels, the mean reflectance inside the mapped outlines differs from a 30 m ring around them by a median 1.6 to 2.6% per band. The same measurement gives 8 to 18% in Egypt's chips and 6 to 25% in Vietnam's. A 617 m² pump array is about six Sentinel-2 pixels of panels and gaps on a field.
- It is not a misregistration. Shifting the masks up to 60 m in every direction finds no offset at which the outlines turn dark in the red-edge and near-infrared bands; Egypt's chips, the same test, peak at zero shift.
So the localized model trained, at eight times weight, on labels it cannot resolve. It is shipped because the rule says so, not because it learned Yemen.
What the model does find: three parks the map lacks¶
v13 draws 2,333 candidates. Only two of them touch a mapped installation, so the precision
table prices every size bin, rooftop and ground, at a p_real of 0 to 0.006, and the model
adds almost nothing to either tier (next section). The detections that matter are the
largest. 29 exceed the 100,000 m² merge cap, 11.2 km² in all, and were each
inspected against the composite:
- Three are solar parks, none in OpenStreetMap: the Aden plant (44.88°E 12.88°N, 1.31 km², its panel blocks outlined almost exactly), a park of two blocks beside the power station at Mocha (43.26°E 13.37°N, 0.64 km²) and a fenced grid on the Red Sea coast north of Al Hudaydah (42.93°E 14.99°N, 0.38 km²). Together 2.33 km², about 117 MWp at the land constant.
- The other 26 are dark rock, basalt outcrops and shadowed hillsides, most of them in Sa'dah, the largest 2.54 km².
The cap excludes all 29 from capacity, since only an outline carrying an OpenStreetMap plant
geometry is exempt. That removes the rock and the parks together. All three parks are in the
exported mapping leads (yemen_pv_new_leads.geojson, Aden and the Red Sea park about
300th of 2,331, Mocha about 670th); once mapped, they enter Verified at the land constant.
Plausibility gate¶
earthpv check-density reports 0 fail and 18 suspect of 22 governorates. The model's
estimate is 1.2 MWp, all of it ground, so every governorate holding any of it trips the
ground-to-rooftop ratio, and none comes near the 50 MWp of ground-mount at which the ratio
counts as a failure. The gate checks the model's estimate, and here there is almost nothing
to check.
Candidate population¶
2,333 candidates: 480 rooftop, 510 ground-adjacent, 1,343 with no building, median 1,801
m². The 29 above the merge cap are 54.8% of candidate area; none carries an
OpenStreetMap plant geometry, since nothing that large is mapped in Yemen. The rest,
thresholded and unweighted, would be 191.9 MWp (est_mwp_det). Priced by the precision
table they are 1.2 MWp (est_mwp_rc, all ground, 90% upper bound 11.3), because two of
2,333 candidates match a mapped installation. In this floor a detection the map has never
confirmed counts for nothing, whether it is a real array nobody has mapped or a bright
hillside.
Verified is the hand-mapped layer at the two constants, and 93% of it is Al Hudaydah. 1,891 reference features inside the border, none overlapping: 1.30 km² of ground (65.1 MWp) and 0.004 km² of rooftop (0.8 MWp); the 130 unclassified points carry no area. The Tihama irrigation arrays are 61.4 MWp of the 65.9. Best adds the model's 1.2 MWp of ground on top, and is floored at Verified in two cells.
Operational notes¶
Compose built 810 cells and finished at 04:06 on 12 October, with no provider hand-offs and
the 10 October and 12 October compose fixes in place (scene ranking by coverage,
band-dropout check, label cells covering a whole outline; see open question 22). Inference
over 810 cells took 43 minutes. The ground screen crashed on its first run: Yemen has no
mapped ground perimeter of 50,000 m² or more, and the screen wrote an empty table and
then failed reading its own screen column. It now writes the column header regardless, so
density reads an empty screen; the queue's three launches had all stopped at that step,
and the chain was relaunched at 15:51 once it was fixed.
What Yemen needs next¶
Map the three parks. They are the largest PV the model sees in the country and the one change that would move Verified materially.
A holdout the sensor can resolve. Every held-out installation here is a small array in farmland or on a hillside. A holdout that cannot be detected by either checkpoint cannot decide between them; until Yemen has a mapped park of its own, the ship rule here is a coin toss with a fixed outcome.
Reproducing¶
pixi run python scripts/overpass_labels_chunked.py --bbox=41.8,12.1,54.6,19.0 \
--iso3 YEM --name yemen --tiles 4x3 --timeout 300 --retries 8
systemd-run --user --collect --unit=earthpv-country-queue -p WorkingDirectory="$PWD" \
-p LimitNOFILE=65536:65536 -p MemoryMax=4G bash scripts/run_country_queue.sh
The queue pulls the labels, runs the solar-thermal filter, composes Yemen, picks the
holdout and hands the country to scripts/run_country_compute.sh yemen (chips, training,
the v5 comparison, inference and the atlas chain, behind marker files).