Sunday 7 July 2024

Visualising NREL's Annual Technology Baseline ("ATB") data for wind and solar energy using R

In the US, the Federal Government's National Renewable Energy Lab released the 2024 "Annual Technology Baseline" a couple of weeks ago. The large, yearly dataset does a few things. For one, it collects data on constructed electricity generators by type of fuel/renewable and collates the components of their cost. By factoring in all of the expected outlays for a specific type of generator, we can arrive at the "Levelised Cost of Energy" (LCOE); the exact calculation can differ but essentially, the units of the LCOE are "units of currency for a unit of energy," eg, $/MWh. This allows people to ask clear, quantified questions of the type "Which type of energy generation is more (less) expensive?". In general, I have been used to calculating LCOE as a lifetime cost, but I should point out that the calculation used by NREL (see here) is a bit different than myself and most others (I believe) might have used, and it varies by year. 

 For people interested in intermittent renewables like solar and wind, NREL data also divides regions into categories defined by the strength of their wind or solar resources, on a 1 to 10 scale (1 being best and 10 being least good). These categories are defined by NREL here for solar and here for wind--note that the wind categorisation has implications for the hub height of the wind turbines to be used. 

I wanted to be able to think of a state at random within the US and ask "In which counties would I have the best (or worst?) opportunities to build a solar farm and/or a wind farm?". To do this, I would need to be able to tie climatology data (from our trusty friend nasapower) and categorise it based on the system devised by NREL. Using the R "simple features" object type, it's possible to transform this into easily readable maps, too. 

Where in Arizona do wind turbines cost the least (the most) to operate?

The way in which I've written the scripts gives users the choice between Canada, the United States and Mexico--but this is may be a flurry on my part, since NREL bases its ATB data on findings from projects in the contiguous 48 states. In the meantime, it's possible that these scripts could be built on to cover the world more globally (see below). 

There are a number of ways this project can be made better, including, to wit: 

  1. Expanding the data sources to cover a greater number of countries 
  2. Factoring in the grid connection costs, a major obstacle for renewables projects but which do not form a part of the LCOE
  3. Allowing a different calculation of the LCOE

I made the scripts available on my GitHub, here. To run this locally on your machine, all you would need is to have R installed; the "quick_start" script pretty much takes care of the rest (I tested this using R Studio, but I don't see why you couldn't use them witg the console).


  1. Hi , Thanks for your work. When I read your article on this Lenovo X220 running Ubuntu 20.04, I see nothing after "the units of the LCOE are "units of currency for a unit of energy," eg, $/MWh. This allows people to ".
    And I see nothing after "I made the scripts available on my GitHub, here. To run this locally on your machine,

    Brian Cady

    1. Thank you for reading and taking the time to comment. I have tidied the HTML behind this post and also edited a few of the other sentences for readability. I hope you enjoy the codes and let me know any ideas you have about how to improve them.