## Auto-install required R packages
if (!require("pacman")) install.packages("pacman")
pacman::p_load(aire.zmvm, dplyr, ggplot2, lubridate, viridis, scales)
df <- download_radiation(type = "UVA", 2017)
df$mxc_time <- format(as.POSIXct(paste0(df$date, " ", df$hour, ":00"),
                                 tz = "Etc/GMT+6"),
                      tz = "America/Mexico_City")
df$hour_mxc <- hour(df$mxc_time)
df <- df %>%
  group_by(date, hour_mxc) %>%
  summarise(mean = mean(value, na.rm = TRUE))
#> `summarise()` regrouping output by 'date' (override with `.groups` argument)



df$year <- year(df$date)
df$yday <- yday(df$date)
df$day <- day(df$date)
df$month <- month(df$date)
df$hour_mxc <- factor(df$hour_mxc, levels = c(6:23,0:5))

ggplot(filter(df), aes(date, hour_mxc)) +
  geom_tile(aes(fill = mean)) +
  scale_fill_viridis(expression(mW/cm^{2}), option = "A") +
  scale_x_date(labels = date_format("%b")) +
  scale_y_discrete(breaks = c(7, 13, 18, 0),
                   labels = c("7AM", "1PM",  "7PM", "12AM")) +
  ggtitle("Average Hourly UVA Index in Mexico City (2017)",
          subtitle = "Hours are in local Mexico City time which includes daylight saving time\nSource: SIMAT") +
  theme_bw() +
  ylab("hour") +
  theme_minimal()