1 Synopsis

Extreme weather across the United States accounts for numerous injuries and fatalities as well as costing billions of dollars in damage every year.
This report uses the U.S. National Oceanic and Atmospheric Administration’s (NOAA) storm database to find the weather events that are the most impactful from a population health standpoint and from an economic standpoint. The NOAA database tracks characteristics of major storms and weather events in the United States, including when and where they occur, as well as estimates of any fatalities, injuries, and property damage.

2 Data Processing

The data can be obtained from the course website, and an explanation of the data format can be found at the National Weather Service. Following is code for unpacking the storm database once it has been downloaded.

data<-read.csv(bzfile("repdata_data_StormData.csv.bz2"), header=TRUE, stringsAsFactors=FALSE)

The data in the strom database has the following major issues.

No attempt was made to process the data with respect to year. It is assumed for the purpose of this analysis that reporting methods and storm effects are stable with respect to event type over the time range 1950 to 2011.

Cleaning the Economic Damage Data

To handle the property damage estimates, a unified property damage dollar amount field called PropertyDamage was created from the PROPDMG and PROPDMGEXP fields, and a field call CropDamage was created from the CROPDMG and CROPDMGEXP fields. And to help with the roll-up procedure, we convert all event type names to uppercase.

normalizeDamage <- function(pdmg, pdmgexp) {
  if ( pdmgexp == ""  ) {
    0 
  }
  else if ( length(grep("[1234567890]", pdmgexp)) == 1  ) {
    as.numeric(pdmg) * (10 ^ as.numeric(pdmgexp) )
  }
  else if ( toupper(pdmgexp) == "K" ) {
    as.numeric(pdmg) * 1000
  }
  else if ( toupper(pdmgexp) =="M" ) {
    as.numeric(pdmg) * 1000000 
  }
  else if ( toupper(pdmgexp) =="B" ) {
    as.numeric(pdmg) * 1000000 
  }
  else {
    0
  }  
}
data$PropertyDamage <- mapply(FUN = normalizeDamage, data$PROPDMG, data$PROPDMGEXP)
data$CropDamage <- mapply(FUN = normalizeDamage, data$CROPDMG, data$CROPDMGEXP)
data$EVTYPE <- toupper(data$EVTYPE) # To help with removing duplicates later

Since we are interested only in fatalities, injuries and economic consequences, we sum these values by event type, and save off only needed columns into a smaller, more easily worked dataset.

library(plyr)
summary <- ddply(data, "EVTYPE", function(x) {c (sum (x$INJURIES), 
                    sum(x$FATALITIES),sum(x$PropertyDamage)+sum(x$CropDamage))})
summary <- summary[complete.cases(summary),]
colnames(summary) <- c("EventType", "Injuries", "Fatalities", "EconomicDamage")

Rolling Up the Weather Event Types

We create a function to roll up injuries, fatalities, and economic damage estimates from the second event type into the first given event type. We also create a function called “rollups” to apply the individual rollups. This function also serves as documentation of how the data were rolled up. The function is shown in the Appendix.

rollup <- function(df, ev1, ev2) {
  if ( nrow(df[df$EventType==ev1,])>0 & nrow(df[df$EventType==ev2,])>0 ) {
    df[df$EventType==ev1,]$Injuries <- 
      df[df$EventType==ev1,]$Injuries + 
      df[df$EventType==ev2,]$Injuries
    df[df$EventType==ev1,]$Fatalities <- 
      df[df$EventType==ev1,]$Fatalities + 
      df[df$EventType==ev2,]$Fatalities
    df[df$EventType==ev1,]$EconomicDamage <- 
      df[df$EventType==ev1,]$EconomicDamage + 
      df[df$EventType==ev2,]$EconomicDamage
    df[df$EventType != ev2,]
  }
  else {
    df
  }
}
# Also function rollups, see Appendix.

Working with the summary data, we will identify and exclude all cases where there was no inujry, fatality or economic impact. This will make it easier to identify categories for roll-up later since that is a manual process. Then we apply the rollups.

fsummary <- summary[summary$Fatalities>0|summary$Injuries>0|summary$EconomicDamage>0,]
fsummary <- rollups(fsummary)
rownames(fsummary) <- NULL

The reduces the number of distinct event types from 985 to 142.

3 Results

The top ten storm event types can now be sorted and displayed by fatalities, injuries, and eceonomic damage.

Top 10 Storm Event Types by Fatalities

top_fatalities<-head(fsummary[with(fsummary, order(-Fatalities)),], n=10)
top_fatalities
##             EventType Injuries Fatalities EconomicDamage
## 129           TORNADO    91410       5636    52073339014
## 56               HEAT     9243       3178      525205030
## 35              FLOOD     8680       1554    47115684289
## 85          LIGHTNING     5232        817      947554517
## 126 THUNDERSTORM WIND     9496        710    11187147303
## 106       RIP CURRENT      529        577         163000
## 18               COLD      324        473     1884350000
## 66          HIGH WIND     1848        449     5536966730
## 141      WINTER STORM     1968        279     1828749251
## 9           AVALANCHE      170        225        3721800
top_fatalities[top_fatalities$EventType=="THUNDERSTORM WIND",]$EventType <-"TSTRM WIND"
top_fatalities[top_fatalities$EventType=="WINTER STORM",]$EventType <-"WINT STORM"
barplot(top_fatalities$Fatalities, names.arg = top_fatalities$EventType, cex.names = 0.65, las=2)

Figure 1: Top 10 Storm Event Types by Fatalities

Top 10 Storm Event Types by Injuries

top_injuries<-head(fsummary[with(fsummary, order(-Injuries)),], n=10)
top_injuries
##             EventType Injuries Fatalities EconomicDamage
## 129           TORNADO    91410       5636    52073339014
## 126 THUNDERSTORM WIND     9496        710    11187147303
## 56               HEAT     9243       3178      525205030
## 35              FLOOD     8680       1554    47115684289
## 85          LIGHTNING     5232        817      947554517
## 74          ICE STORM     1977         89     3972041360
## 141      WINTER STORM     1968        279     1828749251
## 66          HIGH WIND     1848        449     5536966730
## 138          WILDFIRE     1608         90     6356940130
## 54               HAIL     1371         15    17226227576
top_injuries[top_injuries$EventType=="THUNDERSTORM WIND",]$EventType <-"TSTRM WIND"
top_injuries[top_injuries$EventType=="WINTER STORM",]$EventType <-"WINT STORM"
barplot(top_injuries$Injuries, names.arg = top_injuries$EventType, cex.names = 0.65, las=2)

Figure 2: Top 10 Storm Event Types by Injuries

Top 10 Storm Event Types by Economic Damage

top_econdmg<-head(fsummary[with(fsummary, order(-EconomicDamage)),], n=10)
top_econdmg
##             EventType Injuries Fatalities EconomicDamage
## 129           TORNADO    91410       5636    52073339014
## 35              FLOOD     8680       1554    47115684289
## 54               HAIL     1371         15    17226227576
## 68          HURRICANE     1329        135    15037862810
## 25            DROUGHT        4          0    13520172000
## 126 THUNDERSTORM WIND     9496        710    11187147303
## 138          WILDFIRE     1608         90     6356940130
## 66          HIGH WIND     1848        449     5536966730
## 74          ICE STORM     1977         89     3972041360
## 131    TROPICAL STORM      383         66     3264436550
top_econdmg[top_econdmg$EventType=="THUNDERSTORM WIND",]$EventType <-"TSTRM WIND"
top_econdmg[top_econdmg$EventType=="TROPICAL STORM",]$EventType <-"TROP STRM"
barplot(top_econdmg$EconomicDamage, names.arg = top_econdmg$EventType, cex.names = 0.65, las=2)

Figure 3: Top 10 Storm Event Types by Economic Damage

Appendix

Following is the function that performs the individual roll-ups used in this analysis, as described above. This was not difficult, and only took a couple of hours. An automated procedure based on pattern matching could get this mostly right, but there were too many outright mispellings and odd cases like “GUSTNADO” or “LANDSPOUT” to be con=mfortable.

rollups <- function(fsummary) {
  fsummary <- rollup(fsummary, "AVALANCHE", "AVALANCE")
  fsummary <- rollup(fsummary, "BLIZZARD", "BLOWING SNOW")
  fsummary <- rollup(fsummary, "BLIZZARD", "blowing snow")
  fsummary <- rollup(fsummary, "BLIZZARD", "BLIZZARD/WINTER STORM")
  fsummary <- rollup(fsummary, "COASTAL FLOOD", "Coastal Flooding")
  fsummary <- rollup(fsummary, "COASTAL FLOOD", "COASTAL FLOODING")
  fsummary <- rollup(fsummary, "COASTAL STORM", "Coastal Storm")
  fsummary <- rollup(fsummary, "COASTAL STORM", "COASTALSTORM")
  fsummary <- rollup(fsummary, "COLD", "Cold")
  fsummary <- rollup(fsummary, "COLD", "COLD AIR TORNADO")
  fsummary <- rollup(fsummary, "COLD", "COLD TEMPERATURE")
  fsummary <- rollup(fsummary, "COLD", "COLD AND SNOW")
  fsummary <- rollup(fsummary, "COLD", "Cold Temperature")
  fsummary <- rollup(fsummary, "COLD", "COLD WAVE")
  fsummary <- rollup(fsummary, "COLD", "COLD WEATHER")
  fsummary <- rollup(fsummary, "COLD", "COLD/WIND CHILL")
  fsummary <- rollup(fsummary, "COLD", "COLD/WINDS")
  fsummary <- rollup(fsummary, "COLD", "EXTENDED COLD")
  fsummary <- rollup(fsummary, "COLD", "Extreme Cold")
  fsummary <- rollup(fsummary, "COLD", "EXTREME COLD")
  fsummary <- rollup(fsummary, "COLD", "EXTREME COLD/WIND CHILL")
  fsummary <- rollup(fsummary, "COLD", "EXTREME WINDCHILL")
  fsummary <- rollup(fsummary, "COLD", "HIGH WINDS/COLD")
  fsummary <- rollup(fsummary, "COLD", "LOW TEMPERATURE")
  fsummary <- rollup(fsummary, "COLD", "RECORD COLD")
  fsummary <- rollup(fsummary, "COLD", "FREEZE")
  fsummary <- rollup(fsummary, "COLD", "EXTREME WIND CHILL")
  fsummary <- rollup(fsummary, "COLD", "EARLY FROST")
  fsummary <- rollup(fsummary, "COLD", "AGRICULTURAL FREEZE")
  fsummary <- rollup(fsummary, "COLD", "UNSEASONABLY COLD")
  fsummary <- rollup(fsummary, "COLD", "UNSEASONABLE COLD")
  fsummary <- rollup(fsummary, "DRY MICROBURST", "DRY MIRCOBURST WINDS")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOOD/")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOOD/ STREET")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOOD/LANDSLIDE")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOODING/THUNDERSTORM WI")
  fsummary <- rollup(fsummary, "FLOOD", "FLOOD FLASH")
  fsummary <- rollup(fsummary, "FLOOD", "COASTAL FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "COASTAL FLOODING/EROSION")
  fsummary <- rollup(fsummary, "FLOOD", "FLOOD/FLASH")
  fsummary <- rollup(fsummary, "FLOOD", "FLOOD/FLASH/FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "FLOOD/FLASHFLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOOD/FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOODING")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOODING/FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOODS")
  fsummary <- rollup(fsummary, "FLOOD", "FLOOD & HEAVY RAIN")
  fsummary <- rollup(fsummary, "FLOOD", "FLOOD/FLASH FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "FLOOD/RIVER FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "FLOODING")
  fsummary <- rollup(fsummary, "FLOOD", "RIVER FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "River Flooding")
  fsummary <- rollup(fsummary, "FLOOD", "RIVER FLOODING")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN AND SMALL STREAM FLOODIN")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN/SML STREAM FLD")
  fsummary <- rollup(fsummary, "FLOOD", "MINOR FLOODING")
  fsummary <- rollup(fsummary, "FLOOD", "RAPIDLY RISING WATER")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN AND SMALL")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOOD - HEAVY RAIN")
  fsummary <- rollup(fsummary, "FLOOD", "FLASH FLOOD FROM ICE JAMS")
  fsummary <- rollup(fsummary, "FLOOD", "FLOOD/RAIN/WINDS")
  fsummary <- rollup(fsummary, "FLOOD", "FLOODS")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN FLOODING")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN FLOODS")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN SMALL")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN/SMALL STREAM")
  fsummary <- rollup(fsummary, "FLOOD", "URBAN/SMALL STREAM FLOOD")
  fsummary <- rollup(fsummary, "FLOOD", "ICE JAM FLOOD (MINOR")
  fsummary <- rollup(fsummary, "FLOOD", "ICE JAM FLOODING")
  fsummary <- rollup(fsummary, "FLOOD", "LAKESHORE FLOOD")
  fsummary <- rollup(fsummary, "FOG", "DENSE FOG")
  fsummary <- rollup(fsummary, "FREEZING RAIN", "FREEZING DRIZZLE")
  fsummary <- rollup(fsummary, "FREEZING RAIN", "FREEZING RAIN/SNOW")
  fsummary <- rollup(fsummary, "FREEZING RAIN", "FREEZING FOG")
  fsummary <- rollup(fsummary, "FREEZING RAIN", "FREEZING RAIN/SLEET")
  fsummary <- rollup(fsummary, "FREEZING RAIN", "FREEZING SPRAY")
  fsummary <- rollup(fsummary, "FROST", "FROST/FREEZE")
  fsummary <- rollup(fsummary, "FROST", "FROST\\FREEZE")
  fsummary <- rollup(fsummary, "FOG", "FOG AND COLD TEMPERATURES")
  fsummary <- rollup(fsummary, "GLAZE", "GLAZE/ICE STORM")
  fsummary <- rollup(fsummary, "GLAZE", "BLACK ICE")
  fsummary <- rollup(fsummary, "GLAZE", "GLAZE ICE")
  fsummary <- rollup(fsummary, "GUSTY WIND", "Gusty winds")
  fsummary <- rollup(fsummary, "GUSTY WIND", "Gusty Winds")
  fsummary <- rollup(fsummary, "GUSTY WIND", "GUSTY WINDS")
  fsummary <- rollup(fsummary, "HAIL", "SMALL HAIL")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 0.75")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 075")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 100")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 125")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 150")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 175")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 200")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 275")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 75")
  fsummary <- rollup(fsummary, "HAIL", "HAIL 450")
  fsummary <- rollup(fsummary, "HAIL", "WIND/HAIL")
  fsummary <- rollup(fsummary, "HAIL", "HAIL DAMAGE")
  fsummary <- rollup(fsummary, "HAIL", "HAIL/WIND")
  fsummary <- rollup(fsummary, "HAIL", "HAIL/WINDS")
  fsummary <- rollup(fsummary, "HAIL", "HAILSTORM")
  fsummary <- rollup(fsummary, "HEAT", "DROUGHT/EXCESSIVE HEAT")
  fsummary <- rollup(fsummary, "HEAT", "EXCESSIVE HEAT")
  fsummary <- rollup(fsummary, "HEAT", "EXTREME HEAT")
  fsummary <- rollup(fsummary, "HEAT", "Heat Wave")
  fsummary <- rollup(fsummary, "HEAT", "HEAT WAVE")
  fsummary <- rollup(fsummary, "HEAT", "HEAT WAVE DROUGHT")
  fsummary <- rollup(fsummary, "HEAT", "HEAT WAVES")
  fsummary <- rollup(fsummary, "HEAT", "RECORD HEAT")
  fsummary <- rollup(fsummary, "HEAT", "RECORD/EXCESSIVE HEAT")
  fsummary <- rollup(fsummary, "HEAT", "UNSEASONABLY WARM")
  fsummary <- rollup(fsummary, "HEAT", "UNSEASONABLY WARM AND DRY")
  fsummary <- rollup(fsummary, "HEAT", "WARM WEATHER")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY RAINS")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HVY RAIN")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "RAIN/WIND")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "Torrential Rainfall")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "EXCESSIVE RAINFALL")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "UNSEASONAL RAIN")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY MIX")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY RAIN/SNOW")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY RAINS/FLOODING")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY MIX")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY PRECIPITATION")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY RAIN AND FLOOD")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY RAIN/LIGHTNING")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY RAIN/SEVERE WEATHER")
  fsummary <- rollup(fsummary, "HEAVY RAIN", "HEAVY RAIN/SMALL STREAM URBAN")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HEAVY RAIN/HIGH SURF")
  fsummary <- rollup(fsummary, "HEAVY SURF", "Heavy Surf")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HEAVY SURF AND WIND")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HEAVY SURF COASTAL FLOODING")
  fsummary <- rollup(fsummary, "HEAVY SURF", "Heavy Surf")
  fsummary <- rollup(fsummary, "HEAVY SURF", "Heavy surf and wind")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HEAVY SURF/HIGH SURF")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HAZARDOUS SURF")
  fsummary <- rollup(fsummary, "HEAVY SURF", "ROGUE WAVE")
  fsummary <- rollup(fsummary, "HEAVY SURF", "ROUGH SEAS")
  fsummary <- rollup(fsummary, "HEAVY SURF", "ROUGH SURF")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH SURF")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH SURF ADVISORY")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH SEAS")
  fsummary <- rollup(fsummary, "HEAVY SURF", "High Surf")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH SWELLS")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH WATER")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH WAVES")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH WIND AND SEAS")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH WIND/SEAS")
  fsummary <- rollup(fsummary, "HEAVY SURF", "WIND AND WAVE")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HIGH SURF ADVISORY")
  fsummary <- rollup(fsummary, "HEAVY SURF", "HURRICANE-GENERATED SWELLS")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW AND HIGH WINDS")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW/BLIZZARD/AVALANCHE")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW/ICE")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "Heavy snow shower")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HIGH WIND/HEAVY SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "RAIN/SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "Snow")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "LAKE-EFFECT SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "LAKE EFFECT SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW ACCUMULATION")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW AND HEAVY SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW AND ICE STORM")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW FREEZING RAIN")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW SQUALLS")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW/ ICE")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW/BLOWING SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW/ICE STORM")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW AND ICE")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW SQUALL")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "Snow Squalls")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW/ BITTER COLD")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "SNOW/HIGH WINDS")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "EXCESSIVE SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "FALLING SNOW/ICE")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "LAKE-EFFECT SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "LAKE EFFECT SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "LIGHT SNOW")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "LIGHT SNOWFALL")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW-SQUALLS")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW AND STRONG WINDS")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW SHOWER")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW SQUALLS")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW/BLIZZARD")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW/FREEZING RAIN")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW/HIGH WINDS & FLOOD")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW/SQUALLS")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW/WIND")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOW/WINTER STORM")
  fsummary <- rollup(fsummary, "HEAVY SNOW", "HEAVY SNOWPACK")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WIND 48")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WINDS")
  fsummary <- rollup(fsummary, "HIGH WIND", "NON TSTM WIND")
  fsummary <- rollup(fsummary, "HIGH WIND", "NON-SEVERE WIND DAMAGE")
  fsummary <- rollup(fsummary, "HIGH WIND", "STRONG WIND")
  fsummary <- rollup(fsummary, "HIGH WIND", "Strong Winds")
  fsummary <- rollup(fsummary, "HIGH WIND", "STRONG WINDS")
  fsummary <- rollup(fsummary, "HIGH WIND", "TORNADOES, TSTM WIND, HAIL")
  fsummary <- rollup(fsummary, "HIGH WIND", "WIND STORM")
  fsummary <- rollup(fsummary, "HIGH WIND", "WINDS")
  fsummary <- rollup(fsummary, "HIGH WIND", "WIND")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH  WINDS")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WIND DAMAGE")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WIND (G40)")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WINDS HEAVY RAINS")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WIND/BLIZZARD")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WINDS/")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WINDS/COASTAL FLOOD")
  fsummary <- rollup(fsummary, "HIGH WIND", "HIGH WINDS/HEAVY RAIN")
  fsummary <- rollup(fsummary, "HIGH WIND", "GUSTNADO")
  fsummary <- rollup(fsummary, "HIGH WIND", "GUSTY WIND")
  fsummary <- rollup(fsummary, "HIGH WIND", "GUSTY WIND/HAIL")
  fsummary <- rollup(fsummary, "HIGH WIND", "GUSTY WIND/HVY RAIN")
  fsummary <- rollup(fsummary, "HIGH WIND", "GUSTY WIND/RAIN")
  fsummary <- rollup(fsummary, "HIGH WIND", "WIND DAMAGE")
  fsummary <- rollup(fsummary, "HIGH WIND", "WIND STORM")
  fsummary <- rollup(fsummary, "HURRICANE", "Hurricane EDOUARD")
  fsummary <- rollup(fsummary, "HURRICANE", "Hurricane GORDON")
  fsummary <- rollup(fsummary, "HURRICANE", "HURRICANE EMILY")
  fsummary <- rollup(fsummary, "HURRICANE", "HURRICANE ERIN")
  fsummary <- rollup(fsummary, "HURRICANE", "HURRICANE FELIX")
  fsummary <- rollup(fsummary, "HURRICANE", "HURRICANE OPAL")
  fsummary <- rollup(fsummary, "HURRICANE", "HURRICANE OPAL/HIGH WINDS")
  fsummary <- rollup(fsummary, "HURRICANE", "HURRICANE/TYPHOON")
  fsummary <- rollup(fsummary, "HURRICANE", "TYPHOON")
  fsummary <- rollup(fsummary, "HYPOTHERMIA", "HYPOTHERMIA/EXPOSURE")
  fsummary <- rollup(fsummary, "HYPOTHERMIA", "Hypothermia/Exposure")
  fsummary <- rollup(fsummary, "HYPOTHERMIA", "HYPERTHERMIA/EXPOSURE")
  fsummary <- rollup(fsummary, "ICE", "DAMAGING FREEZE")
  fsummary <- rollup(fsummary, "ICE", "ICE ON ROAD")
  fsummary <- rollup(fsummary, "ICE", "ICE ROADS")
  fsummary <- rollup(fsummary, "ICE", "ICY ROADS")
  fsummary <- rollup(fsummary, "ICE", "ICE AND SNOW")
  fsummary <- rollup(fsummary, "ICE", "ICE FLOES")
  fsummary <- rollup(fsummary, "ICE", "ICE JAM")
  fsummary <- rollup(fsummary, "ICE", "ICE/STRONG WINDS")
  fsummary <- rollup(fsummary, "ICE STORM", "ICE STORM/FLASH FLOOD")
  fsummary <- rollup(fsummary, "LANDSLIDE", "LANDSLIDES")
  fsummary <- rollup(fsummary, "LANDSLIDE", "FLASH FLOOD LANDSLIDES")
  fsummary <- rollup(fsummary, "LANDSLIDE", "MUDSLIDE")
  fsummary <- rollup(fsummary, "LANDSLIDE", "MUDSLIDES")
  fsummary <- rollup(fsummary, "LANDSLIDE", "MUD SLIDE")
  fsummary <- rollup(fsummary, "LANDSLIDE", "MUD SLIDES")
  fsummary <- rollup(fsummary, "LANDSLIDE", "MUD SLIDES URBAN FLOODING")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTNING AND THUNDERSTORM WIN")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTNING INJURY")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTNING.")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTING")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTNING FIRE")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTNING  WAUSEON")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTNING AND HEAVY RAIN")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTNING/HEAVY RAIN")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGNTNING")
  fsummary <- rollup(fsummary, "LIGHTNING", "LIGHTNING THUNDERSTORM WINDS")
  fsummary <- rollup(fsummary, "MARINE STRONG WIND", "MARINE HIGH WIND")
  fsummary <- rollup(fsummary, "MARINE STRONG WIND", "MARINE THUNDERSTORM WIND")
  fsummary <- rollup(fsummary, "MARINE STRONG WIND", "MARINE TSTM WIND")
  fsummary <- rollup(fsummary, "RIP CURRENT", "RIP CURRENTS")
  fsummary <- rollup(fsummary, "RIP CURRENT", "RIP CURRENTS/HEAVY SURF")
  fsummary <- rollup(fsummary, "STORM SURGE", "STORM SURGE/TIDE")
  fsummary <- rollup(fsummary, "THUNDERSTORM", "THUNDERSTORMS")
  fsummary <- rollup(fsummary, "THUNDERSTORM", "SEVERE THUNDERSTORMS")
  fsummary <- rollup(fsummary, "THUNDERSTORM", "SEVERE THUNDERSTORM")
  fsummary <- rollup(fsummary, "THUNDERSTORM", "SEVERE THUNDERSTORM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM  WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM  WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND (G45)")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND (G40)")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND G52")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS 13")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS/HAIL")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDSS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORMW")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERTORM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND (G35)")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND (G40)")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND (G45)")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND/HAIL")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TUNDERSTORM WIND")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND 65)")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND AND LIGHTNING")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND DAMAGE")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND G45")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTMW")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND  (G45)")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND (41)")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND 40")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND 45")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND 55")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "TSTM WIND G58")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORMWINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNERSTORM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTROM WIND")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORMS WIND")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORMS WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDSHAIL")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS53")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS/FUNNEL CLOU")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS/FLOODING")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS/ FLOOD")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS.")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND 60 MPH")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND 65 MPH")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND 65MPH")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND 98 MPH")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND G55")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND G60")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND/ TREE")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND/ TREES")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND/AWNING")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND/HAIL")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUDERSTORM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDEERSTORM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERESTORM WINDS")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM DAMAGE TO")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM HAIL")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND TREES")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS 63 MPH")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS AND")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS G60")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS HAIL")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WINDS LIGHTNING")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND.")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "THUNDERSTORM WIND/LIGHTNING")
  fsummary <- rollup(fsummary, "THUNDERSTORM WIND", "STORM FORCE WINDS")
  fsummary <- rollup(fsummary, "TROPICAL STORM", "TROPICAL STORM GORDON")
  fsummary <- rollup(fsummary, "TROPICAL STORM", "TROPICAL STORM ALBERTO")
  fsummary <- rollup(fsummary, "TROPICAL STORM", "TROPICAL STORM DEAN")
  fsummary <- rollup(fsummary, "TROPICAL STORM", "TROPICAL STORM JERRY")
  fsummary <- rollup(fsummary, "TORNADO", "FUNNEL CLOUD")
  fsummary <- rollup(fsummary, "TORNADO", "Whirlwind")
  fsummary <- rollup(fsummary, "TORNADO", "DUST DEVIL")
  fsummary <- rollup(fsummary, "TORNADO", "Dust Devil")
  fsummary <- rollup(fsummary, "TORNADO", "TORNADO F2")
  fsummary <- rollup(fsummary, "TORNADO", "TORNADO F3")
  fsummary <- rollup(fsummary, "TORNADO", "TORNADO F0")
  fsummary <- rollup(fsummary, "TORNADO", "TORNADO F1")
  fsummary <- rollup(fsummary, "TORNADO", "TORNDAO")
  fsummary <- rollup(fsummary, "TORNADO", "TORNADOES")
  fsummary <- rollup(fsummary, "TORNADO", "WHIRLWIND")
  fsummary <- rollup(fsummary, "WATERSPOUT", "WATERSPOUT TORNADO")
  fsummary <- rollup(fsummary, "WATERSPOUT", "WATERSPOUT/TORNADO")
  fsummary <- rollup(fsummary, "WATERSPOUT", "WATERSPOUT-")
  fsummary <- rollup(fsummary, "WATERSPOUT", "WATERSPOUT-TORNADO")
  fsummary <- rollup(fsummary, "WATERSPOUT", "WATERSPOUT/ TORNADO")
  fsummary <- rollup(fsummary, "WILDFIRE", "WILD/FOREST FIRE")
  fsummary <- rollup(fsummary, "WILDFIRE", "WILD FIRES")
  fsummary <- rollup(fsummary, "WILDFIRE", "WILDFIRES")
  fsummary <- rollup(fsummary, "WILDFIRE", "WILD/FOREST FIRES")
  fsummary <- rollup(fsummary, "WILDFIRE", "BRUSH FIRE")
  fsummary <- rollup(fsummary, "WINTER STORM", "WINTER STORM HIGH WINDS")
  fsummary <- rollup(fsummary, "WINTER STORM", "WINTER STORMS")
  fsummary <- rollup(fsummary, "WINTER STORM", "WINTER WEATHER")
  fsummary <- rollup(fsummary, "WINTER STORM", "WINTER WEATHER MIX")
  fsummary <- rollup(fsummary, "WINTER STORM", "WINTER WEATHER/MIX")
  fsummary <- rollup(fsummary, "WINTER STORM", "WINTRY MIX")
  fsummary
}