- Blog
- Product
Renewables Vision: Free global renewable capacity factors
Capacity factors are the fraction of total capacity produced by a generator, and are a big bottleneck in building and using energy systems models. A 1 kW Solar panel will only produce some fraction of that kilowatt depending on the incoming sunlight.
These capacity factors are calculated from weather or climate data like ERA5 (a historical record), CMIP6 (future climate projections), or short-term forecasts (for example, the IFS).
It is hard for non-specialists to access these huge datasets and process them into renewable capacity factors efficiently. That's why we're providing Renewables Vision inside our free Convexity web app, to provide solar and wind capacity factors globally from 1940 to the present day, derived from the ERA5 reanalysis dataset. You can read more about our datasets on the Modelverse data page.
Customers on our Pro plan and above can access this data programmatically, pulling the same capacity factor datasets directly with code.
Get capacity factors in the web app
The quickest way to get data is the Convexity web app. On the map, select the Renewables Vision icon on the toolbar, click any location, select wind or solar and the year, and view your data straight away:
You can also access the data via the Timeseries Editor for a particular asset in a model, to automatically set the capacity factor for a generator at the model timestamps and at its mapped location.
Get capacity factors programmatically
If you have a paid Convexity license, you can access capacity factors programmatically using our flexible backend library pyconvexity. For example, here's how you pull hourly solar and wind capacity factors for a couple of specific generator types at a location:
import pyconvexity as px
# Connect to the capacity-factor API for a single historical weather year.
cf = px.BayesianApiCFProvider(
api_key="YOUR_API_KEY",
hist_start_year=2024,
hist_end_year=2024,
)
# A location to query: latitude, longitude, technology, and turbine/panel type.
lat, lon = 37.4, -6.0
solar_asset = (lat, lon, "solar", "Generic_Solar")
wind_asset = (lat, lon, "wind", "Enercon_E82_3000kW")
# Warm the cache for both assets in one round-trip before reading them.
cf.prefetch([solar_asset, wind_asset])
# Pull the hourly capacity factors for the whole year (8,760 values each).
solar = cf.get_cf(lat, lon, 2024, "solar", "Generic_Solar")
wind = cf.get_cf(lat, lon, 2024, "wind", "Enercon_E82_3000kW")
Solar and wind over one week
Hourly capacity factor at Seville, Spain, 2024-06-17 to 2024-06-23
- Solar PV
- Wind
You can use this to run larger data fetches, like an ensemble of 50 historical weather years of capacity factors at a single location:
Fifty weather years of solar
Daily-mean solar capacity factor at Seville, Spain, one faint line per historical year
- 50 weather years (1974–2023)
- Median (p50)
- p25 / p75
The programmatic API can also give you data for an area instead of a single location, like the five days of wind capacity factors shown in this map of the UK and Ireland:
Wind moving across Ireland & Great Britain
Hourly wind capacity factor,
Speed of access
The usual route for getting capacity factors like this has been to download climate or weather NetCDF (.nc) "cutouts" from an archive like ECMWF, and process them into capacity factors. These bulk files can take hours to request, transfer, and wrangle before you can read a single timeseries.
The recently developed Zarr file format can instead serve large multi-dimensional datasets much faster from the cloud. We use the fantastic resources of Earthmover to read climate data efficiently and convert it in our API into capacity factors. The Earthmover marketplace was an inspiration for our own Modelverse site, showing the power of a unified and browseable format to serve models and data.
The three datasets plotted in this post were generated with a single call to our API for each:
- One point, one year of hourly data: 2 seconds
- One point, 50 years of daily data: 8 seconds
- The UK and Ireland region over 5 days: 60 seconds
This compares to hours queueing and downloading NetCDF datasets.
Methods
Detailed methodology is available in our product documentation. The overall process is:
- Take climate data from ERA5 without bias correction for a uniform global product
- Apply simple models of wind power curves and solar capacity functions
- Process into the desired time and spatial resolutions
There are very useful existing services for doing this like renewables.ninja and atlite. We see the advantages of Renewables Vision as being:
- Rapid delivery of both long timeseries and large areas
- Immediate integration into energy systems models in Convexity
For more detailed questions, please get in touch at contact@bayesian.energy.
Ready to start?
Renewables Vision is free. Explore the data or jump straight into Convexity.