This report explores the NOAA storm database to identify which types of severe weather events are most harmful to population health and which have the greatest economic consequences in the United States. The raw compressed data file (StormData.csv.bz2, over 900,000 records from 1950-2011) was loaded directly into R without any outside preprocessing. Property and crop damage figures were converted to U.S. dollars using their exponent codes (K = thousand, M = million, B = billion). Events were then aggregated by the EVTYPE variable, summing fatalities and injuries to measure health impact and summing property plus crop damage to measure economic impact. The results show that tornadoes are by far the most harmful event type with respect to population health. Floods and hurricane/typhoon events cause the greatest economic losses. These findings can help municipal managers prioritize preparedness resources. All code needed to reproduce the figures and tables is included below.
The analysis starts from the original raw file. If the file is not
present in the working directory it is downloaded first, then read
directly from the .csv.bz2 archive (this chunk is cached
because reading ~900k rows takes some time).
if (!file.exists("StormData.csv.bz2")) {
download.file("https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2",
destfile = "StormData.csv.bz2", mode = "wb")
}
storm <- read.csv("StormData.csv.bz2", stringsAsFactors = FALSE)
dim(storm)
## [1] 902297 37
head(storm[, c("EVTYPE", "FATALITIES", "INJURIES",
"PROPDMG", "PROPDMGEXP", "CROPDMG", "CROPDMGEXP")])
## EVTYPE FATALITIES INJURIES PROPDMG PROPDMGEXP CROPDMG CROPDMGEXP
## 1 TORNADO 0 15 25.0 K 0
## 2 TORNADO 0 0 2.5 K 0
## 3 TORNADO 0 2 25.0 K 0
## 4 TORNADO 0 2 2.5 K 0
## 5 TORNADO 0 2 2.5 K 0
## 6 TORNADO 0 6 2.5 K 0
Missing fatalities/injuries are set to zero, and the damage exponent codes are converted into numeric multipliers so that all damage values are expressed in dollars. (Blank or unrecognized exponent codes are treated as raw dollar values; numeric codes such as “3” are treated as 10^3.)
storm$FATALITIES[is.na(storm$FATALITIES)] <- 0
storm$INJURIES[is.na(storm$INJURIES)] <- 0
multiplier <- function(x) {
x <- toupper(as.character(x))
m <- rep(1, length(x)) # unknown/blank code -> raw dollars
m[x == "K"] <- 1e3 # thousands
m[x == "M"] <- 1e6 # millions
m[x == "B"] <- 1e9 # billions
m[x == "H"] <- 1e2 # hundreds
num <- suppressWarnings(as.numeric(x)) # numeric codes -> 10^n
m[!is.na(num)] <- 10 ^ num[!is.na(num)]
m
}
storm$PropDmgUSD <- storm$PROPDMG * multiplier(storm$PROPDMGEXP)
storm$CropDmgUSD <- storm$CROPDMG * multiplier(storm$CROPDMGEXP)
Finally the data are aggregated by event type (EVTYPE)
into a health-impact table (fatalities + injuries) and an
economic-impact table (property + crop damage in dollars).
health <- aggregate(cbind(FATALITIES, INJURIES) ~ EVTYPE, data = storm, FUN = sum)
health$HealthImpact <- health$FATALITIES + health$INJURIES
health <- health[order(-health$HealthImpact), ]
topH <- head(health, 10)
econ <- aggregate(cbind(PropDmgUSD, CropDmgUSD) ~ EVTYPE, data = storm, FUN = sum)
econ$EconImpact <- econ$PropDmgUSD + econ$CropDmgUSD
econ <- econ[order(-econ$EconImpact), ]
topE <- head(econ, 10)
Population health. Figure 1 and Table 1 show the ten most harmful event types ranked by combined fatalities and injuries. TORNADO is clearly the most dangerous event type, with 96,979 combined casualties - far above the second-ranked type. Heat-related events (e.g. excessive heat) also rank high because they cause many fatalities despite few injuries.
par(mar = c(9, 4, 2, 1))
barplot(topH$HealthImpact, names.arg = topH$EVTYPE, las = 2, cex.names = 0.75,
col = "firebrick", border = NA,
ylab = "Total fatalities + injuries",
main = "Figure 1: Top 10 event types by population-health impact")
Figure 1: Total fatalities plus injuries for the ten most harmful storm event types, 1950-2011. Tornadoes dominate the health impact.
knitr::kable(topH, caption = "Table 1: Top 10 event types by health impact")
| EVTYPE | FATALITIES | INJURIES | HealthImpact | |
|---|---|---|---|---|
| 834 | TORNADO | 5633 | 91346 | 96979 |
| 130 | EXCESSIVE HEAT | 1903 | 6525 | 8428 |
| 856 | TSTM WIND | 504 | 6957 | 7461 |
| 170 | FLOOD | 470 | 6789 | 7259 |
| 464 | LIGHTNING | 816 | 5230 | 6046 |
| 275 | HEAT | 937 | 2100 | 3037 |
| 153 | FLASH FLOOD | 978 | 1777 | 2755 |
| 427 | ICE STORM | 89 | 1975 | 2064 |
| 760 | THUNDERSTORM WIND | 133 | 1488 | 1621 |
| 972 | WINTER STORM | 206 | 1321 | 1527 |
Economic consequences. Figure 2 and Table 2 rank event types by total property plus crop damage (in billions of dollars). FLOOD causes the greatest economic losses, followed closely by HURRICANE/TYPHOON; together these flooding and tropical-cyclone events account for the large majority of recorded weather damage.
par(mar = c(9, 4, 2, 1))
barplot(topE$EconImpact / 1e9, names.arg = topE$EVTYPE, las = 2, cex.names = 0.75,
col = "darkgreen", border = NA,
ylab = "Total damage (billions of USD)",
main = "Figure 2: Top 10 event types by economic impact")
Figure 2: Total property plus crop damage (billions of USD) for the ten costliest storm event types, 1950-2011. Floods and hurricanes dominate the economic impact.
knitr::kable(topE, caption = "Table 2: Top 10 event types by economic impact (USD)")
| EVTYPE | PropDmgUSD | CropDmgUSD | EconImpact | |
|---|---|---|---|---|
| 170 | FLOOD | 144657709807 | 5661968450 | 150319678257 |
| 411 | HURRICANE/TYPHOON | 69305840000 | 2607872800 | 71913712800 |
| 834 | TORNADO | 56947380677 | 414953270 | 57362333947 |
| 670 | STORM SURGE | 43323536000 | 5000 | 43323541000 |
| 244 | HAIL | 15735267513 | 3025954473 | 18761221986 |
| 153 | FLASH FLOOD | 16822673979 | 1421317100 | 18243991079 |
| 95 | DROUGHT | 1046106000 | 13972566000 | 15018672000 |
| 402 | HURRICANE | 11868319010 | 2741910000 | 14610229010 |
| 590 | RIVER FLOOD | 5118945500 | 5029459000 | 10148404500 |
| 427 | ICE STORM | 3944927860 | 5022113500 | 8967041360 |
In summary, tornadoes are the greatest threat to population health, while floods and hurricanes/typhoons carry the greatest economic consequences.