This analysis examines the NOAA Storm Database to identify the severe weather events with the greatest impacts on population health and the economy in the United States. Population health impact is measured using the combined number of fatalities and injuries. Economic impact is measured using total property and crop damage after converting the reported damage exponents into dollar values. Tornadoes account for the greatest overall population health impact, while floods produce the greatest economic losses.
The analysis starts directly from the original compressed NOAA Storm
Database file. The raw .csv.bz2 file is read into R without
preprocessing outside this document.
library(dplyr)
library(ggplot2)
storm <- read.csv(
bzfile("repdata_data_StormData.csv.bz2"),
stringsAsFactors = FALSE
)
Only variables needed to assess population health and economic consequences are retained.
storm <- storm %>%
select(
EVTYPE,
FATALITIES,
INJURIES,
PROPDMG,
PROPDMGEXP,
CROPDMG,
CROPDMGEXP
)
convert_exp <- function(x) {
x <- toupper(trimws(as.character(x)))
case_when(
x == "H" ~ 1e2,
x == "K" ~ 1e3,
x == "M" ~ 1e6,
x == "B" ~ 1e9,
x == "0" ~ 1,
x == "1" ~ 10,
x == "2" ~ 1e2,
x == "3" ~ 1e3,
x == "4" ~ 1e4,
x == "5" ~ 1e5,
x == "6" ~ 1e6,
x == "7" ~ 1e7,
x == "8" ~ 1e8,
x == "9" ~ 1e9,
TRUE ~ 1
)
}
The population health burden is defined as the sum of fatalities and injuries. Economic damage is defined as the sum of property and crop damage.
storm <- storm %>%
mutate(
health_impact = FATALITIES + INJURIES,
property_damage = PROPDMG * convert_exp(PROPDMGEXP),
crop_damage = CROPDMG * convert_exp(CROPDMGEXP),
economic_damage = property_damage + crop_damage
)
The data are then summarized by event type.
health_summary <- storm %>%
group_by(EVTYPE) %>%
summarise(
fatalities = sum(FATALITIES, na.rm = TRUE),
injuries = sum(INJURIES, na.rm = TRUE),
total_health_impact = sum(health_impact, na.rm = TRUE),
.groups = "drop"
) %>%
arrange(desc(total_health_impact))
economic_summary <- storm %>%
group_by(EVTYPE) %>%
summarise(
property_damage = sum(property_damage, na.rm = TRUE),
crop_damage = sum(crop_damage, na.rm = TRUE),
total_economic_damage = sum(economic_damage, na.rm = TRUE),
.groups = "drop"
) %>%
arrange(desc(total_economic_damage))
The following table shows the ten event types associated with the largest combined number of fatalities and injuries.
head(health_summary, 10)
## # A tibble: 10 × 4
## EVTYPE fatalities injuries total_health_impact
## <chr> <dbl> <dbl> <dbl>
## 1 TORNADO 5633 91346 96979
## 2 EXCESSIVE HEAT 1903 6525 8428
## 3 TSTM WIND 504 6957 7461
## 4 FLOOD 470 6789 7259
## 5 LIGHTNING 816 5230 6046
## 6 HEAT 937 2100 3037
## 7 FLASH FLOOD 978 1777 2755
## 8 ICE STORM 89 1975 2064
## 9 THUNDERSTORM WIND 133 1488 1621
## 10 WINTER STORM 206 1321 1527
health_summary %>%
slice_head(n = 10) %>%
ggplot(
aes(
x = reorder(EVTYPE, total_health_impact),
y = total_health_impact
)
) +
geom_col() +
coord_flip() +
labs(
title = "Weather Events Most Harmful to Population Health",
x = "Event Type",
y = "Fatalities + Injuries"
)
Figure 1. Ten severe weather event types associated with the largest combined number of fatalities and injuries in the United States.
Tornadoes caused the greatest overall population health impact when fatalities and injuries were considered together.
The following table shows the ten event types associated with the greatest total property and crop damage.
head(economic_summary, 10)
## # A tibble: 10 × 4
## EVTYPE property_damage crop_damage total_economic_damage
## <chr> <dbl> <dbl> <dbl>
## 1 FLOOD 144657709807 5661968450 150319678257
## 2 HURRICANE/TYPHOON 69305840000 2607872800 71913712800
## 3 TORNADO 56947380676. 414953270 57362333946.
## 4 STORM SURGE 43323536000 5000 43323541000
## 5 HAIL 15735267513. 3025954473 18761221986.
## 6 FLASH FLOOD 16822673978. 1421317100 18243991078.
## 7 DROUGHT 1046106000 13972566000 15018672000
## 8 HURRICANE 11868319010 2741910000 14610229010
## 9 RIVER FLOOD 5118945500 5029459000 10148404500
## 10 ICE STORM 3944927860 5022113500 8967041360
economic_summary %>%
slice_head(n = 10) %>%
ggplot(
aes(
x = reorder(EVTYPE, total_economic_damage),
y = total_economic_damage / 1e9
)
) +
geom_col() +
coord_flip() +
labs(
title = "Weather Events with the Greatest Economic Impact",
x = "Event Type",
y = "Total Damage (Billion US Dollars)"
)
Figure 2. Ten severe weather event types associated with the greatest combined property and crop damage in the United States.
Floods produced the greatest total economic losses in the NOAA Storm Database, followed by other major storm events including hurricanes/typhoons and tornadoes.