Storms and other severe weather events can cause both public health and economic problems for communities and municipalities. Many severe events can result in fatalities, injuries, and property damage, and preventing such outcomes to the extent possible is a key concern. This project involves exploring the U.S. National Oceanic and Atmospheric Administration’s (NOAA) storm database. This 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.

Synopsis

The analysis of the historical (NOAA) storm database shows that tornadoes are the most dangerous weather event type to the population health in the USA, followed by heat and floods leaving thousands injuried, or resulting in fatalities. Weather events also caused great impact on the economy, with floods and thunderstorms causing billions of dollars in property damage. There is also great economic loss in the agriculture sector; the most significant weather events that caused crop damage are drought, floods, hurricanes and hail.

Data processing

Download the raw data file, extract the data and select the columns of interest.

The original data has many misspelled words and variables in the EVTYPE (event type) column which refer to the same type of event. Therefore the most significant events were grouped.

dt <- data1 %>% 
mutate(EVTYPE = replace(EVTYPE, EVTYPE %in% c("THUNDERSTORM WIND G50","THUNDERSTORM WINDS/FUNNEL CLOU","THUNDERSTORM  WINDS","THUNDERSTORMS WIND","THUNDERSTORM WINDS.","THUNDERSTORM WIND/ TREES","THUNDERSTORM WIND/ TREE","THUNDERSTORM WIND G55","THUNDERSTORM WINDS G60","THUNDERSTORM WIND TREES","THUNDERSTORM WIND.","THUNDERSTORM WINDSHAIL","THUNDERSTORM WIND 65 MPH","THUDERSTORM WINDS","THUNDERSTORM WINDS 63 MPH","THUNDERSTORM WIND G52","HUNDERSTORM WINDS AND","Tstm Wind","THUNDERSTORMW","TSTMW","TSTM WIND 40","TSTM WIND 45","TSTM WIND (G35)", "TSTM WIND", "TSTM WINDS","TSTM WIND 40", "TSTM WIND (41)", "TSTM WIND 65)", "TSTM WIND G58", "TSTM WIND 55", "THUNDERSTORM WIND 65MPH", "THUNDERSTORM WIND 98 MPH","THUNDERSTORM WIND 60 MPH", "THUNDERSTORM DAMAGE TO", "THUNDERSTORM WIND (G40)", "THUNDEERSTORM WINDS", "Tstm Wind", "THUNDERSTORMWINDS", "THUNDERSNOW","THUNDERESTORM WINDS", "THUDERSTORM WINDS", "SEVERE THUNDERSTORM", "SEVERE THUNDERSTORMS", "SEVERE THUNDERSTORM WINDS", " TSTM WIND (G45)","THUNDERSTORM WINDS", "THUNDERSTORM WIND", "TSTM WIND (G40)", "TSTM WIND (G45)", "TSTM WIND G45", "TUNDERSTORM WIND", "THUNDERSTORM WINDSS", "THUNDERSTORM WINS", "THUNDERSTORMS", "THUNDERTORM WINDS", "THUNERSTORM WINDS", "THUNDERTORM WINDS", "THUNDERSTROM WIND", "   THUNDERSTORMS WINDS", "THUNDERSTORM WINDS53", "THUNDERSTORM WINDS 13", "THUNDERSTORM WIND 98 MPH", "TSTM WIND  (G45)", "TSTM WIND DAMAGE", "THUNDERSTROM WIND", "THUNDERSTORMS WINDS", "THUNDERSTORM WINDSS", "THUNDERSTORM WINDS AND", " TSTM WIND", "TSTM WIND/HAIL", "TSTM WIND AND LIGHTNING", "THUNDERSTORM WINDS/HAIL", "THUNDERSTORM WINDS/FLOODING", "THUNDERSTORM WINDS/ FLOOD", "THUNDERSTORM WINDS LIGHTNING", "THUNDERSTORM WINDS HAIL", "THUNDERSTORM WIND/LIGHTNING", "THUNDERSTORM WIND/AWNING", "THUNDERSTORM WIND G60", "THUNDERSTORM HAIL", "THUNDERSTORM WIND/HAIL"), "THUNDERSTORMS"))

dt2 <- dt %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("HEAT WAVES", "HEAT WAVE","RECORD/EXCESSIVE HEAT","EXCESSIVE HEAT","EXTREME HEAT", "RECORD HEAT", "Heat Wave", "UNSEASONABLY WARM", "UNSEASONABLY WARM AND DRY", "WARM WEATHER"), "HEAT"))  

dt3 <- dt2 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("FROST\\FREEZE", "Early Frost","Frost/Freeze","FROST/FREEZE","FREEZE", "AGRICULTURAL FREEZE", "DAMAGING FREEZE","HARD FREEZE", "Freeze", "Damaging Freeze", "ICE ROADS", "ICE ON ROAD", "ICE", "GLAZE ICE", "ICE FLOES", "ICE JAM", "BLACK ICE", "GLAZE"), "FROST"))  

dt4 <- dt3 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("FLOOD/FLASH/FLOOD", " FLASH FLOOD", "FLASH FLOOD","FLASH FLOODING","FLASH FLOODING/THUNDERSTORM WI", "FLOODING", "BREAKUP FLOODING", "RIVER FLOOD", "COASTAL FLOOD", "FLOODING/HEAVY RAIN", "FLOOD/FLASH FLOOD", "FLOOD/RAIN/WINDS", "FLASH FLOOD WINDS", "FLASH FLOOD/", "URBAN FLOOD", "COASTAL FLOODING", "URBAN/SMALL STREAM FLOOD", "URBAN FLOODING", "MINOR FLOODING", "FLASH FLOODS", "FLOODS", "RURAL FLOOD","MAJOR FLOOD", "SMALL STREAM FLOOD", "LAKE FLOOD", "URBAN AND SMALL STREAM FLOODIN", "RIVER AND STREAM FLOOD", "RIVER FLOODING", "FLOOD/RIVER FLOOD","FLASH FLOOD FROM ICE JAMS","FLASH FLOOD - HEAVY RAIN", "FLASH FLOOD/ STREET", "FLOOD FLASH", "FLASH FLOOD/FLOOD", "FLOOD/FLASH", "SNOWMELT FLOODING", "FLASH FLOODING/FLOOD", "FLOOD & HEAVY RAIN", "FLOOD/FLASHFLOOD", "URBAN FLOODS", "FLASH FLOOD/LANDSLIDE", "FLASH FLOOD LANDSLIDES", "Ice jam flood (minor", "River Flooding", "Coastal Flooding", "TIDAL FLOODING", "Tidal Flooding", "Coastal Flood", "LAKESHORE FLOOD", "COASTAL  FLOODING/EROSION", "RAPIDLY RISING WATER", "URBAN/SML STREAM FLD", "ICE JAM FLOODING"), "FLOODS"))  

dt5 <- dt4 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("HAIL/WINDS", "HAIL/WIND","HAIL 150","HAIL 100","HAIL 075","HAIL 0.75","HAIL 75","HAIL 175", "HAIL 450", "HAIL 275" ,"HAIL 125", "HAIL 200", "HAILSTORM", "HAIL DAMAGE", "SMALL HAIL", "GUSTY WIND/HAIL" ), "HAIL"))  

dt6 <- dt5 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("TORNADO F0", "WATERSPOUT/TORNADO","WATERSPOUT TORNADO","TORNADOES, TSTM WIND, HAIL","WATERSPOUT-TORNADO","COLD AIR TORNADO","WATERSPOUT/ TORNADO","TORNADO F3", "TORNDAO", "TORNADO F1" ,"TORNADO F2", "TORNADOES", "WATERSPOUT-"), "TORNADOES"))  

dt7 <- dt6 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("HEAVY SNOW", "HEAVY SNOW/WIND","HEAVY SNOWPACK","FREEZING RAIN/SNOW","SNOW AND HEAVY SNOW","SNOW/HEAVY SNOW","SNOW AND ICE","SNOW AND ICE STORM", "HEAVY LAKE SNOW", "HEAVY SNOW/FREEZING RAIN" ,"HEAVY SNOW/WINTER STORM", "HEAVY SNOW AND HIGH WINDS", "HEAVY SNOW/HIGH WINDS & FLOOD", "SNOW/COLD", "HEAVY SNOW SQUALLS", "SNOW SQUALL", "SNOW/ICE STORM", "HEAVY SNOW-SQUALLS", "SNOW FREEZING RAIN", "SNOW/FREEZING RAIN", "SNOW/SLEET/FREEZING RAIN", "SNOW/SLEET", "SNOW SQUALLS","RECORD SNOW", "BLOWING SNOW", "HEAVY SNOW/BLIZZARD", "ICE AND SNOW", "HEAVY SNOW/ICE", "SNOW/ICE", "HEAVY SNOW/BLIZZARD/AVALANCHE", "SNOW/ BITTER COLD", "SNOW/HIGH WINDS", "HEAVY SNOW AND STRONG WINDS", "SNOW ACCUMULATION", "SNOW/BLOWING SNOW", "Heavy snow shower", "Light snow", "Light Snow", "Snow Squalls", "Light Snowfall", "Snow", "COLD AND SNOW", "RAIN/SNOW", "LIGHT SNOW", "blowing snow", "EXCESSIVE SNOW", "LATE SEASON SNOW", "FALLING SNOW/ICE", "SNOW/ ICE", "HEAVY SNOW/SQUALLS"), "SNOW"))  

dt8 <- dt7 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("TROPICAL STORM ALBERTO", "TROPICAL STORM GORDON", "TROPICAL STORM JERRY", "TROPICAL STORM DEAN", "TROPICAL DEPRESSION"), "TROPICAL STORMS"))  
## Warning in `[<-.factor`(`*tmp*`, list, value = "TROPICAL STORMS"): invalid
## factor level, NA generated
dt9 <- dt8 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("GRASS FIRES", "FOREST FIRES", "WILDFIRES", "WILD/FOREST FIRES", "WILD/FOREST FIRE", "BRUSH FIRE", "WILDFIRE"), "WILD FIRES"))  

dt10 <- dt9 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("Landslump", "LANDSLIDE", "Mudslides", "Mudslide", "MUDSLIDES", "MUD SLIDE", "MUD SLIDES", "MUD SLIDES URBAN FLOODING", "ROCK SLIDE", "LANDSPOUT", "MUDSLIDE"), "LANDSLIDES"))  

dt11 <- dt10 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("LIGHTNING AND HEAVY RAIN","LIGHTNING/HEAVY RAIN", "LIGHTNING INJURY", "LIGHTNING.", "LIGNTNING", "LIGHTNING THUNDERSTORM WINDS", "LIGHTNING AND THUNDERSTORM WIN", "LIGHTNING  WAUSEON", "LIGHTNING FIRE", "LIGHTING"), "LIGHTNING")) 

dt12 <- dt11 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("Heavy Rain/High Surf", "Torrential Rainfall", "HEAVY RAINS", "HEAVY RAIN/LIGHTNING", "RAINSTORM", "HEAVY RAIN/SNOW", "HEAVY RAIN/SEVERE WEATHER", "HVY RAIN", "HEAVY RAIN AND FLOOD", "RAIN/WIND", "HEAVY PRECIPITATION", "HEAVY RAINS/FLOODING", "EXCESSIVE RAINFALL", "HEAVY RAIN/SMALL STREAM URBAN", "Torrential Rainfall", "UNSEASONAL RAIN", "RECORD RAINFALL", "HEAVY SHOWER"), "HEAVY RAIN")) 

dt13 <- dt12 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("EXTREME COLD", "COLD AND WET CONDITIONS", "RECORD COLD", "COLD WAVE", "GLAZE/ICE STORM", "FOG AND COLD TEMPERATURES", "UNSEASONABLY COLD", "LOW TEMPERATURE", "Unseasonable Cold", "Extreme Cold", "Extended Cold", "Cold", "Freezing Spray", "Glaze", "Cold Temperature", "EXTREME COLD/WIND CHILL", "COLD/WIND CHILL", "COLD", "FREEZING RAIN", "FREEZING RAIN/SLEET", "FREEZING DRIZZLE", "Freezing Spray", "Freezing Drizzle", "Freezing Rain", "Freezing drizzle", "LIGHT FREEZING RAIN", "FREEZING FOG", "COLD/WIND CHILL", "WINTER WEATHER MIX", "WINTRY MIX", "WINTER WEATHER/MIX", "Wintry Mix", "EXTREME WINDCHILL", "COLD/WINDS", "ICE/STRONG WINDS", "HIGH WINDS/SNOW", "ICY ROADS", "COOL AND WET"), "COLD WEATHER")) 

dt14 <- dt13 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("HIGH WINDS", "WIND", "HIGH WIND", "HIGH WINDS HEAVY RAINS", " HIGH WIND/SEAS", "HIGH WINDS/HEAVY RAIN", "GUSTY WINDS", "WINTER STORM HIGH WINDS", "STRONG WIND", "HIGH WIND DAMAGE", "DRY MIRCOBURST WINDS", "MICROBURST WINDS", "DRY MICROBURST", "STRONG WINDS", "HIGH WINDS/", "HIGH  WINDS", "WIND DAMAGE", "WIND STORM", "WIND/HAIL", "HIGH WINDS/COASTAL FLOOD", "DUST STORM/HIGH WINDS", "STORM FORCE WINDS", "HIGH WIND/HEAVY SNOW", "HIGH WIND/BLIZZARD", "HIGH WINDS/COLD", "HIGH WIND AND SEAS", "HIGH WIND 48", "Strong Wind", "Strong Winds", "Whirlwind", "Wind Damage", "Microburst", "Wind", "Gusty Winds", "Gusty wind/rain", "GUSTY WIND/HVY RAIN", "GUSTY WIND", "HIGH WIND (G40)", "MICROBURST", "HIGH WIND/SEAS", "EXTREME WIND CHILL", "Gradient wind", "GRADIENT WIND", "gradient wind", "Gusty winds"), "WIND")) 

dt15 <- dt14 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("HURRICANE ERIN", "HURRICANE OPAL/HIGH WINDS", "HURRICANE OPAL", "HURRICANE", "HURRICANE-GENERATED SWELLS", "HURRICANE EMILY", "HURRICANE GORDON", "HURRICANE FELIX", "Hurricane Edouard", "HURRICANE/TYPHOON"), "HURRICANES")) 
## Warning in `[<-.factor`(`*tmp*`, list, value = "HURRICANES"): invalid factor
## level, NA generated
dt16 <- dt15 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("HIGH SEAS", "HIGH TIDES", "HIGH SURF", "HEAVY SURF COASTAL FLOODING", "HEAVY SURF", "RIP CURRENTS/HEAVY SURF", "ROUGH SURF", "RIP CURRENT", "HIGH WAVES", "HEAVY SEAS", "HIGH WATER", "ROUGH SURF", "Heavy Surf", "High Surf", "Heavy surf and wind", "ROUGH SEAS", "ROGUE WAVE", "   HIGH SURF ADVISORY", "HAZARDOUS SURF", "ASTRONOMICAL HIGH TIDE", " HEAVY SURF/HIGH SURF"), "RIP CURRENTS")) 

dt17 <- dt16 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c("WINTER STORMS", "STORM SURGE", "TROPICAL STORM", "SLEET/ICE STORM", "BLIZZARD/WINTER STORM", "COASTAL STORM", "Coastal Storm", "COASTALSTORM", "STORM SURGE/TIDE", "ICE STORM/FLASH FLOOD", "DUST STORM", "ICE STORM"), "STORMS")) 
## Warning in `[<-.factor`(`*tmp*`, list, value = "STORMS"): invalid factor level,
## NA generated
dt18 <- dt17 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c ("AVALANCE", "AVALANCHE"), "AVALANCHES")) 
## Warning in `[<-.factor`(`*tmp*`, list, value = "AVALANCHES"): invalid factor
## level, NA generated
dt19 <- dt18 %>% mutate (EVTYPE = replace(EVTYPE, EVTYPE %in% c ("HEAT WAVE DROUGHT", "DROUGHT/EXCESSIVE HEAT"), "DROUGHT")) 

Remove punctuation and convert all variables to upper case

dt19$PROPDMGEXP = toupper(dt19$PROPDMGEXP)
dt19$CROPDMGEXP = toupper(dt19$CROPDMGEXP)

# Remove character (+, $, -, ?, etc)
dt19$PROPDMGEXP <-  gsub("[[:blank:][:punct:] +]", " ", dt19$PROPDMGEXP)
dt19$CROPDMGEXP <-  gsub("[[:blank:][:punct:] +]", " ", dt19$CROPDMGEXP)
dt19$EVTYPE <-  gsub("[[:blank:][:punct:] +]", "", dt19$EVTYPE)

unique(dt19$PROPDMGEXP)
##  [1] "K" "M" ""  "B" " " "0" "5" "6" "4" "H" "2" "7" "3"
unique(dt19$CROPDMGEXP)
## [1] ""  "M" "K" "B" " " "0"
unique(dt19$EVTYPE)
##  [1] "TORNADO"                "THUNDERSTORMS"          "HAIL"                  
##  [4] NA                       "WINTERSTORM"            "HEAVYRAIN"             
##  [7] "LIGHTNING"              "DENSEFOG"               "RIPCURRENTS"           
## [10] "FLOODS"                 "TORNADOES"              "HEAT"                  
## [13] "WIND"                   "COLDWEATHER"            "WATERSPOUT"            
## [16] "FROST"                  "MARINEMISHAP"           "SEVERETURBULENCE"      
## [19] "SNOW"                   "FLOOD"                  "APACHECOUNTY"          
## [22] "SLEET"                  "DUSTDEVIL"              "WILDFIRES"             
## [25] "HIGH"                   "LANDSLIDES"             "WINDS"                 
## [28] "FUNNELCLOUD"            "BLIZZARD"               "DROUGHT"               
## [31] "EXCESSIVEWETNESS"       "GUSTNADO"               "GROUNDBLIZZARD"        
## [34] "FOG"                    "WINTERWEATHER"          "THUNDERSTORM"          
## [37] "RAIN"                   "DUSTDEVILWATERSPOUT"    "URBANANDSMALL"         
## [40] "HEAVYMIX"               "COASTALSURGE"           "HYPOTHERMIA"           
## [43] ""                       "URBANSMALLSTREAM"       "HEAVYSWELLS"           
## [46] "URBANSMALL"             "Other"                  "DustDevil"             
## [49] "MarineAccident"         "ErosionCstlFlood"       "BeachErosion"          
## [52] "MIXEDPRECIP"            "DOWNBURST"              "OTHER"                 
## [55] "HypothermiaExposure"    "HYPOTHERMIAEXPOSURE"    "LakeEffectSnow"        
## [58] "MixedPrecipitation"     "DAMBREAK"               "WETMICROBURST"         
## [61] "TYPHOON"                "HIGHSWELLS"             "COASTALFLOODINGEROSION"
## [64] "COASTALEROSION"         "SEICHE"                 "HYPERTHERMIAEXPOSURE"  
## [67] "LAKEEFFECTSNOW"         "MIXEDPRECIPITATION"     "WINDANDWAVE"           
## [70] "NONSEVEREWINDDAMAGE"    "NONTSTMWIND"            "BLOWINGDUST"           
## [73] "VOLCANICASH"            "WHIRLWIND"              "DROWNING"              
## [76] "MARINETSTMWIND"         "HEAVYSURFHIGHSURF"      "MARINEHIGHWIND"        
## [79] "TSUNAMI"                "MARINETHUNDERSTORMWIND" "MARINESTRONGWIND"      
## [82] "ASTRONOMICALLOWTIDE"    "DENSESMOKE"             "MARINEHAIL"

Convert property and crop to correct values by multiplying them by the exponent variable.

The original data contain two columns each for property and crop damage, the columns PROPDMG and CROPDMG have values in dollars and columns PROPDMGEXP and CROPDMGEXP have the exponent. Therefore, the columns with exponents need transformation in order to calculate the property and crop damage for each event.

# Exponential transformation for values (H=Hundreds, K=Thousands, M=Millions, B=Billions) 

options(scipen = 999)  # Turn off scientific notations for numbers 

dt19$PROPDMGEXP2[grepl("H", dt19$PROPDMGEXP,ignore.case = TRUE)]<-100
dt19$PROPDMGEXP2[grepl("K", dt19$PROPDMGEXP,ignore.case = TRUE)]<-1000
dt19$PROPDMGEXP2[grepl("M", dt19$PROPDMGEXP,ignore.case = TRUE)]<-1000000
dt19$PROPDMGEXP2[grepl("B", dt19$PROPDMGEXP,ignore.case = TRUE)]<-1000000000

dt19$CROPDMGEXP2[grepl("H", dt19$CROPDMGEXP,ignore.case = TRUE)]<-100
dt19$CROPDMGEXP2[grepl("K", dt19$CROPDMGEXP,ignore.case = TRUE)]<-1000
dt19$CROPDMGEXP2[grepl("M", dt19$CROPDMGEXP,ignore.case = TRUE)]<-1000000
dt19$CROPDMGEXP2[grepl("B", dt19$CROPDMGEXP,ignore.case = TRUE)]<-1000000000

## Ccompute damage 
dt19$PROPDMGEXP3 <- dt19$PROPDMG * dt19$PROPDMGEXP2
dt19$CROPDMGEXP3 <- dt19$CROPDMG * dt19$CROPDMGEXP2

dtclean <- dt19

Calculate total weather impact on public health and select the top 10

dmghealth <- dtclean %>%
  group_by(EVTYPE)%>%
   summarise(FATALITIES = sum(FATALITIES, na.rm = TRUE),
            INJURIES = sum(INJURIES, na.rm = TRUE))

# Events that caused most fatalities and injuries
dmghealth2 <- dmghealth %>% arrange(desc(FATALITIES, INJURIES)) %>% 
  drop_na()%>%
  top_n(10)  
## Selecting by INJURIES

Calculate total economic loss caused by weather events and select the top 10

dmgecon <- dtclean %>%
  group_by(EVTYPE)%>%
   summarise(PROPDMGEXP3 = sum(PROPDMGEXP3, na.rm = TRUE),
             CROPDMGEXP3 = sum(CROPDMGEXP3, na.rm = TRUE))

# Events that caused most properties and crops damage 
dmgecon2 <- dmgecon %>% arrange(desc(PROPDMGEXP3)) %>% 
  drop_na()%>%
  top_n(10) 
## Selecting by CROPDMGEXP3

Results

Across the United States, which types of events (as indicated in the EVTYPE variable) are most harmful ct to population health?

Tornadoes and thunderstormes caused the most injuries amongst all event types. However, for fatalities tornadoes and heat are the most dangerous weather events for population health during 1950-2012 in the USA.

Across the United States, which types of events have the greatest economic consequences?

The analyses for economic loss show that floods, hurricanes and hail are the weather events that caused more damage to the property sector. For crops the top events responsible for damage and financial loss are drought, floods, hurricanes and hail.

Total impact of weather events in USA states (1950-2012)

## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
## Warning: Column `state_abbv` joining character vector and factor, coercing into
## character vector

## Warning: Column `state_abbv` joining character vector and factor, coercing into
## character vector

## Warning: Column `state_abbv` joining character vector and factor, coercing into
## character vector

## Warning: Column `state_abbv` joining character vector and factor, coercing into
## character vector

Conclusion

The data show the total impact of weather events in USA (1950-2012), which resulted in billions of dollars in economic loss and great number of fatalities and injuries. The maps show that the Southeast USA is most affected by weather events. Climate change predictions show that weather events will increase in the future. Studies of historical data are fundamental to understand the trends and seasonality of these events in order to inform governmental and private organizations, and civil society, to prepare and create alternatives to minimize the impacts of future weather events.