Skip to content
JournalsWorldThe Global Research Discovery Platform
Featured Dataset

ReEDS: Hourly average state temperatures

This record provides hourly modeled surface air temperature in degrees Celsius for the 48 states in the contiguous United States (U.S.) from 1998–2024, retrieved from the National Solar Radiation Database (NSRDB) and <a hre

👤
CreatorBrown, Patrick R.
📅
Published2026-04-02
🔗
DOI10.5281/zenodo.19390491
📊
Downloads43
⚖️
Licensecc-by-4.0
File Size45.4 MB
Data TypeDataset
Published2026
Licensecc-by-4.0
Total Views118
Total Downloads43

This record provides hourly modeled surface air temperature in degrees Celsius for the 48 states in the contiguous United States (U.S.) from 1998–2024, retrieved from the National Solar Radiation Database (NSRDB) and originally generated using the NASA MERRA-2 model. These data are used in the Regional Energy Deployment System (ReEDS) model.

Temporal resolution

Data are at hourly resolution in Coordinated Universal Time (UTC) and represent instantaneous values on the hour [°C]. The profiles span the 27 weather years from 1998–2024.

Spatial resolution

48 profiles are provided, one for each of the 48 states in the contiguous United States. Data in the NSRDB are provided on a roughly 4 km grid and the original temperature data from MERRA-2 are on a roughly 50 km grid; here, we provide the simple unweighted average over all NSRDB grid sites in each of the 48 states.

File structure

Data are saved as Hierarchical Data Format (HDF5) files. The following Python function can be used to read the .h5 file into a pandas dataframe:

import h5py
import pandas as pd

def read_temperatures(filepath):
 """
 Read temperatures from `filepath` and return a pandas dataframe.

 Usage:
 `df = read_profile('/path/to/temperature_state.h5')`
 """
 encoding = 'utf-8'
 _temperatures = 
 with h5py.File(filepath, 'r') as f:
 years = [int(i) for i in list(f) if i.isdigit()]
 for year in years:
 timeindex = pd.to_datetime(
 pd.Series(f[f"index_year"][:])
 .str.decode(encoding)
 )
 _temperatures[year] = pd.DataFrame(
 index=timeindex,
 columns=pd.Series(f['columns']).str.decode(encoding),
 data=f[str(year)],
 )

 temperatures = (
 pd.concat(_temperatures, names=('y','datetime')).rename_axis(columns='state')
 .reset_index('y', drop=True)
 .tz_localize('UTC')
 )

 return temperatures

📤 Share this page

Found this useful? Share it with your network.

✓ Link copied! Paste it on ResearchGate / Academia.edu
📦
ReEDS: Hourly average state temperatures (Full Dataset)45.4 MB
⬇
📄
ReadmeVia DOI record
↗

Files are hosted on the source repository. Click download to access the full dataset.

Brown, Patrick R. (2026). ReEDS: Hourly average state temperatures. https://doi.org/10.5281/zenodo.19390491