National Oceanic and Atmospheric Association Project

The National Oceanic and Atmospheric Association (NOAA) of the National Centers for Environmental Information (NCEI) provides public access to some weather data, including the GHCN (Global Historical Climatology Network)-Daily database of summary statistics from weather stations around the world.

These data were accessed from the NOAA National Climatic Data Center, http://doi.org/10.7289/V5D21VHZ (Menne, M.J., I. Durre, B. Korzeniewski, S. McNeal, K. Thomas, X. Yin, S. Anthony, R. Ray, R.S. Vose, B.E.Gleason, and T.G. Houston, 2012: Global Historical Climatology Network - Daily (GHCN-Daily), Version 3.22).

set.seed(8) 

ny_noaa <-
  ny_noaa %>%
  sample_n(99999) %>%
  janitor::clean_names() %>% 
  drop_na() %>% 
  separate(col = date, 
           into = c("year","month", "day")) %>%
  mutate(across(.cols
                = c(year, month, day), as.integer)) %>%
  mutate(month = month.name[month]) %>%
  mutate(snow = as.numeric(snow),
         tmax = as.integer(tmax)/10,
         tmin = as.integer(tmin)/10)

Box Plot

ny_noaa %>%
  mutate(month = 
           fct_reorder(month, tmin)) %>%
  group_by(year, month, id) %>%
  summarize(mean_tmin = mean(tmin)) %>%
  plot_ly(x = ~ month, 
          y = ~ round(mean_tmin, digits = 0), 
          color = ~ month, 
          alpha = 0.6,
          type = "box",
          colors = "inferno") %>%
  layout(
    title = 
      "Average Minimum Temperature per Month", 
    xaxis = list(title = "Month"),
    yaxis = list(title = "Mean Minimum Temperature (Celcius)")) 

Bar Plot

ny_noaa %>%
  count(snwd) %>% 
  filter(snwd > 0) %>% 
  plot_ly(x = ~ snwd, 
          y = ~ n, 
          type = "bar", 
          color = "inferno") %>%
  layout(
    title = 
      "Snow Depth Count (Snow Days Only)", 
    xaxis = list(title = "Snow Depth (mm)"),
    yaxis = list(title = "Count (n)"))

Scatter Plot

ny_noaa %>%
  filter(year == 2010) %>%
  mutate(text_label = str_c("Max Temperature: ", tmax, 
                            ", Min Temperature: ", tmin, 
                            ", Date: ", month," ", day,", ", year)) %>%
  plot_ly(x = ~ tmin, 
          y = ~ tmax,
          alpha = 0.6,
          color = ~ month,
          colors = "inferno", 
          text = ~ text_label) %>%
  layout(title = "Minimum Temperature versus Maximum Temperature (2010)",
         xaxis = list(title = "Minimum temperature (Celcius)"),
         yaxis = list(title = "Maximum temperature (Celcius)"))

Click here to return to the main page.