Temperatura do ar

Pacotes

library(tidyverse)  # manipulação de dados
library(metan)
library(rio)        # importação/exportação de dados

# gerar tabelas html
print_tbl <- function(table, digits = 3, n = NULL, ...){
  if(!missing(n)){
    knitr::kable(head(table, n = n), booktabs = TRUE, digits = digits, ...)
  } else{
  knitr::kable(table, booktabs = TRUE, digits = digits, ...)
  }
}

Temperaturas médias mensais

clima <- import("https://bit.ly/inmet_fred_2020")


clima_medias <-
clima %>%
  means_by(MES) %>% 
  select(MES, TEMP_MAX, TEMP_MIN) %>% 
  pivot_longer(-MES)

print_tbl(clima_medias, n = 20)
MES name value
1 TEMP_MAX 24.652
1 TEMP_MIN 23.570
2 TEMP_MAX 23.566
2 TEMP_MIN 22.430
3 TEMP_MAX 24.154
3 TEMP_MIN 22.897
4 TEMP_MAX 19.245
4 TEMP_MIN 18.177
5 TEMP_MAX 15.781
5 TEMP_MIN 14.804
6 TEMP_MAX 16.535
6 TEMP_MIN 15.862
7 TEMP_MAX 14.779
7 TEMP_MIN 13.957
8 TEMP_MAX 17.579
8 TEMP_MIN 16.603
9 TEMP_MAX 19.930
9 TEMP_MIN 18.962
10 TEMP_MAX 22.469
10 TEMP_MIN 21.358



# confeccionar gráfico
ggplot(clima_medias, aes(factor(MES), value, color = name, group = name )) +
  geom_point() + 
  geom_line() + 
  scale_color_manual(values = c("red", "blue"),
                       labels = c("Temperatura máxima (ºC)",
                                  "Temperatura mínima (ºC)"),
                       guide = "legend") +
  theme(panel.grid.minor = element_blank(),
        legend.position = "bottom",
        legend.title = element_blank(),
        axis.title = element_text(size = 12),
        axis.text = element_text(size = 12)) + 
  labs(title = "Temperatura média mensal em 2020",
       subtitle = "Estação INMET - UFSM-FW",
       caption = "Elaboração: Prof. Tiago Olivoto",
       x = "Mês do ano",
       y = "Temperatura (ºC)")

Temperaturas em dois dias

df_dias <- 
  clima %>% 
  select(DATA, HORA, TEMP_INST) %>% 
  subset(DATA %in% c("01/01/2020", "21/06/2020"))


ggplot(df_dias, aes(HORA, TEMP_INST, color = factor(DATA), group = DATA)) + 
  stat_summary(geom = "point", 
               fun = mean) +
  stat_summary(geom = "line") + 
  stat_summary(geom = "errorbar", width = 0.5) +
  theme(panel.grid.minor = element_blank(),
        legend.position = "bottom",
        legend.title = element_blank(),
        axis.title = element_text(size = 12),
        axis.text = element_text(size = 12)) + 
  scale_x_continuous(breaks = seq(0,24, by = 2)) + 
  labs(title = "Temperatura horária em dois dias do ano",
       subtitle = "Estação INMET - UFSM-FW",
       caption = "Elaboração - Olivoto 2021",
       x = "Hora do dia",
       y = "Temperatura (ºC)")
## No summary function supplied, defaulting to `mean_se()`
## No summary function supplied, defaulting to `mean_se()`

Temperaturas máximas e mínimas

clima_max_min <-
  clima %>%
  group_by(MES) %>% 
  summarise(max = max(TEMP_MAX, na.rm = TRUE),
            min = min(TEMP_MIN, na.rm = TRUE),
            mean = mean(TEMP_INST, na.rm = TRUE)) %>% 
  select(MES, max, min, mean) %>% 
  pivot_longer(-MES)

print_tbl(clima_max_min, n = 20)
MES name value
1 max 34.200
1 min 14.000
1 mean 24.085
2 max 33.400
2 min 10.900
2 mean 22.992
3 max 35.400
3 min 14.200
3 mean 23.523
4 max 32.600
4 min 5.900
4 mean 18.705
5 max 27.800
5 min 4.700
5 mean 15.289
6 max 27.600
6 min 5.000
6 mean 16.199
7 max 27.500
7 min -0.100


ggplot(clima_max_min, aes(factor(MES), value, color = name, group = name )) +
  geom_point() + 
  geom_line() + 
  scale_color_manual(values = c("red", "green", "blue"),
                     labels = c("Temperatura máxima (ºC)",
                                "Temperatura média (ºC)",
                                "Temperatura mínima (ºC)"),
                     guide = "legend") + 
  theme(panel.grid.minor = element_blank(),
        legend.position = "bottom",
        legend.title = element_blank(),
        axis.title = element_text(size = 12),
        axis.text = element_text(size = 12)) + 
  labs(title = "Temperaturas máximas, médias e mínimas em 2020",
       subtitle = "Estação INMET - UFSM-FW",
       caption = "Elaboração: Prof. Tiago Olivoto",
       x = "Mês do ano",
       y = "Temperatura (ºC)")

Next