Skip to content
heimdallresearch.comSign inGet an API key

Storm Blackout and Restoration

All datasets · API reference · Dataset page on heimdallresearch.com

How long each county stayed dark after FEMA-declared hurricanes, tropical storms and winter storms in the United States, Puerto Rico and the U.S. Virgin Islands since 2012, and how quickly its night light returned, measured from NASA Black Marble daily satellite light readings.

Status: In preparation. Version 1.0 is estimated for October 2026, with storms from 2012 to 2017 first.

Themes weather, energy
Coverage FEMA-declared hurricanes, tropical storms and major winter storms; contiguous U.S., Puerto Rico, U.S. Virgin Islands
Period 2012 to present
Resolution County by day
Free updates Each new storm, four to six weeks after landfall
Paid updates Within days of landfall, for a named storm or every storm in your region
License CC-BY-4.0
Free Every declared storm at county level, as files and through the API and MCP server with a free key.
Paid A report for a named storm and area within days of landfall, or a regional subscription. See plans and prices.
Intended use Comparing how quickly places recovered after major storms, studying which communities waited longest, and giving resilience, insurance and emergency-management research a consistent record across storms and years.
Not intended for Counting customers without power, judging a single address or neighborhood, real-time response, or insurance claims on a single property.
Table One row per Fields
storms event_id 6
county_summary event_id, geoid 15
county_daily event_id, geoid, date 8

API: GET /v1/storms, GET /v1/storms/{event_id}, GET /v1/storms/{event_id}/counties/{fips}, GET /v1/storms/{event_id}/files. See the API reference.

MCP tools: get_storm, get_download_link. See Use it in your AI assistant.

Files: CSV and Parquet on Zenodo and Hugging Face, with datapackage.json, a Croissant file and SHA256SUMS, from the first release.

Each county in a storm’s declared area is compared night by night with its own normal light. The baseline is the median of clear, snow-free nights before the storm, leaving out nights affected by an earlier storm; when too few remain, the same weeks one year earlier are used and the row says so. After landfall each clear night is compared with the baseline, and recovery is counted from when light stays at or above half and nine-tenths of normal for three observed nights. Observation continues for up to 180 days.

Pixels flagged for cloud, poor quality or snow are excluded, and the number of usable nights travels with every value. Results are never reported below county level.

File storms.csv. One row per storm event.

One row per event_id.

Field Type Unit Description
event_id string NHC storm identifier or FEMA declaration number.
name string Storm name or declaration title.
kind string tropical, winter_storm, severe_ice_storm or snowstorm.
landfall date Landfall or incident start date.
states string Declared states, space separated. May be empty.
source string HURDAT2, NHC-ATCF-operational or OpenFEMA.

File county_summary.csv. One row per storm and county.

One row per event_id, geoid.

Field Type Unit Description
event_id string Storm event.
geoid string County FIPS code.
county string County name.
state string State or territory.
baseline_radiance number nW/cm²/sr Median pre-storm radiance.
baseline_nights integer Clear nights in the baseline.
baseline_source string event_window or prior_year.
post_obs_nights integer Clear nights observed after landfall.
median_valid_pixel_share number Median share of usable pixels after landfall.
days_to_50 integer days Days until light stayed at or above 50% of baseline. May be empty.
days_to_90 integer days Days until light stayed at or above 90% of baseline. May be empty.
censored boolean True if 90% recovery was not reached in the window.
censored_50 boolean True if 50% recovery was not reached in the window.
min_light_ratio number Lowest light ratio after landfall.
post_days_window integer days Length of the observation window.

File county_daily.csv. One row per storm, county and clear night.

One row per event_id, geoid, date.

Field Type Unit Description
event_id string Storm event.
date date Night of observation.
geoid string County FIPS code.
days_from_landfall integer days Days since landfall (negative before).
radiance_nw_cm2_sr number nW/cm²/sr County median radiance that night; empty when no usable pixels. May be empty.
valid_pixel_share number Share of usable pixels.
snow_excluded_share number Share of pixels excluded for snow.
light_ratio number Radiance divided by the county baseline; empty when not observed. May be empty.
  • Night light is related to electricity service but is not the same thing. Generators can restore light before the grid does, and damaged or empty buildings can stay dark after power returns.
  • Clouds and snow hide the ground. Counties with few clear nights carry a low observation count and a quality flag.
  • Moonlight, seasonal lighting and changes in how people use light shift readings. The product is corrected for moonlight, and each value is compared with the county’s own baseline.
  • Days to recovery are left blank and marked censored when recovery did not happen within the observation window.
Source Role Terms
NASA Black Marble VNP46A2 v2 (VIIRS on Suomi NPP), DOI 10.5067/VIIRS/VNP46A2.002 Measured night light, 2012 onward NASA open data; acknowledge and cite
NASA Black Marble VJ146A2 v2 (VIIRS on NOAA-20) Measured night light, 2018 onward NASA open data; acknowledge and cite
NOAA National Hurricane Center HURDAT2 and operational best tracks Storm timing and landfall Public domain
FEMA disaster declarations (OpenFEMA) Which storms and counties are included Public domain
U.S. Census Bureau cartographic boundary files County boundaries Public domain
EAGLE-I county outage records, Oak Ridge National Laboratory (DOI 10.6084/m9.figshare.24237376) Validation only CC BY 4.0

Required notices:

  • Night light data: NASA Black Marble (VNP46A2, VJ146A2), courtesy of NASA LAADS DAAC.

All datasets · API reference