Published November 6, 2026 | Version v2
Dataset Restricted

Code and Data for "Spatially concentrated heat emissions from data centers lead to localized urban warming and population exposure"

Authors/Creators

  • 1. ROR icon University of Southern California

Description

Code and Data for Assessing the Warming Effects of Data Centers

Overview

This archive contains Jupyter notebooks, supporting energy-system and geospatial data, WRF-SLUCM configuration files, and processed simulation outputs for assessing the meteorological effects of data-center anthropogenic heat emissions and associated population exposure in California.

The workflow distinguishes direct heat emissions at data centers (Scope 1) from atmospheric heat emissions at power plants attributable to data-center electricity demand (Scope 2). It covers present-day and 2030 data-center demand scenarios across a California domain (CA; 4-km grid spacing) and finer domains covering Santa Clara (SC; 1 km) and Los Angeles (LA; 1 km). The main analysis notebook uses July 2025 meteorological conditions for both demand scenarios; the 2030 label denotes a future data-center demand scenario.

The archive is organized into three parts: heat-emission estimation, WRF-SLUCM configuration, and WRF post-processing and analysis. The supplied files support the documented workflow, but some notebook sections require additional inputs or original WRF simulation files, as described below.

Directory structure

Code_Data_v3/
├── 1.Heat_emission_estimation/
│   ├── 1. PowerPlant_prepare.ipynb
│   ├── 2. Attribute_DC_to_BA.ipynb
│   ├── Input_1. PowerPlant_prepare.ipynb/
│   └── Input_2. Attribute_DC_to_BA.ipynb/
├── 2.WRF-SLUCM_configuration/
│   ├── namelist.input_CA_AH
│   ├── namelist.input_SC_AH
│   ├── namelist.input_LA_AH
│   ├── URBPARM_LCZ.TBL
│   └── sub.wrf.sh
└── 3.Main_analysis_WRFpost/
    ├── 1. Extract_from_ensemble_simulations.ipynb
    ├── 2. Impact_of_AH_DC.ipynb
    └── Input_to_2. Impact_of_AH_DC.ipynb/

Directories whose names end in .ipynb/ are input-data folders; files ending in .ipynb are Jupyter notebooks.

1. Heat-emission estimation

1. PowerPlant_prepare.ipynb

This notebook prepares July 2025 power-plant generation and heat-emission data from EIA-860 and EIA-923 source workbooks. It links plant, generator, boiler, fuel, prime-mover, and cooling-system information; reconciles generation and fuel-consumption records; estimates waste heat using energy balances, with separate treatment of combined heat and power and combined-cycle systems; and partitions heat losses into atmospheric sensible heat, atmospheric latent heat, and heat released to water.

The workflow writes generation_fuel_cooling_2025_July.csv as an intermediate table and Power_Plant_Cooling_July.csv as the processed plant-level input for subsequent attribution. The latter retains detailed plant/generator/fuel/cooling records rather than one row per plant. Its atmospheric heat fields describe heat released to the atmosphere and should be distinguished from total waste heat and heat released to water.

Input_1. PowerPlant_prepare.ipynb/ contains the following source and supporting archives:

File Contents
eia8602025.zip EIA-860 source workbooks for 2025, including plant, utility, generator, ownership, fuel, storage, and environmental-equipment/association tables, with form documentation.
f923_2025.zip EIA-923 source workbooks for 2025, including generation and fuel consumption, source/disposition, and annual environmental information.
galanter_and_others_2023.zip Supporting thermoelectric-water-use reference package containing environmental-data preparation scripts, model inputs, R model scripts, and annual/monthly water-use estimates for 2008–2020.

The first two archives are read directly by the power-plant preparation notebook. The thermoelectric-water-use reference package is supplied as supporting material and is not directly read by the current notebook. A processed Power_Plant_Cooling_July.csv is also supplied in the input folder for the next notebook.

2. Attribute_DC_to_BA.ipynb

This notebook:

  • reads data-center demand and heat-emission information with existing balancing-authority (BA) assignments and model-grid identifiers;
  • constructs an hourly demand profile from the CEC 2025 IEPR data-center profile, converts local timestamps to UTC, and normalizes the profile by its July mean;
  • constructs present-day and 2030 direct data-center heat-emission time series, including sensible and latent components;
  • uses hourly BA electricity demand and interchange to attribute data-center electricity demand to supplying BAs;
  • distributes attributed electricity demand among power-plant records using generation weights and fuel-specific hourly profiles; and
  • calculates the associated atmospheric heat emissions and produces spatial, temporal, and county-level summaries.

The notebook also contains commented routines for exporting hourly WRF-SLUCM total anthropogenic-heat flux fields (AH_total, W m⁻²) and latent-heat fractions (LH_prop, dimensionless), with urban-fraction scaling where selected. These routines must be enabled and configured before use. Generated hourly heat-input directories are not included in this archive.

Supplied attribution inputs

Input_2. Attribute_DC_to_BA.ipynb/ contains:

File Contents
eia_ba_exchange_hourly_2025_Summer.csv Hourly electricity interchange between BAs.
eia_generation_type_hourly_2025_Summer.csv Hourly electricity generation by fuel/energy-source category and BA.
eia_rto_hourly_2025_Summer.csv Hourly BA/RTO electricity-system records, including demand and net generation.
Power_Plant_Cooling_July.csv Processed July 2025 plant/generator/fuel/cooling records, including generation and atmospheric heat-emission estimates.
geo_em.d02_CA.nc WRF geographical fields for the CA domain.
geo_em.d02_SC.nc WRF geographical fields for the SC domain.
geo_em.d02_LA.nc WRF geographical fields for the LA domain.

The three hourly EIA CSV files cover 1 June 2025 at 00:00 through 2 August 2025 at 00:00, inclusive, with 1,489 distinct hourly timestamps. The notebooks interpret these timestamps as UTC. The processed power-plant table contains 19,842 detailed records for July 2025; heat and generation units are indicated in its column names.

The data-center workbook CA_Data_Center_20260924.xlsx and demand-profile workbook CEC_2025_IEPR_data_center_hourly_profile.xlsx, both referenced by the attribution notebook, are not included in the current directory.

2. WRF-SLUCM configuration

2.WRF-SLUCM_configuration/ contains:

  • namelist.input_CA_AH: WRF configuration for the CA anthropogenic-heat experiment;
  • namelist.input_SC_AH: configuration for the finer SC experiment;
  • namelist.input_LA_AH: configuration for the finer LA experiment;
  • URBPARM_LCZ.TBL: urban parameter table containing local-climate-zone parameters and anthropogenic sensible- and latent-heat settings; and
  • sub.wrf.sh: example Slurm batch script that initializes the computing environment, runs real.exe, and launches wrf.exe with MPI.

The namelists include the customized anthropogenic-heat controls AH_choose, LH_choose, AHratio, and AH_grid. They are intended for the corresponding modified WRF-SLUCM implementation. Model source code, compiled executables, meteorological forcing, and the complete model runtime directory are not included. The batch script contains computing-system-specific paths and resource settings that must be adapted before use.

3. WRF post-processing and main analysis

1. Extract_from_ensemble_simulations.ipynb

This notebook reads paired WRF experiments, matches output files and analysis times, calculates experiment differences, and assembles ensemble products. Its extraction routines cover 2-m air temperature (T2), skin temperature (TSK), relative humidity (RH), 10-m wind speed (WS), planetary boundary-layer height (PBLH), and additional model variables where requested. Depending on the variable, it writes hourly ensemble means, member-specific time means, member-specific hourly differences, and hourly reference-simulation fields.

The pairing depends on the experiment:

Filename scenario label Experiment difference represented
Scope1+2_Present Present-day Scope 1+2 heat experiment minus the corresponding baseline experiment.
Scope2_Present Present-day Scope 1+2 experiment minus the Scope 1 experiment, isolating the incremental Scope 2 effect.
Scope1+2_2030 2030-demand Scope 1+2 experiment minus the corresponding baseline experiment.

The original wrfout files required to rerun extraction are not included. The archived NetCDF files are a subset of the products that the extraction code can generate.

2. Impact_of_AH_DC.ipynb

This notebook analyzes the meteorological response and population exposure associated with data-center heat emissions. Its sections include maps of ensemble differences, statistical filtering, relationships between heat flux and temperature response, diurnal cycles, distance-dependent effects, population overlay and aggregation, comparisons between present-day and 2030-demand scenarios, and county-level heat-emission comparisons.

Statistical tests and warming criteria are specified within the individual analysis sections. Population analyses use the supplied 2020 population raster. Some sections additionally read original WRF fields, data-center information, or processed products that are not included in the current archive.

Supplied processed WRF products

Input_to_2. Impact_of_AH_DC.ipynb/ contains 54 NetCDF files, the population raster, and boundary shapefiles. The NetCDF inventory is:

Filename pattern Number of files Stored quantity
BASE_T2_{domain}.nc 3 Hourly baseline T2 for each ensemble member.
base_hourly_samples_WS_{domain}_Scope1+2_Present.nc 3 Hourly baseline 10-m wind speed for each member.
base_hourly_samples_PBLH_{domain}_Scope1+2_Present.nc 3 Hourly baseline PBLH for each member.
diff_ensmean_ΔT2_{domain}_{scenario}.nc 9 Hourly ensemble-mean T2 difference.
diff_ensmean_ΔTSK_{domain}_{scenario}.nc 9 Hourly ensemble-mean TSK difference.
diff_time_samples_ΔT2_{domain}_{scenario}.nc 9 Hourly paired T2 difference retained separately for each member.
diff_time_mean_samples_ΔRH_{domain}_{scenario}.nc 9 Full-period mean RH difference retained separately for each member.
diff_time_mean_samples_ΔWS_{domain}_{scenario}.nc 9 Full-period mean wind-speed difference retained separately for each member.

{domain} is CA, SC, or LA. For the difference products, {scenario} is Scope1+2_Present, Scope2_Present, or Scope1+2_2030.

The archived grids have the following dimensions, expressed as south_north × west_east:

Domain Grid spacing Grid dimensions
CA 4 km 291 × 252
SC 1 km 200 × 216
LA 1 km 200 × 216

Hourly products contain 744 time steps. Files retaining ensemble members have start_time = 8. Typical dimensions are Time × south_north × west_east for hourly ensemble means, start_time × Time × south_north × west_east for member-level hourly products, and start_time × south_north × west_east for member-level time means. Some inherited text descriptions refer to earlier ensemble sizes; the actual dimension lengths specify the stored data.

The principal stored variables are diff_ensmean, diff_hourly_samples, diff_time_mean_samples, base_hourly_samples, base_hourly_samples_WS, and base_hourly_samples_PBLH, depending on the file. Temperature differences have the same numerical magnitude in kelvin and degrees Celsius. Baseline T2 is in kelvin, RH differences are in percentage points, wind speed and its differences are in m s⁻¹, and PBLH is in metres. Some difference files omit the units attribute; these definitions follow the extraction code. Where calendar coordinates are absent or stored as integer indices, use the analysis-period settings in the notebooks to interpret time.

Population and boundary data

The same input folder also contains:

  • CAPOP_2020_100m_TOTAL.tif: 2020 California total-population raster on a 100-m grid in EPSG:3310, used for population aggregation and exposure analyses;
  • cb_2018_us_county_500k/: U.S. county boundary shapefile and companion files; and
  • cb_2018_us_state_500k/: U.S. state boundary shapefile and companion files.

California boundaries are selected from these boundary datasets during analysis. Keep the .shp, .shx, .dbf, and .prj files together when using or relocating a shapefile.

Using the archive

Run the relevant notebook sections in workflow order, after updating input paths, domain and scenario selections, analysis dates, and computing-system settings. Input folders are supplied separately from their notebooks, and the existing code does not automatically resolve every input relative to these folders.

The notebooks use Python scientific and geospatial packages, including NumPy, pandas, xarray, SciPy, Matplotlib, GeoPandas, netCDF4, rasterio, Shapely, pyproj, Cartopy, statsmodels, scikit-learn, and openpyxl. Additional packages are imported by individual plotting sections. Package versions are not pinned in an environment specification in this archive.

Reproducing the complete workflow requires the missing source inputs, a compatible modified WRF-SLUCM installation, and original simulation outputs for sections that read raw model fields. The current archive does not contain the two Excel inputs named above, generated hourly WRF heat-input directories, or all processed variables referenced by the analysis notebook. Review the dependencies of the selected analysis section before execution.

Files

Restricted

The record is publicly accessible, but files are restricted. Log in to check if you have access.