Terrain roughness and surface roughness length mapping for wind-farm micrositing
Aerodynamic roughness length (z0) derived from satellite land-cover and canopy-height data replaces coarse reanalysis assumptions in wind-flow models, improving annual energy production estimates at the micrositing stage. This page explains the sensors, methods, and honest limits of the approach.
Sensors
- TanDEM-X (DLR): X-band SAR interferometry; global digital elevation model at 12 m posting, with forest height retrievable via differencing against bare-earth DTMs. Phase-centre penetration into canopy introduces a known underestimate of true top height, typically 2-5 m in dense boreal stands.
- Sentinel-2 MSI (ESA/Copernicus): 13-band multispectral imager at 10-20 m resolution, 5-day revisit at mid-latitudes. Provides the land-cover classification base (crop, grassland, urban, forest type) used to assign z0 lookup values. Cloud cover limits usable acquisitions, particularly in maritime climates.
- GEDI (NASA/GSFC): Spaceborne full-waveform lidar operating from the ISS. Delivers canopy height and vertical structure at 25 m footprints along discrete tracks, with no continuous coverage between tracks. Excellent for calibrating TanDEM-X height estimates where tracks coincide with the site.
- ESA WorldCover: Global 10 m land-cover map derived from Sentinel-1 and Sentinel-2, with 11 classes. Freely available for 2020 and 2021 epochs. Accuracy varies by class: built-up and dense forest are well-separated; shrubland and sparse vegetation are frequently confused, which propagates into z0 uncertainty.
Why the roughness assumption matters more than most developers realise
Wind-flow models such as WAsP, WindSim, and OpenFOAM all require a spatially distributed aerodynamic roughness length (z0) as a boundary condition. z0 is not a topographic quantity. It describes how much momentum the surface extracts from the lowest tens of metres of the atmospheric boundary layer, and it varies by roughly four orders of magnitude between open water (z0 around 0.0002 m) and dense forest (z0 0.5-1.5 m). Get it wrong and hub-height wind speed predictions shift by several per cent, which compounds directly into annual energy production (AEP) estimates.
The ERA5 reanalysis, widely used for early-stage resource screening, carries roughness fields on a 31 km grid derived from a single global land-cover dataset. At that resolution, a 200-hectare forest block upwind of a proposed turbine row is invisible. The micrositing stage, where turbine positions are finalised to within tens of metres, needs z0 at 10-30 m resolution. Satellite data is currently the only practical way to produce that.
How satellite products combine to produce a z0 grid
The standard workflow has two parallel branches that merge into a single raster. The first branch classifies land cover from Sentinel-2 imagery using supervised or semi-supervised methods (random forest classifiers are common in the published literature) and assigns a z0 value to each class from established lookup tables. The Davenport-Wieringa roughness classification, published in the 1980s and still the reference, gives z0 ranges for each surface type: open sea 0.0002 m, short grass 0.01 m, farmland with hedgerows 0.05 m, forest 0.3-1.5 m.
The second branch refines the forest class using canopy height. A tall, closed-canopy spruce stand and a recently clear-felled block both classify as 'forest' in a spectral classifier, but their z0 values differ by an order of magnitude. TanDEM-X height-above-ground products, calibrated where possible against GEDI lidar footprints, allow the forest class to be subdivided by canopy height into z0 sub-ranges. The two branches merge at the pixel level: non-forest classes take their lookup-table z0; forest pixels take a height-modulated z0 based on the canopy product.
The resulting grid is typically delivered at 10 m, matching Sentinel-2's native resolution for the red, green, blue, and near-infrared bands. It is then ingested into the wind-flow model as a roughness map, replacing the ERA5 or coarse-resolution default.
What this method cannot do
The most important limitation is temporal. A land-cover-derived z0 is a snapshot. Deciduous forest in leaf-off condition has a meaningfully lower z0 than in full leaf. Crops cycle from bare soil (z0 roughly 0.005 m) to standing wheat (z0 roughly 0.04-0.1 m) within a single growing season. The standard approach assigns a single z0 value based on the dominant seasonal state captured in the classification image, which is typically a summer composite. For sites where the dominant wind direction aligns with deciduous woodland or arable land, seasonal z0 variation can introduce AEP uncertainty of 1-3%, though published estimates vary by site.
TanDEM-X canopy height also carries a systematic bias. X-band radar backscatter from forest is dominated by the upper canopy, but the interferometric phase centre sits several metres below the physical top, particularly in dense stands. Without GEDI calibration, the height underestimate propagates into a z0 underestimate for tall forest. GEDI's track-based sampling means calibration is sparse over small sites; the analyst must interpolate or accept the uncalibrated bias.
Finally, z0 is a spatially averaged concept. The lookup-table approach assigns a single value to a land-cover polygon. Real surfaces are heterogeneous at sub-pixel scales, and the effective z0 seen by a turbine depends on fetch, wind direction, and the spatial arrangement of roughness elements, not just their local density. Satellite-derived z0 grids feed into flow models that handle this implicitly, but the input uncertainty should be carried through to AEP confidence intervals.
Resolution floors and what they mean for small sites
At 10 m resolution, a single Sentinel-2 pixel covers 100 square metres. A hedgerow 2 m wide will not be resolved as a discrete feature; it will be absorbed into the surrounding field classification and its roughness contribution lost. For flat, open sites this is inconsequential. For sites in bocage landscapes or near woodland edges, where the roughness transition happens over tens of metres, the 10 m floor matters. In those cases, very-high-resolution commercial optical imagery (sub-metre) can be used to refine the land-cover classification, though this adds cost and is outside the open-data workflow.
The 12 m TanDEM-X DEM posting is not the same as 12 m height accuracy. Vertical accuracy in forested terrain is typically quoted at 2-4 m (90th percentile) for the global product, degrading further on steep slopes where layover and foreshortening affect the interferogram. Sites with complex terrain and dense forest simultaneously are the hardest case for this method.
Fitting this into a micrositing workflow
A satellite-derived z0 grid is not a standalone product. Its value is realised inside a wind-flow model. The typical sequence is: (1) produce the z0 grid from Sentinel-2 and TanDEM-X; (2) ingest it alongside the terrain elevation model into WAsP or equivalent; (3) run the flow model to produce hub-height wind speed maps; (4) optimise turbine positions and calculate AEP with uncertainty bounds that explicitly include the z0 input uncertainty.
Satellize produces z0 grids as GeoTIFF deliverables with an accompanying uncertainty layer, using ESA WorldCover as the classification base and TanDEM-X forest height for the canopy refinement step, calibrated against GEDI where track density allows. The Tonga crop-estimation programme demonstrated the same classification-to-parameter-grid pipeline in a different domain, validating the operational workflow. For wind sites, the output is formatted to the roughness-map input specifications of WAsP and WindSim.
The grid should be treated as one input among several, not as a substitute for on-site measurements. Mast data, if available, remains the ground truth for z0 at the measurement point. The satellite grid's contribution is spatial coverage: it tells you what is happening across the full site and in the upwind fetch, not just at the mast location.
Typical figures
| Spatial resolution of z0 grid | 10 m (Sentinel-2 base); 12 m where TanDEM-X forest height dominates |
| Sentinel-2 revisit | 5 days at mid-latitudes (combined Sentinel-2A and 2B); usable cloud-free composites depend on climate zone |
| TanDEM-X global DEM posting | 12 m; vertical accuracy 2-4 m (90th percentile) in forested terrain |
| GEDI canopy height footprint | 25 m diameter; track-based, not continuous; ISS orbital inclination limits coverage to 51.6° N/S |
| ESA WorldCover epochs | 2020 and 2021; 10 m resolution; 11 land-cover classes |
| z0 value range covered | 0.0002 m (open water) to ~1.5 m (dense tall forest), per Davenport-Wieringa classification |
| Archive depth (Sentinel-2) | From 2015 (Sentinel-2A launch); useful multi-year composites available from 2017 |
| Delivery format | GeoTIFF z0 grid with co-registered uncertainty layer; compatible with WAsP and WindSim roughness-map inputs |
| Known systematic bias | TanDEM-X underestimates canopy top height by 2-5 m in dense boreal forest without GEDI calibration |
Analytics Satellize can run
| Site-wide z0 grid at 10 m | Supervised land-cover classification from Sentinel-2 multispectral composites, z0 assigned via Davenport-Wieringa lookup table | GeoTIFF raster layer, WAsP/WindSim-compatible format |
| Forest-height-refined z0 layer | TanDEM-X canopy height differencing, calibrated against GEDI footprints where available, applied to forest class pixels | GeoTIFF z0 layer with forest sub-classification by height band |
| z0 uncertainty layer | Per-pixel uncertainty propagated from classification confidence scores and TanDEM-X height accuracy statistics | Co-registered GeoTIFF uncertainty raster for ingestion into AEP Monte Carlo models |
| Upwind fetch roughness profile | Directional transect extraction from z0 grid along prevailing wind sectors derived from client-supplied wind rose | CSV transect table and polar roughness-sector summary for WAsP roughness rose input |
| Land-cover change detection (optional update) | Bi-temporal Sentinel-2 classification comparison to flag clear-felling, urban expansion, or new planting since baseline | Change polygon GeoJSON with class-transition labels and recommended z0 revision |
| Canopy height validation report | GEDI footprint extraction and comparison against TanDEM-X height estimates within site boundary | PDF validation report with bias statistics and calibration correction applied to delivered grid |
Who does the work
We can get this done for you. Satellize runs its own analyst desk and a strong science team. You do not buy a data feed and work out what it means; our people source the imagery, run the analysis described on this page, and hand you the answer with its confidence limits stated. Discuss this requirement.