Hourly wind and solar generation profiles for U.S. EIA-860 plants (2020–2024) driven by TGW meteorology (1980–2024)
Authors/Creators
Description
Dataset overview
This dataset provides hourly capacity-factor time series for every wind and solar generator in the contiguous United States listed in the U.S. Energy Information Administration (EIA) Form 860 surveys for 2020 through 2024. Generation is computed by running NREL’s reV with PySAM (windpower and pvwattsv5 modules) on plant inventories derived from EIA-860, with each generator forced by the IM3 Thermodynamic Global Warming (TGW) downscaled climate dataset for weather years 1980 through 2024.
For each EIA-860 plant year (the inventory of operating generators in a given vintage of EIA-860), 45 annual CSVs provide the hourly capacity factor of every generator under each historical weather year from 1980 to 2024. The data is intended to be aggregated at flexible scales — for example, to balancing authority (BA) level, or to nodes within a production cost model — supporting reliability assessments, long-horizon resource adequacy studies, and analyses of inter-annual variability, seasonality, and extreme weather events.
Citation
If you use this dataset, please cite it via the accompanying CITATION.cf or with the citation below:
McGrath, C., Bracken, C., Burleyson, C., & Voisin, N. (2026). Hourly wind and solar generation profiles for U.S. EIA-860 plants (2020–2024) driven by TGW meteorology (1980–2024) (v1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.20518257
License
Creative Commons Attribution 4.0 International (CC BY 4.0).
Dataset Structure
.
├── CITATION.cff
├── README.md
├── configs/
│ ├── eia_solar_configs_<infrastructure_year>.csv # 2020–2024
│ └── eia_wind_configs_<infrastructure_year>.csv # 2020–2024
├── solar/
│ └── <infrastructure_year>/ # 2020–2024
│ └── solar_gen_cf_<weather_year>.csv # 1980–2024 (45 files)
└── wind/
└── <infrastructure_year>/ # 2020–2024
└── wind_gen_cf_<weather_year>.csv # 1980–2024 (45 files)
Two indices are crossed:
- Plant year (2020–2024) — the EIA-860 vintage that defines which generators exist, their capacities, and their characteristics.
- Weather year (1980–2024) — the TGW historical weather year used to drive the generation model.
Holding the plant year fixed and varying the weather year yields a counterfactual time series of “what this fleet would have produced under each historical year of weather.”
File Formats
Plant configuration files (configs/)
One CSV per plant year and technology, derived from EIA-860 (and, for wind, the U.S. Wind Turbine Database and a curated power-curve database). Each row corresponds to a single generator within a plant.
Solar (eia_solar_configs_<year>.csv) columns include:
| Column | Description |
|---|---|
plant_id_eia |
EIA plant ID |
plant_id_gen_id_eia |
Combined <plant_id>.<generator_id> — joins to generation column names |
plant_name_eia |
EIA plant name |
generator_id |
EIA generator ID within the plant |
operating_year |
Plant year (EIA-860 vintage) |
state, county, lat, lon |
Location |
ba, nerc_region |
Balancing authority and NERC region |
system_capacity |
DC capacity (kW) used by pvwattsv5 |
azimuth, tilt, module_type, array_type, losses |
PySAM pvwattsv5 parameters |
report_date, generator_operating_date |
Reporting and commissioning dates |
Wind (eia_wind_configs_<year>.csv) columns include:
| Column | Description |
|---|---|
plant_id_eia |
EIA plant ID |
plant_id_gen_id_eia |
Combined <plant_id>.<generator_id> — joins to generation column names |
plant_name_eia, generator_id, operating_year |
Plant identity |
state, county, city, lat, lon |
Location |
ba, nerc_region, iso_rto_code |
Power-system region |
predominant_turbine_manufacturer, predominant_turbine_model |
Turbine type |
system_capacity |
Plant capacity (kW) used by PySAM windpower |
t_rated_power_kw, turbines_num |
Per-turbine rated power and count |
wind_turbine_rotor_diameter, wind_turbine_hub_ht |
Rotor and hub geometry |
wind_turbine_powercurve_windspeeds, wind_turbine_powercurve_powerout |
Stringified power-curve arrays |
wind_farm_xCoordinates, wind_farm_yCoordinates |
Stringified turbine layout |
cut_in_speed, cut_out_speed, wind_quality_class |
Operating bounds |
power_curve_source, model_matched, manufacturer_matched |
Provenance flags |
The combined plant_id_gen_id_eia field matches the column headers in the generation CSVs, enabling a join from a generation column back to its plant configuration.
Generation files (wind/, solar/)
Each annual CSV holds 8,760 hourly rows (the leap day is dropped on leap years for consistency across years).
| Column | Description |
|---|---|
datetime |
UTC datetime, hour ending. First row is YYYY-01-01 01:00:00+00:00; last row is YYYY-12-31 00:00:00+00:00 of the following calendar instant. |
<plant_id>.<generator_id> (wind), <plant_id>_<generator_id> (solar) |
Hourly capacity factor in the range [0, 1] for that generator |
To convert capacity factor to absolute output (kW), multiply each value by the matching generator’s system_capacity from the configuration file.
Methods
The processing pipeline mirrors the structure documented in the foresight-gen repository, adapted to use TGW rather than HRRR as the weather forcing. At a glance:
-
Plant configuration generation. EIA-860 plant inventories for 2020–2024 are processed in R, joined to PUDL records and (for wind) the U.S. Wind Turbine Database and a curated power-curve database, to produce one row per generator with all parameters required by reV.
-
Weather preprocessing. TGW hourly fields are extracted at each plant location. For solar, GHI, temperature, and pressure are pulled directly and DNI is estimated using the DISC model. For wind, vertical profiles of wind speed are interpolated to fixed heights (20, 80, 110, 140, 200 m) using PCHIP interpolation, then sampled to each generator’s hub height.
-
Generation. reV is run plant-by-plant with PySAM
pvwattsv5for solar and PySAMwindpowerfor wind, using the per-generator parameters in the plant configuration files. Results are written as one annual CSV per (plant year, weather year, technology). -
Postprocessing. Generator-level profiles are passed through with minor cleanup; capacity factors are bounded to [0, 1].
Provenance
- Plant inventories: EIA Form 860, vintages 2020–2024, accessed via PUDL.
- Wind turbine metadata: U.S. Wind Turbine Database (USWTDB), with a curated power-curve database for matching turbine models.
- Weather forcing: IM3 Thermodynamic Global Warming (TGW) hourly historical simulation, 1980–2024.
- Generation models: NREL reV with PySAM
pvwattsv5(solar) andwindpower(wind).
Notes and Caveats
- Capacity factors are dimensionless in [0, 1]. To get power, multiply by
system_capacityfrom the matching configuration file (kW for both technologies). - Datetimes are in UTC. Convert to local time with the plant’s longitude if alignment with regional load is needed.
- The leap day (Feb 29) is omitted in leap years so every annual file has exactly 8,760 rows.
- Some EIA plants are split into multiple “logical generators” (e.g., combinations of turbine models or array sub-blocks) to capture the heterogeneity inside a single plant. The
plant_id_gen_id_eiafield uniquely identifies each logical generator and joins to the column names in the generation CSVs. - A generator that is operational in plant year N but not in plant year N–1 will appear in the N fleet but not the N–1 fleet. Per-fleet files therefore have different column counts.
- This dataset replaces an earlier internal version that incorrectly included raw (non-CF) wind values and incomplete solar coverage; both issues are resolved here.
Acknowledgments
This work was supported by the FORESIGHT project, an internal investment by Pacific Northwest National Laboratory (PNNL). PNNL is operated for the U.S. Department of Energy by Battelle Memorial Institute under Contract No. DE-AC05-76RL01830.
Related Resources
- Foresight project
- foresight-gen pipeline
- Earlier hourly wind/solar profiles for the EIA 2020 fleet, driven by TGW 1980–2022: zenodo.org/records/16414713
- TGW dataset description: Jones et al., Scientific Data, 2024. doi:10.1038/s41597-024-03894-w
Files
configs.zip
Files
(15.4 GB)
| Name | Size | |
|---|---|---|
|
md5:2e701d6ca8c9d591333fdc19ddb578ba
|
1.8 kB | Download |
|
md5:5af16fc5d1e0250fd934a34da227ebc7
|
2.9 MB | Preview Download |
|
md5:5cb4853c0126acbd5ccdb718cf545caf
|
224 Bytes | Preview Download |
|
md5:cb8c9a6eb565aa6085efd6d6e46442c2
|
12.5 kB | Preview Download |
|
md5:dd7582feaa6bf5b0988a903f01a5eafb
|
9.0 GB | Preview Download |
|
md5:9f4c86b5a16116c5d3c58fc79cbeea96
|
6.4 GB | Preview Download |
Additional details
Related works
- Is variant form of
- Dataset: 10.5281/zenodo.7901614 (DOI)