Power Density and Land Use Explained
On this page
Problem statement
After the exclusions, a region has some hundreds of square kilometres left, and the next question is how much generation that land can hold. The answer needs a power density — megawatts or, better, average watts per square metre — and the published figures for it vary by a factor of ten because they measure different things: the module area, the fenced plant, the whole wind farm between the outermost turbines, or only the concrete pads and access roads.
A siting study has to pick one definition, say which, and use a number measured under that definition. Mapped plants are the best source, because their outlines and their capacities are both on record.
Quick answer
Three quantities describe land use, and they should not be mixed:
- Capacity density — MW per km² of the chosen area.
- Power density — average W per m²: capacity density × capacity factor.
- Energy density — GWh per km² per year: power density × 8.76.
For solar, measure capacity density from real plant outlines:
import re, osmnx as ox
ox.settings.http_user_agent = "spatialworkflow-examples/1.0"
ox.settings.overpass_url = "https://maps.mail.ru/osm/tools/overpass/api" # overpass-api.de mirror
ox.settings.overpass_rate_limit = False
ox.settings.max_query_area_size = 5e11 # one query; the default splits this box into ~50
# osmnx combines the keys in a tags dict with OR, not AND:
# ask for power=plant and filter on the source afterwards.
plants = ox.features_from_bbox((-6.0, 38.0, -1.5, 41.0), {"power": "plant"})
plants = plants[plants.geom_type.isin(["Polygon", "MultiPolygon"])]
print(plants["plant:source"].value_counts().head(5).to_string())
pv = plants[(plants["plant:source"] == "solar")
& (plants.get("plant:method") != "thermal")].copy()
def megawatts(tag):
if not isinstance(tag, str):
return None
m = re.match(r"^\s*([\d.]+)\s*(kW|MW|MWp|GW)\s*$", tag)
if not m:
return None # "yes", ranges, typos
return float(m.group(1)) * {"kW": 1e-3, "MW": 1, "MWp": 1, "GW": 1e3}[m.group(2)]
pv["mw"] = pv["plant:output:electricity"].map(megawatts)
pv["km2"] = pv.to_crs("EPSG:25830").area / 1e6
known = pv[pv.mw >= 1]
density = known.mw / known.km2
print(f"\n{len(pv)} PV plants mapped, {len(known)} with a usable capacity tag")
print(f"MW per km² of plant outline: median {density.median():.0f}, "
f"interquartile {density.quantile(0.25):.0f}–{density.quantile(0.75):.0f}")
print(f"pooled: {known.mw.sum():,.0f} MW on {known.km2.sum():,.0f} km² "
f"= {known.mw.sum() / known.km2.sum():.0f} MW/km²")
print(f"highest: {density.max():.0f} MW/km²")
plant:source
solar 741
hydro 61
gas 24
wind 21
battery 9
725 PV plants mapped, 140 with a usable capacity tag
MW per km² of plant outline: median 51, interquartile 39–61
pooled: 7,561 MW on 146 km² = 52 MW/km²
highest: 378 MW/km²
Only 140 of the 725 mapped PV plants have a usable capacity tag; most carry plant:output:electricity=yes — a tag that says the plant produces electricity and not how much. The median, 51 MW/km², rests on that fifth.
Fix the area definition, then measure real plants
1. Fix the area definition first
For solar, the fenced plant outline is standard and well mapped. For wind, the choice is between the direct footprint (pads, roads, substation — about 1–3% of the farm) and the spacing area the turbines need to avoid each other's wakes. They answer different questions: direct land take and exclusive land use.
2. Measure capacity density from real plants
Mapped outlines with capacity tags give a distribution for the region and the era. Report the median and the spread, and check the outliers — plants tagged with the capacity of a whole complex on one parcel's outline.
3. Convert to average power
Capacity density alone favours technologies with low capacity factors. Multiplying by the capacity factor gives average W/m², which is comparable across solar, wind and anything else.
4. Apply it to the available land, with a utilisation factor
Not every eligible hectare becomes a plant: parcels are too small, owners refuse, grid capacity runs out. Studies use utilisation factors from a few percent to around 30% of the eligible land.
5. Keep the energy per km² separate from the energy per MW
A wind farm has a far higher capacity factor and a far lower energy per km² of spacing area. Both statements are true; which one matters depends on whether the land is shared.
From capacity density to energy per square kilometre
The data used on this page
Every OpenStreetMap power=plant polygon in central Spain, 6.0–1.5° W, 38.0–41.0° N, fetched by the quick answer through OSMnx and the maps.mail.ru Overpass mirror, with the solar ones kept and their plant:output:electricity tags parsed for capacity. The setup unpacks that answer as saved on 10 October 2026, so the plant count stays put while new plants are mapped.
import io
import os
import requests
import zipfile
# OpenStreetMap as Overpass returned it on 10 October 2026, saved as osmnx's own cache so the counts
# below do not drift as OSM is edited; delete the cache folder to query live instead
if not os.path.exists("cache"):
reply = requests.get("https://data.spatialworkflow.io/osm-cache-power-density-land-use-explained-2026-10-10.zip", timeout=300)
reply.raise_for_status()
with zipfile.ZipFile(io.BytesIO(reply.content)) as archive:
archive.extractall("cache")
Example 1 — from capacity density to energy per km²
yield_kwh_per_kwp = 1633 # PVGIS, optimal fixed tilt, Toledo
cf = yield_kwh_per_kwp / 8760
mw_km2 = density.median()
w_m2 = mw_km2 * cf # 1 MW/km² = 1 W/m²
print(f"{mw_km2:.0f} MW/km² × capacity factor {cf:.1%} = {w_m2:.1f} W/m² average")
print(f"= {w_m2 * 8.76:.0f} GWh per km² per year")
poa_w_m2 = 2106 * 1000 / 8760 # PVGIS tilted-plane irradiation, Toledo
print(f"against {poa_w_m2:.0f} W/m² average irradiation on the tilted plane: "
f"land converts {w_m2 / poa_w_m2:.1%} of it")
51 MW/km² × capacity factor 18.6% = 9.6 W/m² average
= 84 GWh per km² per year
against 240 W/m² average irradiation on the tilted plane: land converts 4.0% of it
The last line is the whole-plant efficiency on land: module efficiency, times the fraction of ground covered by modules, times the system losses. The ground coverage — typically 35–45% for fixed-tilt rows — is the biggest single factor after the module.
Example 2 — the wind version
rotor, rated_mw = 126, 3.45 # Vestas V126-3.45
gross_cf, losses = 0.553, 0.15 # western Jutland, from the capacity-factor guide
for across, along in ((4, 7), (5, 8), (6, 10)):
spacing_km2 = (across * rotor) * (along * rotor) / 1e6
mw_km2 = rated_mw / spacing_km2
w_m2 = mw_km2 * gross_cf * (1 - losses)
print(f"{across}D × {along}D: {spacing_km2:.2f} km² per turbine, "
f"{mw_km2:.1f} MW/km², {w_m2:.1f} W/m², {w_m2 * 8.76:.0f} GWh/km²/yr")
footprint_ha = 0.8 # pad, crane area, share of roads
print(f"direct footprint at 5D × 8D: {footprint_ha / 100 / (5 * 8 * rotor**2 / 1e6):.1%} "
f"of the spacing area")
4D × 7D: 0.44 km² per turbine, 7.8 MW/km², 3.6 W/m², 32 GWh/km²/yr
5D × 8D: 0.64 km² per turbine, 5.4 MW/km², 2.6 W/m², 22 GWh/km²/yr
6D × 10D: 0.95 km² per turbine, 3.6 MW/km², 1.7 W/m², 15 GWh/km²/yr
direct footprint at 5D × 8D: 1.3% of the spacing area
Per km² of spacing area, even this high-capacity-factor site produces 15–32 GWh a year against the solar plant's 84. Per km² of land actually taken out of use, it produces far more — and the rest of the farm stays farmland.
Example 3 — capacity on the available land
available_km2 = 762 # Toledo region at a 500 m setback
for utilisation in (0.02, 0.05, 0.10, 0.20):
gw = available_km2 * utilisation * density.median() / 1000
twh = gw * cf * 8.76
print(f"use {utilisation:.0%} of the eligible land: {gw:.1f} GW, {twh:.1f} TWh a year")
use 2% of the eligible land: 0.8 GW, 1.3 TWh a year
use 5% of the eligible land: 2.0 GW, 3.2 TWh a year
use 10% of the eligible land: 3.9 GW, 6.4 TWh a year
use 20% of the eligible land: 7.8 GW, 12.8 TWh a year
The utilisation factor moves the answer tenfold and is almost never measured — it is a policy assumption. A technical potential without it is an upper bound, not a forecast.
One megawatt per square kilometre is one watt per square metre
Why 1 MW/km² equals 1 W/m²
A square kilometre is a million square metres and a megawatt is a million watts. The identity makes it easy to move from a planning figure (MW/km²) to a physical one (W/m²), and to compare against the roughly 200 W/m² of average sunshine that falls on southern Spain.
Why wind spacing is not land consumption
Turbines are spaced 5–10 rotor diameters apart so that each one sees wind the others have not slowed. The land between them is still farmed or grazed. Counting the spacing area as land use is right when the question is "how many turbines fit" and wrong when it is "how much farmland is lost".
Why capacity tags need scrutiny
OSM capacity tags are entered by hand. A complex of several plants tagged with its total output on one of its parcels gives a density of 378 MW/km² in this data — impossible for fixed-tilt PV with today's modules. Medians are robust to a few of these; means are not.
DC or AC, trackers and agrivoltaics
- DC or AC: plant capacity tags mix MWp and MW(AC); a 1.3 ratio between them is a 30% difference in density.
- Trackers need wider row spacing than fixed tilt and have somewhat lower capacity density but higher energy per MW.
- Agrivoltaics deliberately lower the density to keep farming underneath.
- Solar thermal plants (CSP) are tagged
plant:method=thermaland have very different densities; keep them out of a PV figure. - Offshore wind densities are typically 3–6 MW/km², and the question of land use does not arise.
Internal links
- Renewable siting constraints explained — where the available land comes from
- Capacity factor explained — the other half of power density
- How to build a solar suitability map — applying the density to ranked sites
- OpenStreetMap data model explained — why tags are free text
- How to download OpenStreetMap data in Python — the osmnx workflow
- Wind resource explained — where the wind capacity factor comes from
FAQ
How much land does a solar farm need per MW?
In central Spain, mapped PV plants have a median of 51 MW per km² of fenced area — roughly 2 hectares per MW.
What is power density?
Average power per unit area, in W/m²: capacity density multiplied by capacity factor.
Does wind use more land than solar?
Per unit of energy, yes if you count the spacing area; far less if you count only the land taken out of use.
Why do published figures disagree so much?
They use different areas: module, fence, spacing or footprint, and different eras of module efficiency.
Can I use OSM capacity tags?
Yes, with care: parse them explicitly, drop yes, and check the outliers against the plant's outline.
What utilisation factor should I assume?
There is no standard; published studies use roughly 1–30% of eligible land. Report results across a range.