Microproduct data guideintermediate

NOAA Storm Events Database

National Weather Service storm reports for building U.S. severe-weather history, loss, and event-type analysis tools.

At a glance

Difficulty
Intermediate — some data preparation helps
Size
Medium · 0.01–2 GB
Formats
CSV
Access
Download
API key
Not required
Provider
NOAA National Centers for Environmental Information
Updates
Monthly

From source to product signal

Test a product idea in four steps

Storm Events publishes yearly details, locations, and fatalities CSVs. Start with one recent details file, not the full 1950-present archive. Reports are NWS-entered events, so counts are not a complete census of every storm and damage figures can be estimated.

1

Check the setup

  • Python 3.10 or newer
  • A notebook environment such as Jupyter or Google Colab
  • An internet connection
2

Access the data

  1. 1.Open the bulk-download page and the directory of yearly CSV files.
  2. 2.Choose the latest details file for one year from the directory listing.
  3. 3.Read a bounded row sample instead of concatenating every historical year.
Open official source
3

Run the Python example

Install the packages, then run the notebook cell.

python -m pip install pandas requests

import gzip
import re
from io import BytesIO

import pandas as pd
import requests

listing = requests.get(
    "https://www.ncei.noaa.gov/pub/data/swdi/stormevents/csvfiles/",
    timeout=30,
)
listing.raise_for_status()
names = re.findall(
    r'href="(StormEvents_details-ftp_v1.0_d2025_c\d+\.csv\.gz)"',
    listing.text,
)
filename = sorted(names)[-1]
archive = requests.get(
    "https://www.ncei.noaa.gov/pub/data/swdi/stormevents/csvfiles/"
    + filename,
    timeout=120,
)
archive.raise_for_status()
events = pd.read_csv(
    BytesIO(gzip.decompress(archive.content)),
    nrows=200,
    low_memory=False,
)
print(events[["EVENT_ID", "STATE", "EVENT_TYPE", "BEGIN_DATE_TIME"]].head())
4

Test a useful signal

Count 2025 storm-event types in a bounded sample

Test whether one yearly details file can power a local hazard-history table.

  1. 01Keep event ID, state, event type, and begin time from the first 200 rows.
  2. 02Count event types and flag missing states before ranking hazards.
  3. 03Explain that Storm Events is a reported-event archive, not a complete storm census.

Dataset details

NOAA National Centers for Environmental Information is a government source. Last verified 2026-08-18. Temporal coverage: 1950-present.

Theme

Environment & Hazards

Domains

WeatherNatural HazardsEmergency Management

Data types

Event DataTabular

Tasks

Event AnalysisLoss AnalysisGeographic Analysis

Geography

United States

Formats

CSV

Provider

NOAA National Centers for Environmental Information

Data terms

U.S. Government public data / federal copyright guidance