Synopsis

Since 1950, The U.S. National Oceanic and Atmospheric Administration or NOAA has compiled a yearly storm and weather event database. Using this data, this report will attempt to answer questions regarding severe weather types, frequency, economic and human impact and events by US State. In this study, data will be loaded in with over 900,000 discrete weather events from over 60 years. Meaningfull data is extracted and in some cases converted or replaced with terms that will provide a more uniform report.

Data Processing

The data used is a comma-separated-value file compressed via the bzip2 algorithm to reduce its size and was downloaded from: https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2p It covers the years 1950 to November 2011. The records are not necessarily complete, however are included in the study.

Libraries Required for Analysis

library(ggplot2)
library(plyr)
library(dplyr)
library(xtable)
library(lubridate)
library(reshape)

DATA PROCESSING: Loading, Preprocessing and Summarizing the data

1 - Loading Dataset (.csv)

OrigActivityData <- read.csv("repdata-data-StormData.csv.bz2")

2 - Preprocessing.

  • Collect Columns required for Analysis. Create a smaller, condensed data frame to use for future conversion and analysis. Change the Names of the columns to more appropriate titles.
ColsToKeep <- c("BGN_DATE", "EVTYPE", "MAG", "FATALITIES", "INJURIES", "PROPDMG", 
    "PROPDMGEXP", "CROPDMG", "CROPDMGEXP", "REFNUM")
MasterActivityData <- OrigActivityData[, (names(OrigActivityData) %in% ColsToKeep)]

NewColNames <- c("Year", "EventType", "Magnitude", "Fatalities", "Injuries", 
    "PropertyDamage", "PropDamMltplr", "CropDamage", "CropDamMltplr", "RefNum")
colnames(MasterActivityData) <- NewColNames
  • Change Date to Year for Year over Year Analysis
MasterActivityData$Year <- gsub(" 0:00:00", "", MasterActivityData$Year)
MasterActivityData$Year <- as.Date(as.character(MasterActivityData$Year), "%m/%d/%Y")
MasterActivityData$Year <- year(MasterActivityData$Year)

3 - Calculating Economic Impact for Each Event.

  • Determine Multipliers used for conversion process
# Determine Factors and Create Lookup Tables Prefixes and Conversion Values
CropLkUpMltplr <- data.frame(table(MasterActivityData$CropDamMltplr))  #,row.names = 1)
PropLkUpMltplr <- data.frame(table(MasterActivityData$PropDamMltplr))  #,row.names = 1)
# Code for lookup work
MultplrColm <- MasterActivityData$PropDamMltplr
  • Modify Multipliers and Determine Crop and Property Damage in Dollars
Prefixes <- c("", "-", "?", "+", "0", "1", "2", "3", "4", "5", "6", "7", "8", 
    "B", "h", "H", "K", "k", "m", "M")
Conversion <- c(1, 1, 1, 1, 1, 10, 100, 1000, 10000, 1e+05, 1e+06, 1e+07, 1e+08, 
    1e+09, 100, 100, 1000, 1000, 1e+06, 1e+06)

ConvertedMultplr <- as.numeric(mapvalues(MultplrColm, Prefixes, Conversion))
  • Calculate Property Damage in Dollars
PropDamCalc <- data.frame(MasterActivityData$PropDamMltplr, (ConvertedMultplr), 
    as.numeric(MasterActivityData$PropertyDamage))
colnames(PropDamCalc) <- c("OrigPrefix", "Multiplier", "Value")
PropDamCalc$Results <- (10^(PropDamCalc$Multiplier - 1) * PropDamCalc$Value)
  • Calculate Crop and Property Damage in Dollars
MultplrColm <- MasterActivityData$CropDamMltplr
ConvertedMultplr <- as.numeric(mapvalues(MultplrColm, Prefixes, Conversion))
CropDamCalc <- data.frame(MasterActivityData$CropDamMltplr, (ConvertedMultplr), 
    as.numeric(MasterActivityData$CropDamage))
colnames(CropDamCalc) <- c("OrigPrefix", "Multiplier", "Value")
CropDamCalc$Results <- (10^(CropDamCalc$Multiplier - 1) * CropDamCalc$Value)
  • Add Crop and Property Damaged Figures in Dollars to MasterActivityData
MasterActivityData$PropDamageCalc <- PropDamCalc$Results
MasterActivityData$CropDamageCalc <- CropDamCalc$Results
  • Add Crop and Property Damage Together for Total Economic DamageFigures to MasterActivityData
MasterActivityData$TotalDamageCalc <- MasterActivityData$PropDamageCalc + MasterActivityData$CropDamageCalc

4 - Summarize Data used in Published Results.

  • Create Summary Tables for Year Over Year
YearTotals <- ddply(MasterActivityData, "Year", summarise, Fatalities = sum(Fatalities), 
    Injuries = sum(Injuries), Damages = sum(TotalDamageCalc))

Occurances <- count(MasterActivityData, Year)

YearTotals$Occurances <- Occurances$n
  • Create Summary Tables by Event Type
EventTotals <- ddply(MasterActivityData, "EventType", summarise, Fatalities = sum(Fatalities), 
    Injuries = sum(Injuries), Damages = sum(TotalDamageCalc))

Occurances <- count(MasterActivityData, EventType)

EventTotals$Occurances <- Occurances$n
  • Re Lable Events using Standardized naming convention for 99.97% of Data :
MasterEvents <- c("Tide","Avalanche","Blizzard","Flood","Cold","Debris","Fog","Smoke","Drought","Dust","Heat","Frost","Funnel","Hail","Rain","Snow","Surf","Wind","Hurricane","Ice","Lightning","Thunderstorm","Rip","Seiche","Sleet","Thunderstorm Wind","Tornado","Tropical","Tsunami","Volcan","Waterspout","Fire","Winter Storm","Winter Weather")

a <- c("Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Weather","Winter Storm","Winter Storm","Winter Storm","Winter Storm","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Wind","Waterspout","Waterspout","Waterspout","Waterspout","Waterspout","Waterspout","Waterspout","Waterspout","Volcan","Volcan","Tsunami","Tsunami","Tropical","Tropical","Tropical","Tropical","Tropical","Tropical","Tropical","Tropical","Tropical","Tropical","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tornado","Tide","Tide","Tide","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm Wind","Thunderstorm","Thunderstorm","Thunderstorm","Thunderstorm","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf")

b<- c("Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Surf","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Snow","Smoke","Sleet","Sleet","Sleet","Sleet","Sleet","Sleet","Sleet","Sleet","Sleet","Sleet","Sleet","Sleet","Seiche","Rip","Rip","Rip","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Rain","Lightning","Lightning","Lightning","Lightning","Lightning","Lightning","Lightning","Lightning","Lightning","Lightning","Lightning","Ice","Ice","Ice","Ice","Ice","Ice","Ice","Ice","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Hurricane","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Heat","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Hail","Funnel","Funnel","Funnel","Funnel","Funnel","Funnel","Frost","Frost","Frost","Frost","Frost","Frost","Frost","Frost","Frost","Frost","Frost","Frost","Frost","Frost","Fog","Fog","Fog","Fog","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Flood","Fire","Fire","Fire","Fire","Fire","Fire","Fire","Fire","Fire","Dust","Dust","Dust","Dust","Dust","Drought","Drought","Drought","Drought","Drought","Drought","Debris","Debris","Debris","Debris","Debris","Debris","Debris","Debris","Debris","Debris","Debris","Debris","Debris","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Cold","Blizzard","Blizzard","Blizzard","Blizzard","Avalanche","Avalanche","Avalanche")


TranslatedEvents  <-c(a,b) 

a <- c("WINTER WEATHER/MIX","EXTREME WINDCHILL","ICY ROADS","FREEZE","WINTRY MIX","WINTER WEATHER MIX","BLACK ICE","EXTREME WIND CHILL","Freezing Drizzle","Winter Weather","ICE ROADS","ICE ON ROAD","WINTER STORM","WINTER WEATHER","WINTER STORMS","WINTER STORM HIGH WINDS","HIGH WIND","STRONG WIND","HIGH WINDS","WIND","STRONG WINDS","MARINE STRONG WIND","GUSTY WINDS","MARINE HIGH WIND","WINDS","HIGH WINDS/COLD","GUSTY WIND","Gusty Winds","HIGH SEAS","WIND DAMAGE","HIGH WINDS/SNOW","Strong Winds","MICROBURST WINDS","Wind","WIND CHILL","HIGH WIND/SEAS","WIND ADVISORY","Gradient wind","Wind Damage","GRADIENT WINDS","Strong Wind","WIND STORM","GRADIENT WIND","HIGH WIND (G40)","gradient wind","STORM FORCE WINDS","Gusty winds","NON TSTM WIND","HIGH WINDS/","SEVERE TURBULENCE","NON-SEVERE WIND DAMAGE","NON-TSTM WIND","HIGH WIND 48","WATERSPOUT","WATERSPOUT/TORNADO","WATERSPOUT-","WATERSPOUTS","WATERSPOUT-TORNADO","WATERSPOUT TORNADO","WATERSPOUT/ TORNADO","WHIRLWIND","VOLCANIC ASH","WALL CLOUD","URBAN/SML STREAM FLD","TSUNAMI","TROPICAL STORM","TROPICAL DEPRESSION","TSTM WIND (G45)","TROPICAL STORM JERRY","TROPICAL STORM GORDON","TROPICAL STORM DEAN","TROPICAL STORM ALBERTO","Tstm Wind","TSTM WIND 45","TSTM WIND (41)","TORNADO","TORNADO F2","TORNADO F1","TORNADO F0","TORNADOES, TSTM WIND, HAIL","TORNADO F3","MICROBURST","WET MICROBURST","Microburst","Whirlwind","LANDSPOUT","DOWNBURST","TORNADOES","DRY MIRCOBURST WINDS","STORM SURGE/TIDE","ASTRONOMICAL HIGH TIDE","ASTRONOMICAL LOW TIDE","TSTM WIND","THUNDERSTORM WIND","THUNDERSTORM WINDS","TSTM WIND/HAIL","MARINE TSTM WIND","MARINE THUNDERSTORM WIND","THUNDERSTORM WINDSS","THUNDERSTORM WINDS HAIL","THUNDERSTORM WINDS/HAIL","THUNDERSTORMS WINDS"," TSTM WIND","THUNDERSTORM WINDS LIGHTNING","THUNDERTORM WINDS","SEVERE THUNDERSTORM WINDS","TSTM WIND (G40)","THUNDERSTORM  WINDS","TSTM WINDS","THUNDERSTORM WIND 60 MPH","THUNDERSTORMS WIND","THUNDERSTORM WIND/ TREES","TSTM WIND 55","THUDERSTORM WINDS","THUNDERSTORM WINDS/ FLOOD","THUNDERSTORMW","THUNDERSTORM WINDS.","GUSTY THUNDERSTORM WINDS","TSTM WIND 52","FLASH FLOODING/THUNDERSTORM WI","THUNDERSTORM WIND G50","THUNDERSTORM WIND G60","THUNDEERSTORM WINDS","THUNDERSTORM WINDS AND","TSTM WIND G58","THUNDERSTORM WINDS 13","THUNDERSTORM WIND G52","TSTM WIND AND LIGHTNING","TUNDERSTORM WIND","TSTM WIND (G35)","THUNDERSTORM WINDS53","TSTMW","THUNDERSTORM WINDSHAIL","THUNDERSTORM WIND 98 MPH","THUNDERSTORM WINDS 63 MPH","TSTM WIND 65)","THUNDERSTORM WINDS G60"," TSTM WIND (G45)","THUNDERSTORM WIND G55","THUNDERSTORM WIND/LIGHTNING","THUNDERSTORM WINDS/FLOODING","THUNDERSTORM WINDS/FUNNEL CLOU","THUNDERSTROM WIND","TSTM WIND  (G45)","TSTM WIND DAMAGE")

b <- c("THUNDERSTORM WIND (G40)","THUNDERSTORM WIND 65 MPH","THUNDERSTORM WIND 65MPH","THUNDERSTORM WIND TREES","LIGHTNING AND THUNDERSTORM WIN","THUNDERSTORM","SEVERE THUNDERSTORM","SEVERE THUNDERSTORMS","THUNDERSTORMS","HIGH SURF","HEAVY SURF/HIGH SURF","HEAVY SURF","High Surf","ROUGH SURF","Heavy Surf","COASTAL SURGE","HIGH SWELLS","ROUGH SEAS","Heavy Rain/High Surf","Coastal Storm","HIGH WIND AND SEAS","HIGH WINDS/COASTAL FLOOD","MARINE MISHAP","WIND AND WAVE","COLD WAVE","COASTAL EROSION","Marine Accident","HIGH WAVES","HEAVY SEAS","   HIGH SURF ADVISORY","Beach Erosion","BEACH EROSION","HEAVY SURF COASTAL FLOODING","HEAVY SWELLS","ROGUE WAVE","COASTALSTORM","HAZARDOUS SURF","HEAVY SNOW","STORM SURGE","SNOW","LIGHT SNOW","LAKE-EFFECT SNOW","SNOW SQUALL","EXCESSIVE SNOW","HEAVY SNOW SQUALLS","HEAVY LAKE SNOW","Light Snow","SNOW/SLEET","SNOW SQUALLS","Snow","HEAVY SNOW/ICE","RECORD SNOW","SNOW/FREEZING RAIN","SNOW/ICE STORM","HEAVY SNOW-SQUALLS","SNOW AND ICE","SNOW/SLEET/FREEZING RAIN","LAKE EFFECT SNOW","BLOWING SNOW","SNOW/BLOWING SNOW","Snow Squalls","SNOW/HIGH WINDS","SNOW/ICE","SNOW/COLD","MODERATE SNOWFALL","HEAVY SNOW/BLIZZARD","HEAVY SNOW/SQUALLS","SNOW AND HEAVY SNOW","HEAVY SNOWPACK","blowing snow","FIRST SNOW","HEAVY SNOW AND STRONG WINDS","HEAVY SNOW/HIGH WINDS & FLOOD","SNOW DROUGHT","Lake Effect Snow","RECORD SNOWFALL","SNOW SHOWERS","EARLY SNOWFALL","HEAVY RAIN/SNOW","HEAVY SNOW/WINTER STORM","SNOW/HEAVY SNOW","THUNDERSNOW","FALLING SNOW/ICE","SNOW/ BITTER COLD","LATE SEASON SNOW","HEAVY SNOW AND HIGH WINDS","Light Snowfall","HEAVY SNOW/WIND","Heavy snow shower","Light snow","SNOW ACCUMULATION","SNOW/ ICE","SMOKE","FREEZING RAIN/SLEET","SLEET","FREEZING RAIN/SNOW","HEAVY SNOW/FREEZING RAIN","Freezing Rain","Mixed Precipitation","SLEET STORM","FREEZING RAIN AND SLEET","SLEET/ICE STORM")


c<-c("SNOW AND ICE STORM","Freezing drizzle","Freezing Spray","SEICHE","RIP CURRENTS","RIP CURRENT","RIP CURRENTS/HEAVY SURF","HEAVY RAIN","FREEZING RAIN","HEAVY RAINS","FREEZING DRIZZLE","RAIN","SNOW FREEZING RAIN","HEAVY MIX","HEAVY RAIN/SEVERE WEATHER","RAIN/SNOW","EXCESSIVE RAINFALL","MONTHLY PRECIPITATION","RECORD RAINFALL","UNSEASONABLY WET","Heavy Rain","HIGH WINDS HEAVY RAINS","MONTHLY RAINFALL","UNSEASONAL RAIN","HEAVY RAIN/LIGHTNING","EXCESSIVE WETNESS","EXCESSIVE RAIN","HEAVY RAIN AND FLOOD","HEAVY PRECIPITATION","HVY RAIN","RAINSTORM","HEAVY SHOWER","HEAVY RAIN/SMALL STREAM URBAN","HIGH WINDS/HEAVY RAIN","Torrential Rainfall","RAIN/WIND","LIGHTNING","OTHER","LIGHTNING FIRE","LIGHTING","LIGHTNING  WAUSEON","LIGHTNING AND HEAVY RAIN","LIGHTNING THUNDERSTORM WINDS","LIGHTNING/HEAVY RAIN","LIGNTNING","LIGHTNING.","LIGHTNING INJURY","ICE STORM","ICE","LIGHT FREEZING RAIN","ICE FLOES","ICE AND SNOW","ICE/STRONG WINDS","ICE JAM","ICE STORM/FLASH FLOOD","HURRICANE/TYPHOON","HURRICANE","HURRICANE ERIN","HURRICANE OPAL","TYPHOON","HURRICANE FELIX","HURRICANE OPAL/HIGH WINDS","COASTAL STORM","HURRICANE-GENERATED SWELLS","HURRICANE EMILY","ROTATING WALL CLOUD","HURRICANE GORDON","Hurricane Edouard","EXCESSIVE HEAT","HEAT","HEAT WAVE","EXTREME HEAT","UNSEASONABLY WARM","RECORD HEAT","UNSEASONABLY WARM AND DRY","HIGH WIND DAMAGE","RECORD WARMTH","HEAT WAVE DROUGHT","Temperature record","HIGH WIND/HEAVY SNOW","Record temperature","UNSEASONABLY HOT","UNUSUAL WARMTH","RECORD/EXCESSIVE HEAT","Record Warmth","RECORD HIGH","RECORD TEMPERATURE","HEAT WAVES","HIGH TIDES","Heat Wave","Heavy surf and wind","WARM WEATHER","HAIL","SMALL HAIL","MIXED PRECIPITATION","HAILSTORM","HAIL 175","MIXED PRECIP","MARINE HAIL","HAIL 100","HAIL 275","HAIL 75","HAIL/WINDS","HAIL 0.75","HAIL DAMAGE","NON SEVERE HAIL","HAIL 150","HAIL 1.00","small hail","HAIL 450","HAIL/WIND","THUNDERSTORM HAIL","GUSTY WIND/HAIL","HAIL 075","HAIL 125","HAIL 200","DRY MICROBURST","FUNNEL CLOUD","GUSTNADO","FUNNEL CLOUDS","FUNNEL","Funnel Cloud","GLAZE","FROST/FREEZE","FROST","Glaze","AGRICULTURAL FREEZE","HARD FREEZE","Damaging Freeze","GLAZE ICE")

d<- c("Freeze","Frost/Freeze","Cold and Frost","FROST\ FREEZE","Early Frost","GLAZE/ICE STORM","FOG","DENSE FOG","FREEZING FOG","FOG AND COLD TEMPERATURES","FLOOD","FLASH FLOOD","FLASH FLOODING","FLOOD/FLASH FLOOD","COASTAL FLOOD","RIVER FLOOD","FLOODING","FLASH FLOOD/FLOOD","COASTAL FLOODING","URBAN FLOOD","FLASH FLOODS","Coastal Flooding","RIVER FLOODING","URBAN FLOODING","FLASH FLOODING/FLOOD","LAKESHORE FLOOD","COASTAL FLOODING/EROSION","River Flooding","Coastal Flood","HEAVY RAINS/FLOODING","HIGH WATER","ICE JAM FLOODING","SNOWMELT FLOODING","FLOOD/RAIN/WINDS","MAJOR FLOOD","URBAN/SMALL STREAM FLOOD","FLOOD & HEAVY RAIN","FLOODS","FLASH FLOOD FROM ICE JAMS","TIDAL FLOODING","RIVER AND STREAM FLOOD","FLOOD/FLASH","URBAN/SMALL STREAM","SMALL STREAM FLOOD","Tidal Flooding","COASTAL  FLOODING/EROSION","URBAN AND SMALL STREAM FLOODIN","MINOR FLOODING","FLOOD/RIVER FLOOD","FLOOD FLASH","SMALL STREAM/URBAN FLOOD","FLASH FLOOD/","FLASH FLOOD - HEAVY RAIN","URBAN FLOODS","RURAL FLOOD"," FLASH FLOOD","FLASH FLOOD LANDSLIDES","LAKE FLOOD","FLOOD/FLASH/FLOOD","FLOOD/FLASHFLOOD","DROWNING","RAPIDLY RISING WATER","WILDFIRE","WILD/FOREST FIRE","WILD FIRES","WILDFIRES","DENSE SMOKE","BRUSH FIRE","FOREST FIRES","WILD/FOREST FIRES","GRASS FIRES","DUST STORM","DUST DEVIL","Dust Devil","BLOWING DUST","DUST STORM/HIGH WINDS","DROUGHT","DROUGHT/EXCESSIVE HEAT","UNSEASONABLY DRY","DRY","DRY CONDITIONS","DRY MICROBURST WINDS","LANDSLIDE","MUDSLIDE","LANDSLIDES","MUD SLIDE","DAM BREAK","Erosion/Cstl Flood","Mudslide","MUDSLIDES","ROCK SLIDE","Mudslides","Landslump","MUD SLIDES","MUD SLIDES URBAN FLOODING","EXTREME COLD","EXTREME COLD/WIND CHILL","COLD/WIND CHILL","COLD","RECORD COLD","UNSEASONABLY COLD","DAMAGING FREEZE","Cold","Extreme Cold","LOW TEMPERATURE","EXTREME WINDCHILL TEMPERATURES","PROLONG COLD","UNSEASONABLY COOL","COLD WEATHER","UNUSUALLY COLD","COLD WIND CHILL TEMPERATURES","Hypothermia/Exposure","HYPOTHERMIA/EXPOSURE","COLD AND WET CONDITIONS","Prolong Cold","RECORD COOL","Extended Cold","Cold Temperature","Unseasonable Cold","COOL AND WET","COLD AND SNOW","COLD/WINDS","HYPERTHERMIA/EXPOSURE","HYPOTHERMIA","BLIZZARD","HIGH WIND/BLIZZARD","GROUND BLIZZARD","BLIZZARD/WINTER STORM","AVALANCHE","HEAVY SNOW/BLIZZARD/AVALANCHE","AVALANCE" )

OrigEventNames <- c(a,b,c,d)
  • Replace Look Up Values with NEW Standard Names
StdEvents <- mapvalues(EventTotals$EventType, OrigEventNames, TranslatedEvents)

EventsToMatch <- EventTotals$EventType

EventTotals$EventType <- StdEvents
  • Aggregate Data By Event Type - Summarize in Order by Damage Amount ($), Injuries, Fatalilties
SortedEventTotal <- EventTotals[with(EventTotals, order(-Damages, -Injuries, 
    -Fatalities, Occurances)), ]


EventTotalsClean <- ddply(SortedEventTotal, "EventType", summarise, Fatalities = sum(Fatalities), 
    Injuries = sum(Injuries), Damages = sum(Damages), Occurances = sum(Occurances))
  • Remove Data and Sort - Exclude Events with Less than 15 events over 60 year period - Represents less than 0.05% of Dataset
EventTotalsClean <- EventTotalsClean[EventTotalsClean$Occurances > 14, ]
EventTotalsClean <- EventTotalsClean[with(EventTotalsClean, order(-Damages, 
    -Injuries, -Fatalities, Occurances)), ]

3 - Calculating Economic Impact for Each Event.

  • Year Over Year History
  YearOverYearStudy <- ggplot(data=YearTotals, aes(x=Year, y=Occurances)) +
                          geom_line() +
                          geom_point() +
                          xlab("YEAR") + ylab("REPORTED EVENTS") +
                          ggtitle("Number of Weather Events Reported - 1950 to 20111") + theme(plot.title = element_text(lineheight = .8, face = "bold"))


  meltedYearTotals <- melt(YearTotals, id = 'Year', variable_name = 'series')
  YearOverYearStudy2 <- ggplot(meltedYearTotals, aes(Year, value)) +
                        geom_line() +
                        #geom_point() +
                        facet_grid(series ~., scales = "free")+

                        xlab("YEAR") + ylab("REPORTED EVENTS") +
                        ggtitle("Number of Weather Events Reported - 1950 to 20111") +
                        theme(plot.title = element_text(lineheight = .8, face = "bold"),
                              axis.text.y = element_text(size = rel(.75)))
  • Results by Event Type
  meltedEventTotals <- melt(EventTotalsClean, id = 'EventType', variable_name = 'series')
  
      HumanmeltedEventTotals <- subset(meltedEventTotals, series == "Injuries" | series == "Fatalities"| series == "Occurances")
 
  

      HumanEventStudy <- ggplot(HumanmeltedEventTotals, aes(reorder(EventType, value), value)) +
                  facet_grid(series ~., scales = "free")+
            
                  geom_bar(aes(y=value), stat ="identity") +
                        #geom_point() +
            
                        xlab("Event Type") + ylab("People or Live Affected") +
                        ggtitle("Human Impact in Injuries or Fatalities - 1950 to 20111") +
                        theme(plot.title = element_text(lineheight = .8, face = "bold"),
                              axis.text.y = element_text(size = rel(.75),angle = 45),
                              axis.text.x = element_text(size = rel(.75),angle = 90))

      FinancialmeltedEventTotals <- subset(meltedEventTotals, series == "Damages" | series == "Occurances")
 
  

      FinancialEventStudy <- ggplot(FinancialmeltedEventTotals, aes(reorder(EventType, value), value)) +
                  facet_grid(series ~., scales = "free")+
            
                  geom_bar(aes(y=value), stat ="identity") +
                        #geom_point() +
                  
                        xlab("Event Type") + ylab("US Dollar ($)") +
                        ggtitle("Financial Impact - Property and Crop Damage in USD - 1950 to 20111") +
                        theme(plot.title = element_text(lineheight = .8, face = "bold"),
                              axis.text.y = element_text(size = rel(.75),angle = 45),
                              axis.text.x = element_text(size = rel(.75),angle = 90))

RESULTS:

1 - Year Over Year History - 1950 to 2011 - Human and Financial Impact by Year.

The Number of Occurances appears to be a function of Detection and Reporting as Pre 1990 show fewer incidents. However, Injuries are still fairly flat over time thus suggesting earlier report accuracy was a function of human impact vs damages.

2 - Event Analysis - Human Impact.

Although Thunderstorms are the most frequent activity, the human toll is not directly proporation to the number of incidents. Tornados have the most impact on people, followed by Heat, Flooding, Lightning. See the Appendix for a detailed table.

3 - Event Analysis - Financial Impact.

Like human impacts, financials are not perfectly corellated to frequency of events. Flood, Hurricanes, Tornados, Snow and Hail round out the top five economic issues. See the Appendix for a detailed table.

APPENDIX: Final Data Table And Data Conversion Work

2 - Events and Impacts by Year.

YearTotals$Year <- as.character(YearTotals$Year)
YearTotals$Fatalities <- as.character(YearTotals$Fatalities)
YearTotals$Injuries <- as.character(YearTotals$Injuries)
YearTotals$Damages <- as.character(YearTotals$Damages)

tab1 <- xtable(YearTotals,align = c("c","c","c","c","c","c"),label=NULL )
print(tab1, type="html", include.rownames = FALSE)
Year Fatalities Injuries Damages Occurances
1950 70 659 34481650 223
1951 34 524 65505990 269
1952 230 1915 94102240 272
1953 519 5131 596104700 492
1954 36 715 85805320 609
1955 129 926 82660630 1413
1956 83 1355 116912350 1703
1957 193 1976 224388890 2184
1958 67 535 128994610 2213
1959 58 734 87453040 1813
1960 46 737 118224240 1945
1961 52 1087 179388730 2246
1962 30 551 67200730 2389
1963 31 538 87230580 1968
1964 73 1148 165990820 2348
1965 301 5197 1762499040 2855
1966 98 2030 476629360 2388
1967 114 2144 577019220 2688
1968 131 2522 210079910 3312
1969 66 1311 113274230 2926
1970 73 1355 625205980 3215
1971 159 2723 202120550 3471
1972 27 976 151172570 2168
1973 89 2406 2063066560 4463
1974 366 6824 1943517780 5386
1975 60 1457 826723790 4975
1976 44 1195 308497190 3768
1977 43 771 342024230 3728
1978 53 919 616068160 3657
1979 84 3014 946241240 4279
1980 28 1157 2152814350 6146
1981 24 798 765888310 4517
1982 64 1276 1429218000 7132
1983 37 816 765855590 8322
1984 160 2858 2131171390 7335
1985 112 1513 1608097210 7979
1986 51 915 1034912340 8726
1987 89 1416 407837950 7367
1988 55 1030 1124214650 7257
1989 79 1675 1760051050 10410
1990 95 1825 1560568070 10946
1991 73 1355 1152296430 12522
1992 54 1754 1406688900 13534
1993 298 2149 16439604772 12607
1994 344 4161 3873404498.5 20631
1995 1491 4480 10749448608.21 27970
1996 542 2717 6172496790 32270
1997 601 3800 9642531240 28680
1998 687 11177 11745719580 38128
1999 908 5148 8815191150 31289
2000 477 2803 5730118750 34471
2001 469 2721 10091224270 34962
2002 498 3155 4162375590 36293
2003 443 2931 10316696990 39752
2004 370 2426 25431467920 39363
2005 469 1834 96860546021 39184
2006 599 3368 122025521590 44034
2007 421 2191 5880246160 43289
2008 488 2703 15770456080 55663
2009 333 1354 5291054130 45817
2010 425 1855 9321053640 48161
2011 1002 7792 20992413960 62174

2 - Event Analysis - Human Impact.

ColsToKeep <- c("EventType", "Fatalities", "Injuries", "Occurances")
HumanActivityData <- EventTotalsClean[, (names(EventTotalsClean) %in% ColsToKeep)]
HumanActivityData <- HumanActivityData[with(HumanActivityData, order(-Injuries)), 
    ]
tab2 <- xtable(HumanActivityData,align = c("C","c","c","c","c"),label=NULL )
print(tab2, type="html", include.rownames = FALSE)
EventType Fatalities Injuries Occurances
Tornado 5659.00 91365.00 60705
Thunderstorm Wind 729.00 9528.00 336627
Heat 3179.00 9244.00 3015
Flood 1530.00 8602.00 82658
Lightning 817.00 5235.00 15813
Ice 95.00 2114.00 2099
Wind 451.00 1889.00 26281
Winter Storm 250.00 1751.00 18463
Fire 90.00 1608.00 4246
Hail 17.00 1397.00 289306
Hurricane 138.00 1334.00 312
Snow 160.00 1194.00 17834
Fog 81.00 1077.00 1877
Blizzard 101.00 805.00 2728
Rip 577.00 529.00 776
Dust 24.00 483.00 581
Tropical 66.00 386.00 800
Rain 114.00 320.00 12182
Cold 462.00 315.00 2472
Surf 186.00 281.00 1091
Winter Weather 54.00 278.00 1550
Frost 8.00 234.00 1470
Tsunami 61.00 208.00 3412
Avalanche 225.00 171.00 388
Waterspout 6.00 72.00 3857
Debris 44.00 55.00 652
Funnel 3.00 31.00 7169
Thunderstorm 1.00 12.00 85
Tide 11.00 5.00 425
Drought 2.00 4.00 2577
Sleet 4.00 0.00 106
Seiche 0.00 0.00 21
Volcan 0.00 0.00 27

3 - Event Analysis - Financial Impact.

ColsToKeep <- c("EventType", "Damages", "Occurances")
FinancialActivityData <- EventTotalsClean[, (names(EventTotalsClean) %in% ColsToKeep)]
FinancialActivityData <- FinancialActivityData[with(FinancialActivityData, order(-Damages)), 
    ]
tab3 <- xtable(FinancialActivityData,align = c("c","c","c","c"),label=NULL )
print(tab3, type="html", include.rownames = FALSE)
EventType Damages Occurances
Flood 168616497712.50 82658
Hurricane 85404032761.00 312
Tornado 58655011446.50 60705
Snow 44337820050.00 17834
Hail 16581830735.70 289306
Thunderstorm Wind 10185604438.10 336627
Fire 8509841230.00 4246
Tropical 7729064250.00 800
Winter Storm 6772767151.00 18463
Wind 6211007123.00 26281
Tide 4651783000.00 425
Ice 3968507360.00 2099
Rain 3257303490.00 12182
Thunderstorm 1208472550.00 85
Drought 1192069130.00 2577
Lightning 940159619.50 15813
Blizzard 661043950.00 2728
Debris 344820100.00 652
Tsunami 205236750.00 3412
Cold 165367300.00 2472
Surf 122576000.00 1091
Waterspout 60737200.00 3857
Frost 31692900.00 1470
Heat 27484440.00 3015
Fog 25011500.00 1877
Winter Weather 11160720.00 1550
Avalanche 8721800.00 388
Dust 8452630.00 581
Funnel 7045800.00 7169
Sleet 6410000.00 106
Seiche 980000.00 21
Volcan 500000.00 27
Rip 163000.00 776