ERA5 is the atmospheric dataset behind an enormous share of modern climate, energy, and agriculture work — and almost nobody writes about what it's actually like to build on top of it. This is that page: what ERA5 is, how it works, and what we learned running it in production.
The basics
ERA5 is the fifth-generation global atmospheric reanalysis produced by ECMWF (the European Centre for Medium-Range Weather Forecasts) and distributed publicly through the Copernicus Climate Data Store (CDS), run by the Copernicus Climate Change Service (C3S). It reconstructs the state of the global atmosphere — temperature, wind, humidity, radiation, precipitation, pressure, and dozens of other variables — on an hourly basis, going back to 1940.
A reanalysis is not a forecast and not a raw observational record. It's what you get when you run a modern numerical weather model over historical data and continuously correct it against every observation available for that period: satellites, weather balloons, ships, buoys, aircraft, ground stations. The output is a physically consistent, gap-free grid of the entire atmosphere for every hour since 1940 — something no single observation network could ever provide on its own, because no observation network has ever had uniform global coverage.
That combination — long record, global coverage, hourly resolution, dozens of simultaneous variables — is why ERA5 shows up everywhere: wind and solar resource assessment, crop modeling, hydrology, building energy simulation, insurance risk, and climate research. It is, by a wide margin, the most heavily used reanalysis product in the world.
Technical specs
| Property | Value |
|---|---|
| Producer | ECMWF |
| Distributor | Copernicus Climate Change Service (C3S), via the Climate Data Store (CDS) |
| Native resolution | 0.25° × 0.25° (~31 km) horizontal, 137 vertical levels |
| ERA5-Land | 0.1° × 0.1° (~9 km) — a separate land-only reanalysis, downscaled from ERA5. This is the product behind our sunshine fallback grid. |
| Temporal resolution | Hourly |
| Temporal coverage | 1940–present |
| Update cadence | Preliminary data (ERA5T) within ~5 days; finalized after ~2–3 months |
| Variables | Hundreds — surface, upper-air, radiation, and land-surface fields, incl. 2m temperature, 2m dewpoint, 10m wind, surface solar radiation downwards (SSRD), precipitation |
| Access | Copernicus Climate Data Store (CDS API / cdsapi), NetCDF or GRIB, free registration required |
| License | Free and open under the Copernicus license, attribution required |
| Primary citation | Hersbach et al. (2020), Quarterly Journal of the Royal Meteorological Society |
0.25° is roughly 31 km at the equator and shrinks toward the poles — every ERA5 grid cell covers a real chunk of terrain, not a point.
How it works
ERA5 is built from a numerical weather prediction model — the same family of physics used for tomorrow's forecast — run backward over history and pulled toward reality using 4D-Var data assimilation. At every timestep, the model's short-range forecast (the "background") is compared against millions of real observations for that hour, and both are blended, weighted by their respective uncertainty, into a best estimate of the true atmospheric state. That estimate becomes the starting point for the next timestep, and the cycle repeats, hour by hour, back to 1940.
The practical consequence: some ERA5 variables are close to direct measurement, and some are almost entirely model output. Temperature, pressure, and wind are tightly constrained — dense global observation networks pull the model close to truth for these. Surface solar radiation is a different story. ERA5 doesn't observe cloud cover the way a satellite does; it models cloud fraction and cloud optical properties as part of the physics, then computes downward radiation through that modeled cloud field. Get the cloud model slightly wrong — and cloud microphysics is one of the hardest things in atmospheric modeling to get right — and every derived quantity downstream of it inherits the error. Sunshine duration, computed from radiation, is exactly such a derived quantity.
In production
GeoRank has run ERA5 in production since 2026, first as the primary source for our global sunshine-hours layer, later demoted to a fallback once satellite data covered enough of the map. Here's what that transition actually taught us — the parts that don't show up in ECMWF's documentation.
The core issue in practice: ERA5's sunshine duration is a downstream product of modeled cloud fields, not a direct measurement of how much the sun actually broke through. We compute it from ERA5's surface solar radiation downwards (SSRD) and top-of-atmosphere incident radiation (TISR) via the Ångström–Prescott clearness-index method — standard practice, not a shortcut. The problem isn't the formula. It's what goes into it. When the underlying cloud model is slightly too optimistic about how much cloud actually blocked the sun on a given day — a systematic tendency in reanalysis surface radiation, well documented in the broader literature — every downstream sunshine-hours estimate inherits that optimism.
In our data, raw ERA5 sunshine consistently overestimates actual observed sunshine — and the size of the overestimate scales with how cloudy the climate is. (The ground stations it's measured against carry their own instrument biases, which is a separate problem worth understanding first.) Against our 56-station reference set:
That gradient is the signature of a cloud-modeling bias, not random noise: the more cloud a climate has, and the more that cloud varies hour to hour, the more room there is for the model to get it wrong. Bergen, Glasgow, and Reykjavik look substantially sunnier in raw ERA5 than they are on the ground — which makes any ranking of "cloudy vs. sunny" cities meaningless without correction. We fit a linear correction against WMO/KNMI/ECA&D ground-station observations:
R² = 0.82 · fit on a 56-station subset · residual RMSE ≈ 180 hr/yr · full reference set 182 stations, IDW radius 500 km
The correction pulls the worst overestimates down hardest — which is exactly the behavior you want, since the error itself is worst exactly where cloud cover is highest.
Every reanalysis cell covers a real chunk of terrain, not a point. A coastal cell averages sea and land into one number, smoothing out the sharp temperature and cloudiness gradient that actually exists at the shoreline. A cell over hilly terrain averages valley floor and ridge line into a value that describes neither well.
Scale decides how badly that bites. ERA5's atmospheric grid is 0.25°, roughly 31 km on a side. ERA5-Land — the product behind our sunshine fallback — is 0.1°, roughly 9 km, which resolves a great deal more coastline but still cannot see a valley. Our published per-city dataset is coarser again at 0.5° (~55 km), and its documented error bands show exactly what that costs: coastal microclimates run ±10–20% error and high-elevation locations ±12–15%, precisely because a 55 km cell cannot resolve a shoreline or a mountain range. Anywhere the real world changes character faster than the cell size, reanalysis hands you an average, not an answer.
Since July 2026, the sunshine layer on the GeoRank map is built primarily on SARAH-3 (EUMETSAT's Climate Monitoring SAF satellite radiation product), at native 0.05° (~5 km) resolution, covering the Meteosat full disk — roughly ±65° latitude and longitude centered on Europe and Africa. ERA5 now fills in everywhere SARAH-3 doesn't reach: the poles, the Americas, Asia-Pacific. A per-pixel quality band on our merged grid records which source fed each cell, so the switch is never hidden.
The reason for the swap is simple: satellite-observed radiation cells need no cloud-model correction, because they're not modeling cloud in the first place — they're looking at it. That's precisely why SARAH-3 replaced modeled ERA5 as the primary source within the Meteosat disk. ERA5 didn't get worse. Satellite observation was always the better source for this specific variable; it just wasn't available everywhere until we built the merge pipeline.
ERA5 still does real work in our stack outside the sunshine layer — it supplies dewpoint (humidity) and wind speed for the Outdoor Hours Index, where its coarser grid acts as a regional modifier layered on top of a higher-resolution temperature base from CHELSA. Demotion to fallback isn't retirement.
Honest comparison
Neither source is strictly better — they're better at different things, and conflating them is where most casual write-ups on this topic go wrong.
The honest summary: use reanalysis when you need every variable, everywhere, all the time, and can tolerate model-driven error in the harder-to-observe fields. Use satellite retrieval when the variable you care about is something a satellite can directly see, and you're inside its coverage footprint.
Honest caveats
Sources
See GeoRank's own use of ERA5 in full: the sunshine calibration methodology covers the correction formula and station set in detail. Related pages: SARAH-3, explained, the live sunshine map, and the climate & rain layer.
The GeoRank sunshine layer shows exactly which source fed each pixel — satellite where available, ERA5 fallback everywhere else.