← All datasets

One-time snapshot

NOAA Storm Events 1950–2024

Rebuilt storm-event snapshot with event-linked locations and fatalities, source provenance, and separate audit tables.

Snapshot coverage

Records: 1,940,615 events; linked locations and fatalities

Coverage: Events: 1950–2024; locations: 1972, 1996–2024

Format: CSV + Parquet

Package uploaded: 2026-09-19

Listing reviewed: 2026-09-19

The upload and review dates do not extend the source coverage. This is a dated snapshot; future updates are not included.

Get this snapshot

$79one time

CSV and Parquet files for the coverage described here. Review the limitations and sample before purchasing.

Buy dated snapshot

Commercial license terms

View 1,000-row sample

New annual update subscriptions are unavailable. Existing customers can use their purchase download links or contact support.

Known limitations

  • Join locations and fatalities to details by EVENT_ID, which is unique in the event table. Aggregate each child table separately before combining to avoid multiplying rows.
  • Use derived EVENT_YEAR and EVENT_EPISODE_ID for parent-event analysis. Original YEAR, YEARMONTH and EPISODE_ID values are retained: 92,268 primary location rows disagree on source year and 2,298 on source episode ID. These source inconsistencies are explicitly flagged, not overwritten.
  • The locations audit table retains 282,461 excluded rows: 20,817 linked to 2025 events outside this snapshot, 261,643 with missing coordinates, and one with invalid coordinates. Audit rows are not part of the primary location table; 2025 event details are not delivered.
  • Primary location coverage is sparse: two rows link to 1972 events, with other rows in 1996–2024. Complete latitude/longitude pairs pass numeric bounds checks, which do not establish geographic accuracy. Detail-table endpoint coordinates remain as supplied, with missing, incomplete or invalid values flagged.
  • TOR_LENGTH, BEGIN_RANGE, END_RANGE and TOR_WIDTH preserve source decimals. NOAA documents tornado width in whole yards, but 148 source values are fractional; these values are retained without assuming a corrected unit.
  • Event types and reporting practices vary over the historical period. The archive is not a complete or uniform history of all weather hazards; long-term comparisons need source-specific qualification.
  • Damage amounts are parsed nominal USD estimates, not inflation-adjusted losses. Derived damage, injury and death totals treat missing components as zero; a zero total does not prove no loss or harm.
  • This is a dated 1950–2024 event snapshot rebuilt from pinned source revisions. Future updates are not included.

Files in this snapshot

Row counts are per table and should not be added as independent events. Expand a file to see its delivered Parquet field names and types.

noaa_storm_events_details.parquet — 1,940,615 rows · 63 fields
FieldType
BEGIN_YEARMONTHstring
BEGIN_DAYstring
BEGIN_TIMEstring
END_YEARMONTHstring
END_DAYstring
END_TIMEstring
EPISODE_IDint64
EVENT_IDint64
STATEstring
STATE_FIPSint64
YEARint64
MONTH_NAMEstring
EVENT_TYPEstring
CZ_TYPEstring
CZ_FIPSint64
CZ_NAMEstring
WFOstring
BEGIN_DATE_TIMEstring
CZ_TIMEZONEstring
END_DATE_TIMEstring
INJURIES_DIRECTint64
INJURIES_INDIRECTint64
DEATHS_DIRECTint64
DEATHS_INDIRECTint64
DAMAGE_PROPERTYstring
DAMAGE_CROPSstring
SOURCEstring
MAGNITUDEdouble
MAGNITUDE_TYPEstring
FLOOD_CAUSEstring
CATEGORYstring
TOR_F_SCALEstring
TOR_LENGTHdouble
TOR_WIDTHdouble
TOR_OTHER_WFOstring
TOR_OTHER_CZ_STATEstring
TOR_OTHER_CZ_FIPSstring
TOR_OTHER_CZ_NAMEstring
BEGIN_RANGEdouble
BEGIN_AZIMUTHstring
BEGIN_LOCATIONstring
END_RANGEdouble
END_AZIMUTHstring
END_LOCATIONstring
BEGIN_LATdouble
BEGIN_LONdouble
END_LATdouble
END_LONdouble
EPISODE_NARRATIVEstring
EVENT_NARRATIVEstring
DATA_SOURCEstring
SOURCE_FILEstring
SOURCE_YEARint64
SOURCE_ROWint64
DAMAGE_PROPERTY_USDdouble
DAMAGE_CROPS_USDdouble
TOTAL_DAMAGE_USDdouble
BEGIN_DATEstring
END_DATEstring
INJURIES_TOTALint64
DEATHS_TOTALint64
BEGIN_COORDINATE_STATUSstring
END_COORDINATE_STATUSstring
noaa_storm_events_locations.parquet — 1,465,798 rows · 21 fields
FieldType
YEARMONTHstring
EPISODE_IDint64
EVENT_IDint64
LOCATION_INDEXint64
RANGEstring
AZIMUTHstring
LOCATIONstring
LATITUDEstring
LONGITUDEstring
LAT2double
LON2double
YEARstring
SOURCE_FILEstring
SOURCE_YEARint64
SOURCE_ROWint64
EVENT_YEARint64
EVENT_EPISODE_IDint64
SOURCE_YEAR_MISMATCHbool
SOURCE_EPISODE_MISMATCHbool
SOURCE_YEARMONTH_MISMATCHbool
COORDINATE_STATUSstring
noaa_storm_events_fatalities.parquet — 23,766 rows · 17 fields
FieldType
FAT_YEARMONTHstring
FAT_DAYstring
FAT_TIMEstring
FATALITY_IDint64
EVENT_IDint64
FATALITY_TYPEstring
FATALITY_DATEstring
FATALITY_AGEint64
FATALITY_SEXstring
FATALITY_LOCATIONstring
YEARstring
SOURCE_FILEstring
SOURCE_YEARint64
SOURCE_ROWint64
EVENT_YEARint64
EVENT_EPISODE_IDint64
SOURCE_YEAR_MISMATCHbool
noaa_storm_events_locations_audit.parquet — 282,461 rows · 22 fields
FieldType
YEARMONTHstring
EPISODE_IDint64
EVENT_IDint64
LOCATION_INDEXint64
RANGEstring
AZIMUTHstring
LOCATIONstring
LATITUDEstring
LONGITUDEstring
LAT2double
LON2double
YEARstring
SOURCE_FILEstring
SOURCE_YEARint64
SOURCE_ROWint64
EVENT_YEARint64
EVENT_EPISODE_IDint64
SOURCE_YEAR_MISMATCHbool
SOURCE_EPISODE_MISMATCHbool
SOURCE_YEARMONTH_MISMATCHbool
COORDINATE_STATUSstring
EXCLUSION_REASONstring
noaa_storm_events_fatalities_audit.parquet — 0 rows · 18 fields
FieldType
FAT_YEARMONTHstring
FAT_DAYstring
FAT_TIMEstring
FATALITY_IDint64
EVENT_IDint64
FATALITY_TYPEstring
FATALITY_DATEstring
FATALITY_AGEint64
FATALITY_SEXstring
FATALITY_LOCATIONstring
YEARstring
SOURCE_FILEstring
SOURCE_YEARint64
SOURCE_ROWint64
EVENT_YEARint64
EVENT_EPISODE_IDint64
SOURCE_YEAR_MISMATCHbool
EXCLUSION_REASONstring

Inspect the public CSV

import pandas as pd

df = pd.read_csv(
    "https://huggingface.co/datasets/claritystorm/noaa-storm-events/resolve/main/sample_1000.csv"
)
print(df.shape)
print(df.columns.tolist())
print(df.head())

This CSV is a sample, not the full package. It does not establish complete historical coverage or represent every field’s missingness. License details are on the Hugging Face card.

Source: government source portal · Dataset changelog