Renewable Electricity · Renewables.ninja (ETH Zurich / Imperial College)

Renewables.ninja Wind & Solar PV Simulation Data

Datadory delivers renewable electricity data covering modeled hourly wind and solar PV power output for any point on earth, plus country-aggregated capacity-factor series running from 1985 - the Renewables.ninja simulation stack built on the GSEE and virtual wind farm models, driven by MERRA-2 and SARAH weather data and bias-corrected against national generation statistics. Delivered daily, weekly, or hourly.

API, files, or your warehouse. Daily, weekly, or hourly.

Where it covers
Global point simulation via the MERRA-2 (0.625 x 0.5 degree) and SARAH (0.05 x 0.05 degree) weather grids; country-aggregated series for EU-28 plus Norway and Switzerland
How far back
Hourly country series from 1985 onward (documented German example spans 1985-2016; archived releases extend to 2019)
How fine
Hourly, per site or per country; ~8,760 rows per single-year series

What is renewables ninja wind solar pv simulation and country datasets data?

It is modeled physics, not a metered feed - and that difference decides what you can do with it. Renewables.ninja was built by researchers affiliated with ETH Zurich and Imperial College London to simulate hourly power output from wind farms and solar PV installations anywhere on the planet. Two published models do the work: the GSEE Python package for photovoltaics and the virtual wind farm (vwf) package in R for wind, both fed by weather data rather than by utility disclosures - MERRA-2 reanalysis on a 0.625 x 0.5 degree grid, with SARAH satellite irradiance on a finer 0.05 x 0.05 degree grid driving the PV model.

The output lands in two shapes. A point simulation answers "what would this exact location produce," hour by hour, in kW. The country datasets answer the same question for whole national fleets: files such as ninja_pv_country_DE_merra-2_corrected carry hourly capacity factors from 0 to 1 reaching back to 1985, bias-corrected against national generation statistics, with the correction status written straight into the filename so nobody mistakes raw model output for calibrated history. Within Datadory's catalog of 1,744 datasets across 159 viable industries, this slice scores 8/10 on our quality rubric.

What do the sample rows look like?

Two delivery shapes, one grain - the hour. The site shape reports mean power output in kW per hour for the coordinate and technology you scoped. The country shape reports the same hourly rhythm as a fraction of installed national capacity, which is what makes a German PV winter afternoon directly comparable with a Spanish one:

time=2016-01-01T00:00Z  electricity_kW=<kW-scale hourly output>
  model=pv  weather-driver=SARAH

file=ninja_pv_country_DE_merra-2_corrected.csv
  columns=time,national_pv_capacity_factor
  span=1985-2016 hourly  values=0..1
  correction=bias-corrected vs national generation statistics

Both shapes open with leading # comment lines - two in country files, three in point files - carrying units, parameters and provenance, so every file explains itself before the first data row. A single year runs to roughly 8,760 hourly rows, and the documented German PV example spans 1985 through 2016: thirty-plus weather years in one file, enough to catch calm dark winters that a single reference year would miss.

What fields does the dataset include?

Five verified core fields, written against the published model documentation rather than guessed. time opens every row - a UTC timestamp marking the start of each hour-long period, and the join key against whatever fleet register you bolt on. electricity carries mean power output in kW for site simulations; capacity_factor takes over for country files and expresses the same hour on a 0-to-1 scale, bias-corrected where the filename says so. An optional local_time column swaps the timezone when a request asks for it, and every file leads with # metadata header lines recording units and parameters.

Request-side knobs travel with the data too: turbine model (the Vestas V80 2000 is the documented example), hub height, tilt, azimuth, tracking mode, system loss and time averaging. Those ride along as parameters folded under "additional fields on request" rather than pretending to be independent columns.

What does coverage look like across geography, time and granularity?

Geography first: point simulation works for any coordinate on earth, because the underlying weather grids are global - MERRA-2 at 0.625 x 0.5 degrees for wind, SARAH at 0.05 x 0.05 degrees for PV. Ready-made country aggregation currently centers on Europe: EU-28 plus Norway and Switzerland, distributed as national hourly series.

Time is the quiet superpower here. Country series start in 1985, and the documented German example runs through 2016 with archived releases extending to 2019 - multiple decades of weather years rather than one cherry-picked reference year. Granularity is fixed at hourly, per site or per country, about 8,760 rows per year; anyone who has tried to downsample a monthly national statistic into an hourly profile knows exactly how much grief that resolution saves.

How is the data delivered?

API, files, or your warehouse. Daily, weekly, or hourly.

Pick the channel your stack already speaks. The rows arrive identical either way - one row per hour with its UTC timestamp and either a kW output figure or a 0-to-1 capacity factor, plus the parameter context that produced it - normalized so nothing in your pipeline re-runs a physical model to make the numbers comparable.

Every delivery ships with the field dictionary above plus these sample rows for validation, so your first join attempt happens against evidence, not hope.

Who uses this data, and for what?

  • Power-system modeling - hourly national capacity factors from 1985 onward give dispatch and adequacy models a weather-year spread instead of a single average year; see market sizing.
  • ML feature engineering - a clean hourly panel with a stable timestamp key trains forecasting and nowcasting models without any scraping step; see ml model training.
  • Asset screening - simulated output for a proposed site puts a production curve behind a development thesis before a met mast is ever financed.
  • Citation-grade research - peer-reviewed model lineage (GSEE, vwf) and bias-corrected country calibration survive academic scrutiny; see citation-grade research.
  • Portfolio comparability - because every country series shares the 0-to-1 scale and hourly grain, cross-border capacity-value comparisons become a groupby, not a data-engineering project.

Which personas get the most value?

Data scientists get a typed, regular hourly panel - timestamp, numeric target, no gaps to paper over - that drops straight into feature pipelines. Investors and quants use the 0-to-1 country factors to stress revenue models for renewable portfolios across decades of weather rather than one marketing-friendly year. Market researchers and consultants benchmark national output behavior across the EU-28 plus Norway and Switzerland without stitching twenty statistical offices together. Journalists and academics cite a model with named institutional provenance instead of a spreadsheet of uncertain origin. Developers and builders scope candidate sites with a defensible first-pass production curve before committing to measurement campaigns.

Field dictionary

Every field below is documented against real records. The full dictionary ships with the sample.

Field dictionary - Renewables.ninja wind & solar PV data; remainder folded below
fieldtypedefinitionexample
timedatetimeUTC timestamp marking the start of each hour-long period; the join key on every row.2016-01-01T00:00:00Z
electricitynumberMean power output in kW for site-level simulations, one value per hour, wind or PV depending on the model selected.kW-scale hourly value
capacity_factornumberCountry-dataset values from 0 to 1 giving the hourly aggregated capacity factor for the whole national fleet, bias-corrected where the filename indicates.0 to 1
local_timedatetimeOptional second timestamp column expressed in local time, added when the request asks for it.optional column
Metadata header linestextLeading # comment lines carrying human-readable units and a machine-readable record of units and parameters - two lines in country files, three in point files.# units + parameters
Additional fields-Folded under "additional fields on request": request-side model parameters that travel with the output (turbine model such as the Vestas V80 2000, hub height, tilt, azimuth, tracking mode, system loss, capacity setting, time averaging), and the bias-correction status carried in country-file naming.on request

Coverage - geography, temporal range, granularity

DimensionCoverage
GeographyGlobal point simulation on the MERRA-2 and SARAH weather grids; country-aggregated datasets for Europe (EU-28 plus Norway and Switzerland)
TemporalCountry series hourly from 1985; documented German example covers 1985-2016 and archived releases extend to 2019
GranularityOne row per hour, per site or per country; roughly 8,760 rows in a single-year series

What teams do with it

  • Power-system modeling & adequacy studies Feed dispatch models hourly national capacity factors from 1985 onward so adequacy conclusions survive bad weather years, not just average ones.
  • ML model training Train and validate generation forecasts on a regular hourly grid with no missing-hour surgery - see the [ml model training](/use-cases/ml-model-training) pattern.
  • Site screening & pre-feasibility Simulate a candidate coordinate before committing capex, then join against real fleet records to sanity-check the assumption.
  • Citation-grade research Peer-reviewed model lineage and documented bias correction hold up under review, which is where most convenience datasets quietly die.

Questions buyers ask

What fields does renewables ninja wind solar pv data include?

Five verified core fields: a UTC time timestamp marking the start of each hour-long period, electricity (mean power output in kW for site simulations), capacity_factor (country-series values from 0 to 1, bias-corrected where indicated), an optional local_time column, and the leading # metadata header lines carrying units and parameters. Request-side model parameters fold under additional fields on request.

How far back does the hourly wind and solar data go?

Country-aggregated series run hourly from 1985. The documented German PV example spans 1985 through 2016, and archived releases extend to 2019 - several decades of distinct weather years rather than a single reference year. Site simulations cover the available weather years up to the present, scoped one year at a time.

What does the capacity_factor field actually measure?

The share of installed national capacity that was producing during that hour, expressed from 0 to 1 and aggregated across the whole fleet. Because every country series uses the same scale and the same hourly grain, a 0.31 hour in one market compares directly with a 0.31 hour in another - no unit conversion, no normalization guesswork.

How accurate are the simulated output figures?

They come from physical models fed by MERRA-2 reanalysis on a 0.625 x 0.5 degree grid and SARAH satellite irradiance on a 0.05 x 0.05 degree grid for PV. Country series are then bias-corrected against national generation statistics, with the correction status recorded in the filename so calibrated and raw output never blur together.

Can I get output for a specific turbine or panel setup?

Yes - the model accepts equipment and installation parameters including turbine model (the Vestas V80 2000 is the documented example), hub height, tilt, azimuth, tracking mode and system loss. Those parameters ship alongside the hourly output under additional fields on request, confirmed at sample scoping rather than promised blind.

Does the dataset cover my country or only Europe?

Point simulation works for any coordinate on earth, because the MERRA-2 and SARAH weather grids are global. Ready-made country aggregates center on Europe - EU-28 plus Norway and Switzerland - as hourly national series. Other countries are handled case by case at sample scoping, so ask with the market list rather than assuming a hard wall.

Datasets that pair with this one

See the rows before you pay anything.

Name this dataset and we send real records from it — scoped to the fields you asked for.

See pricing