Background/Objective

The National Oceanic and Atmospheric Administration provides a variety of data pertaining to the climate, ocean, and atmosphere, including historical data of storms in the US.

This case study uses the International Best Track Archive for Climate Stewardship (IBTrACS) Storm data collected by NOAA https://www.ncdc.noaa.gov/ibtracs/index.php. The IBTrACS data is then joined with spatial world and US state data to create visuals that track past hurricanes, and to determine which states experience the most storms.

Data

data(world)
data(us_states)

setwd("/Users/kyra//08b_data")
storm_sf <- read_sf("IBTrACS.NA.list.v04r00.points.shp", quiet = T,  stringsAsFactors = FALSE)

Method

First the data was filtered for storms from 1950-present, then mutate_if was used to convert values of -9999.0 in all numeric columns to NA. Additonally, a column for decades was added. Finally, st_bbox was used to identify the bounding box of the storm data, which was then saved to the object region.

storm_sf <- storm_sf%>%
  filter(SEASON >= 1950)%>%
  mutate_if(is.numeric, function(x) ifelse(x==-9999.0,NA,x))

storm_sf_decade <-storm_sf%>%
  mutate(decade=floor(SEASON/10)*10)

region <- st_bbox(storm_sf)

Results

The following graph displays storm paths by decade, from 1950-2020.

crop_world <- st_crop(world, region)

ggplot()+
  geom_sf(data=crop_world)+
  stat_bin2d(data=storm_sf_decade, aes(y=st_coordinates(storm_sf_decade)[,2], x=st_coordinates(storm_sf_decade)[,1]), bins=100)+ 
  facet_wrap(~decade)+
  scale_fill_distiller(palette="YlOrRd", trans="log", direction=-1, breaks= c(1,10,100,1000))

The table below dislays the top five states which experienced the most storms from 1950-present.

storm_crs <- st_crs(storm_sf)

states <- st_transform(us_states, storm_crs)

states <- states %>%
  rename(StateName=NAME)

storm_states<- st_join(storm_sf_decade, states, join = st_intersects,left = F)

storm_states<- storm_states %>%
  group_by(StateName)

storms_by_state <- storm_states %>% 
  summarise(n=length(unique(SID)))

storms_by_state <- arrange(storms_by_state, desc(n))

top_5_states<- slice(storms_by_state, 1:5)

stormiest_states <- top_5_states%>%
  st_set_geometry(NULL)%>%
  knitr::kable()

stormiest_states
StateName n
Florida 131
North Carolina 84
Texas 69
Georgia 68
Louisiana 63

Conclusion

Using the IBTrACS storm data from NOAA, I was able to create a visual that is historically informative and displays the paths of various storms in the US from 1950-present. Additionally, in joining the NOAA IBTrACS storm data and spatial data for the US states, I was able to determine that FLorida, North Carolina, Texa, Georgia, and Louisisana, have experienced the most storms, historically out of all the states in the US.