Data from: Modeling population vulnerabilities to climate change-driven hurricanes and tropical storms in the North Atlantic Basin
Data files
Sep 22, 2026 version files 36.02 GB
-
hurricane_category_1_block_attributes_no_geometry_per_100k.csv
1.10 GB
-
hurricane_category_1_blocks_FULL_for_AGOL_per_100k.gpkg
2.39 GB
-
hurricane_category_1_blocks_SIMPLIFIED_for_AGOL_per_100k.gpkg
2.39 GB
-
hurricane_category_1_summary_by_risk_class_per_100k.csv
1.41 KB
-
hurricane_category_1_summary_per_100k.csv
491.16 MB
-
hurricane_category_1_tract_OVERVIEW_for_AGOL_per_100k.gpkg
27.30 MB
-
hurricane_category_2_block_attributes_no_geometry_per_100k.csv
1.10 GB
-
hurricane_category_2_blocks_FULL_for_AGOL_per_100k.gpkg
2.39 GB
-
hurricane_category_2_blocks_SIMPLIFIED_for_AGOL_per_100k.gpkg
2.38 GB
-
hurricane_category_2_summary_by_risk_class_per_100k.csv
1.26 KB
-
hurricane_category_2_summary_per_100k.csv
482.86 MB
-
hurricane_category_2_tract_OVERVIEW_for_AGOL_per_100k.gpkg
27.22 MB
-
hurricane_category_3_block_attributes_no_geometry_per_100k.csv
1.11 GB
-
hurricane_category_3_blocks_FULL_for_AGOL_per_100k.gpkg
2.40 GB
-
hurricane_category_3_blocks_SIMPLIFIED_for_AGOL_per_100k.gpkg
2.39 GB
-
hurricane_category_3_summary_by_risk_class_per_100k.csv
1.43 KB
-
hurricane_category_3_summary_per_100k.csv
504.21 MB
-
hurricane_category_3_tract_OVERVIEW_for_AGOL_per_100k.gpkg
27.48 MB
-
hurricane_category_4_block_attributes_no_geometry_per_100k.csv
1.10 GB
-
hurricane_category_4_blocks_FULL_for_AGOL_per_100k.gpkg
2.39 GB
-
hurricane_category_4_blocks_SIMPLIFIED_for_AGOL_per_100k.gpkg
2.38 GB
-
hurricane_category_4_summary_by_risk_class_per_100k.csv
1.31 KB
-
hurricane_category_4_summary_per_100k.csv
494.72 MB
-
hurricane_category_4_tract_OVERVIEW_for_AGOL_per_100k.gpkg
27.25 MB
-
hurricane_category_5_block_attributes_no_geometry_per_100k.csv
1.10 GB
-
hurricane_category_5_blocks_FULL_for_AGOL_per_100k.gpkg
2.39 GB
-
hurricane_category_5_blocks_SIMPLIFIED_for_AGOL_per_100k.gpkg
2.39 GB
-
hurricane_category_5_summary_by_risk_class_per_100k.csv
1.44 KB
-
hurricane_category_5_summary_per_100k.csv
479.30 MB
-
hurricane_category_5_tract_OVERVIEW_for_AGOL_per_100k.gpkg
27.40 MB
-
hurricane_tropical_storm_block_attributes_no_geometry_per_100k.csv
1.10 GB
-
hurricane_tropical_storm_blocks_SIMPLIFIED_for_AGOL_per_100k.gpkg
2.39 GB
-
hurricane_tropical_storm_summary_by_risk_class_per_100k.csv
1.32 KB
-
hurricane_tropical_storm_summary_per_100k.csv
507.77 MB
-
hurricane_tropical_storm_tract_OVERVIEW_for_AGOL_per_100k.gpkg
27.18 MB
-
README.md
38.49 KB
Abstract
Hurricanes and tropical storms are among the deadliest and costliest disasters in the United States, and climate change is expected to make the strongest storms more frequent. Knowing which communities are most likely to suffer deaths during a storm helps officials plan evacuations, strengthen buildings, and direct help where it is needed most. We combined records from twenty-four of the most damaging storms to strike the United States, Puerto Rico, and the U.S. Virgin Islands since 1992 with detailed information about the people living within 25 miles of the coast. For each storm, we measured rainfall, wind, and flooding, described the makeup of every neighborhood, and used a computer-learning method to estimate how at risk each small area would be. We then grouped storms by strength to map where danger is greatest for each storm category. Risk was highest in densely populated coastal cities and in low-lying inlets, peninsulas, and sounds, and it grew as storms strengthened. These maps are available in a public, interactive online dashboard so that residents, planners, and emergency managers can explore local risk and prepare before the next storm.
This dataset contains the derived, block-level mortality risk surfaces that underlie The Hurricane Dashboard (https://www.hurricanedashboard.org) and the associated manuscript, "Modeling Population Vulnerabilities to Climate Change-Driven Hurricanes and Tropical Storms in the North Atlantic Basin."
Storm-specific boosted-tree models were trained on 23 of the deadliest and costliest North Atlantic tropical cyclones to make U.S. landfall between 1992 and 2024, using NOAA hazard surfaces (wind swath, rainfall, storm-surge inundation) together with 2020 Decennial Census demographic, American Community Survey socioeconomic, and CDC/ATSDR Social Vulnerability Index covariates. Each model predicts population-standardized mortality for every U.S. census block within 25 miles of the Atlantic or Gulf coast, including Puerto Rico and the U.S. Virgin Islands. Block-level predictions were then averaged within Saffir–Simpson tiers to produce six category-level risk surfaces (tropical storm and Categories 1–5).
What is in this deposit: six category-level surfaces, each published in five or six files — one non-spatial attribute table (CSV), two summary tables (CSV), and two or three GeoPackages carrying the same attributes joined to census block or census tract geometry. The GeoPackages are the map layers served by the dashboard and are ready to load in ArcGIS Pro, ArcGIS Online, QGIS, R (sf), or Python (geopandas).
Important framing: this is an ecological (population-level) study. Values are modeled mortality risk for a hypothetical storm of a given Saffir–Simpson category, not observed deaths, and they support no individual-level causal inference. See "Known issues and caveats" before reuse.
Description of the data and file structure
Directory layout
hurricane/
├── tropical_storm/
├── category_1/
├── category_2/
├── category_3/
├── category_4/
└── category_5/
Each folder holds the files for one Saffir–Simpson tier. File names follow the pattern:
hurricane_<TIER>_<CONTENT>_per_100k.<ext>
where <TIER> is tropical_storm or category_1 … category_5. The per_100k suffix indicates that the primary display field is expressed per 100,000 population; raw and per-10,000 versions of the same quantity are also carried in every file.
Files in each tier folder
| File | Format | Approx. size | Contents |
|---|---|---|---|
hurricane_<TIER>_block_attributes_no_geometry_per_100k.csv |
CSV | ~1.0 GB | One row per census block. All 89 attribute fields, no geometry. Join to Census TIGER/Line 2020 blocks on GEOID20. |
hurricane_<TIER>_blocks_FULL_for_AGOL_per_100k.gpkg |
GeoPackage | ~2.2 GB | One feature per census block, full-resolution TIGER/Line geometry, same attributes as the CSV. |
hurricane_<TIER>_blocks_SIMPLIFIED_for_AGOL_per_100k.gpkg |
GeoPackage | ~2.2 GB | One feature per census block, generalized geometry for web rendering, same attributes. |
hurricane_<TIER>_tract_OVERVIEW_for_AGOL_per_100k.gpkg |
GeoPackage | ~26 MB | One feature per census tract — block predictions aggregated to tract level with distributional summaries. The zoomed-out dashboard layer. |
hurricane_<TIER>_summary_per_100k.csv |
CSV | ~460–485 MB | Tier-wide distributional summary of block predictions (min, mean, median, max, p75/p90/p95/p99) in three unit scales. |
hurricane_<TIER>_summary_by_risk_class_per_100k.csv |
CSV | ~1.4 KB | The same distributional summary broken out by the five risk classes. Five rows. |
tropical_storm/ contains five files rather than six; no _blocks_FULL_ GeoPackage was produced for that tier. The _tilework/ folder in the source directory is an empty build-scratch directory for the dashboard's PMTiles pipeline and is not part of the deposit.
Spatial reference and extent
- Coordinate reference system: NAD83 geographic (EPSG:4269), inherited from the Census TIGER/Line source geometry. Geometry type is
MULTIPOLYGONin all GeoPackages. - Geometry source: Census TIGER/Line 2020 tabulation blocks, 2024 vintage files (
tl_2024_<ss>_tabblock20), recorded per record inMERGE_SRC. - Extent: census blocks whose centroid falls within 25 miles of the U.S. Atlantic or Gulf coastline, in the coastal states from Texas through Maine, plus Puerto Rico and the U.S. Virgin Islands.
- Row count: approximately 1,186,384 blocks per tier. The block universe is identical across the six tiers; only the predicted values change, so the files can be stacked or joined tier-to-tier on
GEOID20.
Relationship between the files
All six files in a tier describe the same underlying prediction. The block attributes CSV and the two block GeoPackages are the same table (the GeoPackages add geometry and a fid primary key). The tract overview GeoPackage is that table aggregated to census tracts. The two summary CSVs are descriptive statistics computed over the block table — they contain no new information and are provided so that legend breaks and map scaling can be reproduced without reading the full 1 GB table.
Missing data and value conventions
- Missing values are the literal string
NAin the CSVs and SQLNULLin the GeoPackages. - FIPS-derived identifiers (
STATEFP20,COUNTYFP20,TRACTCE20,BLOCKCE20,GEOID20,tract_id,county_fips,state_fips,JOIN_DIGITS,geoid_for_fips) are text, not numeric — leading zeros are significant and will be destroyed if the CSVs are opened in a spreadsheet application with default type inference. Read them with explicit character types (readr::read_csv(col_types = ...)in R,dtype=strin pandas). - Mortality fields are carried in three parallel unit scales throughout: unsuffixed (population-standardized deaths per person),
_per_10k(× 10,000), and_per_100k(× 100,000).mortality_display_unitsrecords which scale the dashboard renders; in this release it is"per 100,000"for every record. risk_class/risk_quantileare quintiles of the within-tier distribution ofavg_mortality_clean:1 = Very Low,2 = Low,3 = Moderate,4 = High,5 = Very High. Because they are quintiles, each class holds roughly one-fifth of blocks within a tier; classes are not comparable across tiers as absolute risk levels.
Data dictionary
1. hurricane_<TIER>_block_attributes_no_geometry_per_100k.csv — 89 fields
The two block GeoPackages carry these same 89 fields, preceded by fid (integer primary key) and geom (MULTIPOLYGON geometry).
Identifiers and place labels
| # | Field | Type | Definition |
|---|---|---|---|
| 1 | dashboard_row_id |
text | Unique row key for the dashboard: <GEOID20>_<Storm_Category> with spaces replaced by underscores. |
| 2 | block_dashboard_id |
text | 15-digit census block GEOID used as the dashboard's block key. Equal to GEOID20. |
| 3 | tract_id |
text | 11-digit census tract GEOID (state + county + tract). |
| 4 | county_fips |
text | 5-digit county/county-equivalent FIPS code. |
| 5 | state_fips |
text | 2-digit state/territory FIPS code. |
| 6 | state_name |
text | Full state or territory name. |
| 7 | state_abbr |
text | Two-letter USPS state or territory abbreviation. |
| 8 | county_equiv_name |
text | County, parish, municipio, or island-area name. |
| 9 | county_equiv_type |
text | Type of the county-equivalent unit (e.g., "County or county-equivalent"). |
| 10 | place_label |
text | Human-readable label used in dashboard tooltips, "<county_equiv_name>, <state_abbr>". |
Storm tier
| # | Field | Type | Definition |
|---|---|---|---|
| 11 | Storm_Category |
text | Saffir–Simpson tier of this surface: Tropical Storm, Category 1 … Category 5. |
| 12 | category_order |
numeric | Ordinal rank of the tier for sorting and symbology (tropical storm = 0, Category 1–5 = 1–5). |
| 13 | short_label |
text | Compact tier label used in the dashboard UI (TS, Cat1 … Cat5). |
| 14 | mortality_field |
text | Name of the source field from which this surface was built (ts_avg_mort, cat_1_avg_mort … cat_5_avg_mort). Provenance pointer to fields 83–88. |
Predicted mortality and risk classification
| # | Field | Type | Definition |
|---|---|---|---|
| 15 | avg_mortality |
numeric | Primary model output. Mean of the storm-specific boosted-tree predictions across all storms in this tier, expressed as population-standardized deaths per person per block. May be negative — see caveats. |
| 16 | avg_mortality_clean |
numeric | avg_mortality with negative predictions floored at zero. This is the field used for mapping and for the risk-class quintiles. |
| 17 | avg_mortality_per_100k |
numeric | avg_mortality_clean × 100,000 — predicted deaths per 100,000 population. |
| 18 | avg_mortality_per_10k |
numeric | avg_mortality_clean × 10,000 — predicted deaths per 10,000 population. |
| 19 | mortality_display_value |
numeric | The value shown in dashboard tooltips, in the units named by mortality_display_units. |
| 20 | mortality_display_units |
text | Unit label for mortality_display_value; "per 100,000" throughout this release. |
| 21 | map_value |
numeric | Value driving the choropleth fill, raw scale. Equal to avg_mortality_clean in this release. |
| 22 | map_value_per_100k |
numeric | map_value × 100,000. |
| 23 | map_value_per_10k |
numeric | map_value × 10,000. |
| 24 | risk_class |
text | Quintile label of avg_mortality_clean within this tier: Very Low, Low, Moderate, High, Very High. |
| 25 | risk_quantile |
integer | Numeric form of risk_class, 1 (Very Low) through 5 (Very High). |
Census TIGER/Line 2020 block attributes
Fields 26–43 are carried through unmodified from the Census TIGER/Line 2020 tabulation-block files; consult the Census TIGER/Line technical documentation for authoritative definitions.
| # | Field | Type | Definition |
|---|---|---|---|
| 26 | JOIN_DIGITS |
text | 15-digit block GEOID used as the join key during table assembly. Equal to GEOID20. |
| 27 | STATEFP20 |
text | 2020 state FIPS code. |
| 28 | COUNTYFP20 |
text | 2020 county FIPS code (3 digits, within state). |
| 29 | TRACTCE20 |
text | 2020 census tract code (6 digits, within county). |
| 30 | BLOCKCE20 |
text | 2020 census block code (4 digits, within tract). |
| 31 | GEOID20 |
text | 15-digit 2020 census block identifier (state + county + tract + block). Primary join key to external Census products. |
| 32 | GEOIDFQ20 |
text | Fully qualified Census GEOID, e.g. 1000000US230299557001037. |
| 33 | NAME20 |
text | Census block name, e.g. Block1037. |
| 34 | MTFCC20 |
text | MAF/TIGER Feature Class Code; G5040 for tabulation blocks. |
| 35 | UR20 |
text | 2020 urban/rural indicator: U = urban, R = rural. |
| 36 | UACE20 |
text | 2020 urban area code, NA for rural blocks. |
| 37 | FUNCSTAT20 |
text | Census functional status code (S = statistical entity). |
| 38 | ALAND20 |
numeric | Land area of the block, square meters. |
| 39 | AWATER20 |
numeric | Water area of the block, square meters. |
| 40 | INTPTLAT20 |
text | Latitude of the block's internal point, signed decimal degrees, zero-padded string. |
| 41 | INTPTLON20 |
text | Longitude of the block's internal point, signed decimal degrees, zero-padded string. |
| 42 | HOUSING20 |
integer | 2020 Census housing unit count for the block. |
| 43 | POP20 |
integer | 2020 Census total population count for the block. |
Assembly and quality-control fields
These fields record how the block table was built. They are retained for transparency and reproducibility and are generally not needed for reuse.
| # | Field | Type | Definition |
|---|---|---|---|
| 44 | MERGE_SRC |
text | Source TIGER/Line shapefile the geometry came from, e.g. tl_2024_23_tabblock20. |
| 45 | MERGE_SRC_ |
text | Secondary merge-provenance field from the ArcGIS Pro merge; largely NA. |
| 46 | MERGE_SRC1 |
text | Secondary merge-provenance field; largely NA. |
| 47 | MERGE_SR_1 |
text | Secondary merge-provenance field; largely NA. |
| 48 | Shape_Leng |
numeric | Perimeter of the block polygon in CRS units (decimal degrees), from ArcGIS Pro. |
| 49 | Shape_Area |
numeric | Area of the block polygon in CRS units (square decimal degrees), from ArcGIS Pro. Not a valid area measure — use area_miles or ALAND20. |
| 50 | area_miles |
numeric | Block area in square miles, computed on a projected surface. |
| 51 | UATYPE20 |
text | 2020 urban area type code; NA for rural blocks. |
| 52 | POP20pd |
numeric | Population density, POP20 per square mile. |
| 53 | popfinal |
numeric | Population value used in model fitting after reconciliation of Census and interpolated counts. |
| 54 | popfinalup |
numeric | Upper-bound / updated variant of popfinal used in sensitivity checks. |
| 55 | STATE_CHECK |
text | State FIPS re-derived from GEOID20 as a QC check against STATEFP20. |
Aggregate model outputs
| # | Field | Type | Definition |
|---|---|---|---|
| 56 | avg_pred_boosted_weighted |
numeric | Population-weighted mean of the boosted-tree predictions across all 23 storms, all tiers pooled. |
| 57 | cdr_pred_weighted |
numeric | Predicted crude death rate, population-weighted. |
| 58 | cdr_pred_notweighted |
numeric | Predicted crude death rate, unweighted. |
Per-storm predictions (fields 59–82)
One field per fitted storm model, giving that model's predicted population-standardized mortality for the block, on the raw (per-person) scale. These are the inputs averaged into the tier surfaces.
| # | Field | Storm |
|---|---|---|
| 59 | adjusted_deathsallison_pred |
Tropical Storm Allison (2001) |
| 60 | adjusted_deathlee_pred |
Tropical Storm Lee (2011) |
| 61 | adjusted_deathberyl_pred |
Hurricane Beryl (2024) |
| 62 | adjusted_deathflorence_pred |
Hurricane Florence (2018) |
| 63 | adjusted_deathirenepr_pred |
Hurricane Irene (2011), Puerto Rico |
| 64 | adjusted_deathmatthew_pred |
Hurricane Matthew (2016) |
| 65 | adjusted_deathsandy_pred |
Hurricane Sandy (2012) |
| 66 | adjusted_deathfloyd_pred |
Hurricane Floyd (1999) |
| 67 | adjusted_deathfrances_pred |
Hurricane Frances (2004) |
| 68 | adjusted_deathfrances_pred_2 |
Hurricane Frances (2004), second model run — see caveats |
| 69 | adjusted_deathgeorges_pred |
Hurricane Georges (1998) |
| 70 | adjusted_deathike_pred |
Hurricane Ike (2008) |
| 71 | adjusted_deathsally_pred |
Hurricane Sally (2020) |
| 72 | adjusted_deathivan_pred |
Hurricane Ivan (2004) |
| 73 | adjusted_deathkatrina_pred |
Hurricane Katrina (2005) |
| 74 | adjusted_deathrita_pred |
Hurricane Rita (2005) |
| 75 | adjusted_deathwilma_pred |
Hurricane Wilma (2005) |
| 76 | adjusted_deathharvey_use_pred |
Hurricane Harvey (2017) |
| 77 | adjusted_death_ian_pred |
Hurricane Ian (2022) |
| 78 | adjusted_deathida_pred |
Hurricane Ida (2021) |
| 79 | adjusted_deathirmaprusvi_pred |
Hurricane Irma (2017), Puerto Rico and U.S. Virgin Islands |
| 80 | adjusted_deathmariapr_pred |
Hurricane Maria (2017), Puerto Rico |
| 81 | adjusted_deathsandrew_pred |
Hurricane Andrew (1992) |
| 82 | adjusted_deathsmichael_pred |
Hurricane Michael (2018) |
Landfall date, minimum central pressure, maximum sustained wind, landfall coordinates, and the Saffir–Simpson category assigned to each storm are given in Table 2A of the associated manuscript.
Tier-averaged surfaces and final key
| # | Field | Type | Definition |
|---|---|---|---|
| 83 | cat_1_avg_mort |
numeric | Mean of the per-storm predictions for storms assigned to Category 1. |
| 84 | cat_2_avg_mort |
numeric | Mean of the per-storm predictions for storms assigned to Category 2. |
| 85 | cat_3_avg_mort |
numeric | Mean of the per-storm predictions for storms assigned to Category 3. |
| 86 | cat_4_avg_mort |
numeric | Mean of the per-storm predictions for storms assigned to Category 4. |
| 87 | cat_5_avg_mort |
numeric | Mean of the per-storm predictions for storms assigned to Category 5. |
| 88 | ts_avg_mort |
numeric | Mean of the per-storm predictions for the tropical storm tier. |
| 89 | geoid_for_fips |
text | 15-digit block GEOID retained as a trailing join key for FIPS-based lookups. Equal to GEOID20. |
All six tier fields (83–88) are present in every file; the one matching the folder's tier is the field copied into avg_mortality, as recorded in mortality_field. This makes any single file sufficient to compare a block's risk across all six tiers.
2. hurricane_<TIER>_tract_OVERVIEW_for_AGOL_per_100k.gpkg
One feature per census tract. Layer name: hurricane_<TIER>_tract_OVERVIEW_per_100k.
| Field | Type | Definition |
|---|---|---|
fid |
integer | GeoPackage primary key. |
geom |
MULTIPOLYGON | Census tract geometry, NAD83 (EPSG:4269). |
tract_id, county_fips, state_fips, state_name, state_abbr, county_equiv_name, county_equiv_type, place_label |
text | Tract identifiers and labels, as defined above. |
Storm_Category, category_order, short_label, mortality_field |
text / numeric | Tier identification, as defined above. |
n_blocks |
integer | Number of census blocks in the tract contributing to the aggregate. |
n_nonmissing |
integer | Number of those blocks with a non-missing prediction. |
map_value, map_value_per_100k, map_value_per_10k |
numeric | Tract-level value driving the choropleth, in three unit scales. |
mortality_display_value, mortality_display_units |
numeric / text | Tooltip value and its unit label. |
risk_class, risk_quantile |
text / integer | Tract-level risk quintile, defined as for blocks. |
min_mortality, mean_mortality, median_mortality, p75_mortality, p90_mortality, p95_mortality, p99_mortality, max_mortality |
numeric | Distribution of block-level predictions within the tract, raw scale. |
min_mortality_per_100k … max_mortality_per_100k |
numeric | The same eight statistics × 100,000. |
min_mortality_per_10k … max_mortality_per_10k |
numeric | The same eight statistics × 10,000. |
3. hurricane_<TIER>_summary_per_100k.csv — 31 fields
Tier-wide distributional summary of the block-level predictions.
| Field | Type | Definition |
|---|---|---|
Storm_Category, category_order, short_label, mortality_field |
text / numeric | Tier identification, as defined above. |
mortality_display_units |
text | Unit label for the dashboard display scale. |
n_blocks |
integer | Number of census blocks in the tier (~1,186,384). |
n_nonmissing |
integer | Number of those blocks with a non-missing prediction. |
min_mortality, mean_mortality, median_mortality, max_mortality, p75_mortality, p90_mortality, p95_mortality, p99_mortality |
numeric | Distribution of block-level predictions, raw scale. |
min_mortality_per_100k … p99_mortality_per_100k |
numeric | The same eight statistics × 100,000. |
min_mortality_per_10k … p99_mortality_per_10k |
numeric | The same eight statistics × 10,000. |
4. hurricane_<TIER>_summary_by_risk_class_per_100k.csv — 20 fields, 5 rows
The same summary, computed separately within each of the five risk classes. Fields are as in file 3, with risk_class and risk_quantile added and mortality_field and all percentile columns omitted:
| Field | Type | Definition |
|---|---|---|
risk_class |
text | Very Low, Low, Moderate, High, or Very High. |
risk_quantile |
integer | 1–5, matching risk_class. |
n_blocks, n_nonmissing |
integer | Block counts within the class (approximately one-fifth of the tier each, by construction). |
min_mortality, mean_mortality, median_mortality, max_mortality and their _per_100k / _per_10k variants |
numeric | Distribution within the class. |
These five rows are the authoritative source for the dashboard's legend breaks: the min_mortality_per_100k and max_mortality_per_100k of each class define the class boundaries.
Known issues and caveats
Please read before reuse.
- Negative predicted values. Boosted-tree predictions are unconstrained and a substantial share of low-risk blocks receive small negative values in
avg_mortalityand in the per-storm prediction fields.avg_mortality_cleanfloors these at zero and is the field that should be used for mapping, classification, and any downstream summary.avg_mortalityis retained unmodified for transparency. - Modeled, not observed. Every mortality field in this dataset is a model prediction for a hypothetical storm of the given category, not a count of deaths. Observed mortality came from NOAA and NWS sources and is known to underestimate true excess deaths, particularly indirect and delayed mortality; that bias propagates into these predictions.
- Duplicated Frances field.
adjusted_deathfrances_predandadjusted_deathfrances_pred_2both correspond to Hurricane Frances (2004) and are valid. summary_per_100k.csvis highly redundant. These files are ~460–485 MB but contain a single tier-level summary record repeated once per block. Any single row is sufficient; thesummary_by_risk_classfile carries the same information in 1.4 KB. The full-length version is deposited unmodified so that it matches what the dashboard pipeline consumed.- No
_blocks_FULL_GeoPackage for the tropical storm tier. Usehurricane_tropical_storm_blocks_SIMPLIFIED_for_AGOL_per_100k.gpkg, or rejoinhurricane_tropical_storm_block_attributes_no_geometry_per_100k.csvto TIGER/Line 2020 blocks onGEOID20for full-resolution geometry. - Simplified geometry is for display. The
_SIMPLIFIED_layers are generalized for web rendering. Do not use them for area calculations, overlay analysis, or any measurement; use the_FULL_layers orALAND20/area_miles. - Risk classes are within-tier quintiles. A "Very High" block in the tropical storm surface and a "Very High" block in the Category 5 surface are not at comparable absolute risk. Compare the continuous
*_per_100kfields across tiers, not the class labels. - Ecological inference. All results are population-level at block resolution. They do not support inference about individual risk, and block-level associations should not be read as individual-level effects.
- Small-population blocks. Rates per 100,000 computed on blocks with very small populations are unstable and produce the extreme upper tail visible in the summary files (e.g., a maximum of ~13,996 per 100,000 in the Category 5 tier against a median of ~34). Filter on
POP20orpopfinalbefore mapping rates. - Leading zeros. See "Missing data and value conventions" above — read all FIPS-derived fields as text.
Sharing/Access information
Links to other publicly accessible locations of the data:
- Interactive dashboard: https://www.hurricanedashboard.org
- Preprint: Mullins S, Uelmen J. Modeling Population Vulnerabilities to Climate Change-Driven Hurricanes and Tropical Storms in the North Atlantic Basin. medRxiv. https://www.medrxiv.org/content/10.64898/2026.08.16.26360517v1
- Analysis code and the dashboard build pipeline are archived alongside these files in this same Dryad deposit (see Code/Software below)
Data were derived from the following sources:
- NOAA National Hurricane Center, Tropical Cyclone Reports and Data Archive — storm tracks, landfall parameters, wind swaths, rainfall, storm-surge inundation, and reported mortality: https://www.nhc.noaa.gov/data/
- NOAA National Centers for Environmental Information — costliest and deadliest U.S. tropical cyclone tabulations: https://www.ncei.noaa.gov/
- NOAA National Weather Service Storm Events Database: https://www.ncdc.noaa.gov/stormevents/
- U.S. Census Bureau, 2020 Decennial Census, Demographic and Housing Characteristics file: https://data.census.gov/
- U.S. Census Bureau, American Community Survey (2020 and 2023): https://www.census.gov/programs-surveys/acs
- U.S. Census Bureau, TIGER/Line Shapefiles, 2020 tabulation blocks (2024 vintage): https://www.census.gov/geographies/mapping-files/time-series/geo/tiger-line-file.html
- CDC/ATSDR Social Vulnerability Index, 2022: https://www.atsdr.cdc.gov/place-health/php/svi/
- U.S. Bureau of Economic Analysis / Bureau of Labor Statistics, county-level GDP, 2001–2023: https://www.bea.gov/data/gdp/gdp-county-metro-and-other-areas
Methods
Detailed methods are given in the associated manuscript. In brief:
Storm selection. Twenty-four of the deadliest and costliest North Atlantic tropical cyclones making U.S. landfall between 1992 and 2024 were selected from NOAA's tabulation of costliest U.S. tropical cyclones, sampling up to the top five storms within each Saffir–Simpson tier. Only two Category 5 landfalls and three qualifying tropical storms fell within the study period. Tropical Storm Imelda (2019) was dropped because it recorded no mortality within the study buffer, leaving 23 fitted models.
Study area. Census blocks within 25 miles of the U.S. Atlantic or Gulf coastline, including Puerto Rico and the U.S. Virgin Islands. Block resolution is roughly two orders of magnitude finer than census tract resolution.
Hazard layers. NHC wind swath and rainfall products were digitized and rasterized in ArcGIS Pro using maximum-likelihood and machine-learning image classifiers. Storm-surge inundation rasters were extracted and averaged per block by mean-pixel calculation. Hazard covariates entering the models were wind swath category (tropical-storm-force or hurricane-force), mean rainfall (inches), and mean predicted inundation (feet).
Outcome. Reported deaths were population-standardized to the block by multiplying the unadjusted death total by the block's population divided by the total population of the reporting state or county.
Covariates. 2020 Decennial Census age, sex, race, ethnicity, household size, and tenure; ACS household income quartiles and homeownership; CDC/ATSDR SVI percentile rank; county-level GDP (2001–2023 storms only); and the three hazard layers above. Multicollinearity was not treated as a modeling constraint because boosted trees do not estimate coefficients.
Models. One boosted-tree model per storm, with population-standardized mortality as the outcome, fitted with training and validation partitions. Performance was assessed by R² and root average squared error (RASE); see Table 4A of the manuscript.
Surfaces. Block-level predictions from all storms within a Saffir–Simpson tier were averaged to produce the six category surfaces in this deposit. Negative predictions were floored at zero (avg_mortality_clean), values were converted to rates per 10,000 and per 100,000, and blocks were classified into within-tier quintiles.
Code/Software
| Software | Version | Role |
|---|---|---|
| ArcGIS Pro (Esri) | 2026 release | Hazard raster digitization and classification, zonal statistics, block/tract joins, geometry merge and simplification, GeoPackage export |
| JMP Student Edition (SAS Institute) | 18.2.1 | Data management, boosted-tree model fitting, training/validation partitioning, prediction export |
| R / RStudio | RStudio 2025.08.0-357 | Raster processing, spatial extraction, table assembly, summary and risk-class computation |
| ArcGIS Online | — | Hosting of the _for_AGOL_ layers |
| PMTiles | — | Vector tile packaging for the public dashboard |
The GeoPackages open without additional software in ArcGIS Pro, QGIS, R (sf::st_read()), and Python (geopandas.read_file()). The block-level CSVs are approximately 1 GB each; read them with a chunked or lazy reader (arrow, duckdb, readr::read_csv_chunked(), or pandas.read_csv(chunksize=...)) rather than loading them whole.
Analysis code and the dashboard build pipeline are archived with this Dryad deposit. Dryad routes software submissions to Zenodo, which mints a separate software DOI; that DOI is listed on the Dryad landing page for this dataset.
Citation
Please cite both the dataset and the associated manuscript:
Mullins, S., & Uelmen, J. (2026). Block-level tropical cyclone mortality risk surfaces for the U.S. Atlantic and Gulf coasts, Puerto Rico, and the U.S. Virgin Islands [Data set]. Dryad. https://doi.org/10.5061/dryad.qv9s4mwwq
Mullins, S., & Uelmen, J. (2026). Modeling population vulnerabilities to climate change-driven hurricanes and tropical storms in the North Atlantic Basin. medRxiv. https://doi.org/10.64898/2026.08.16.26360517
Author and contact information
Shaelyn Mullins — Department of Population Health Sciences, School of Medicine and Public Health, University of Wisconsin–Madison
Johnny Uelmen (corresponding) — Department of Population Health Sciences, School of Medicine and Public Health, University of Wisconsin–Madison — Uelmen Disease Ecology Lab, https://www.diseaseecologylab.org
Funding. This research received no specific external funding.
Conflicts of interest. The authors declare no conflicts of interest relevant to this work.
License. Data files in this deposit are released under a CC0 1.0 Universal public domain dedication, per Dryad policy. Accompanying code is released under CC BY 4.0 via the linked Zenodo software record.
Date of data generation. Derived surfaces generated August 2026 from source data spanning 1992–2024.
