1 Contextualização

O desenvolvimento do projeto para a análise de dados no software R foi considerado um período de três anos, correspondente aos ano de 2020, 2021 e 2022.

2 Carregamento das bibliotecas

Logo abaixo estão as principais bibliotecas utilizadas para a realização da análise e estudo dos dados meteorológicos.

library(readxl)
library(dplyr)
library(ggplot2)
library(data.table)

3 Análise do dados

Os dados foram coletados do site https://tempo.inmet.gov.br/TabelaEstacoes/A001 no formato de planilha do Excel e feito a importação para a interface RStudio para a realização da análise e geração dos gráficos. Abaixo temos o exemplo de carregamento das informações contidas na planilha.

DMarco2020 <- read_excel("/Users/Ricardo/Desktop/Ricardo/TCC/Dados/2020/Marco_2020.xlsx")
DJunho2020 <- read_excel("/Users/Ricardo/Desktop/Ricardo/TCC/Dados/2020/Junho_2020.xlsx")
DSetembro2020 <- read_excel("/Users/Ricardo/Desktop/Ricardo/TCC/Dados/2020/Setembro_2020.xlsx")
DDezembro2020 <- read_excel("/Users/Ricardo/Desktop/Ricardo/TCC/Dados/2020/Dezembro_2020.xlsx")
DMarco2020
## # A tibble: 2,184 × 19
##    Data                `Hora (UTC)` `Temp. Ins. (C)` `Temp. Max. (C)`
##    <dttm>                     <dbl>            <dbl>            <dbl>
##  1 2020-01-01 00:00:00            0             26.9             28  
##  2 2020-01-01 00:00:00          100             26.9             27.7
##  3 2020-01-01 00:00:00          200             26.6             26.9
##  4 2020-01-01 00:00:00          300             26.2             26.8
##  5 2020-01-01 00:00:00          400             25.2             26.4
##  6 2020-01-01 00:00:00          500             26               26.6
##  7 2020-01-01 00:00:00          600             25.1             26.4
##  8 2020-01-01 00:00:00          700             24.6             25.1
##  9 2020-01-01 00:00:00          800             23.9             24.7
## 10 2020-01-01 00:00:00          900             23.2             23.9
## # ℹ 2,174 more rows
## # ℹ 15 more variables: `Temp. Min. (C)` <dbl>, `Umi. Ins. (%)` <lgl>,
## #   `Umi. Max. (%)` <dbl>, `Umi. Min. (%)` <dbl>, `Pto Orvalho Ins. (C)` <lgl>,
## #   `Pto Orvalho Max. (C)` <lgl>, `Pto Orvalho Min. (C)` <lgl>,
## #   `Pressao Ins. (hPa)` <dbl>, `Pressao Max. (hPa)` <dbl>,
## #   `Pressao Min. (hPa)` <dbl>, `Vel. Vento (m/s)` <dbl>,
## #   `Dir. Vento (m/s)` <dbl>, `Raj. Vento (m/s)` <dbl>, …

3.1 Manipulação dos dados

Para o tratamento das informações os dados foram analisados em trimestres durante o período de um ano, para o estudo foram utilizados os anos de 2020 à 2022. Abaixo temos um exemplo para o cálculo de média dos principais fatores utilizados.

#Values first quarter January to March
Values1Tri2020 = DMarco2020 %>% summarise(
  MediaChuva = round((mean(`Chuva (mm)`, na.rm = TRUE)),1),
  MediaTempMax = round((mean(`Temp. Max. (C)`, na.rm = TRUE)),1),
  MediaTempMin = round((mean(`Temp. Min. (C)`, na.rm = TRUE)),1),
  MediaUmiMax = round((mean(`Umi. Max. (%)`, na.rm = TRUE)),1),
  MediaUmiMin = round((mean(`Umi. Min. (%)`, na.rm = TRUE)),1)
)

#Values second quarter April to June
Values2Tri2020 = DJunho2020 %>% summarise(
  MediaChuva = round((mean(`Chuva (mm)`, na.rm = TRUE)),1),
  MediaTempMax = round((mean(`Temp. Max. (C)`, na.rm = TRUE)),1),
  MediaTempMin = round((mean(`Temp. Min. (C)`, na.rm = TRUE)),1),
  MediaUmiMax = round((mean(`Umi. Max. (%)`, na.rm = TRUE)),1),
  MediaUmiMin = round((mean(`Umi. Min. (%)`, na.rm = TRUE)),1)
)

#Values third quarter July to September
Values3Tri2020 = DSetembro2020 %>% summarise(
  MediaChuva = round((mean(`Chuva (mm)`, na.rm = TRUE)),1),
  MediaTempMax = round((mean(`Temp. Max. (C)`, na.rm = TRUE)),1),
  MediaTempMin = round((mean(`Temp. Min. (C)`, na.rm = TRUE)),1),
  MediaUmiMax = round((mean(`Umi. Max. (%)`, na.rm = TRUE)),1),
  MediaUmiMin = round((mean(`Umi. Min. (%)`, na.rm = TRUE)),1)
)

#Values fourth quarter October to December
Values4Tri2020 = DDezembro2020 %>% summarise(
  MediaChuva = round((mean(`Chuva (mm)`, na.rm = TRUE)),1),
  MediaTempMax = round((mean(`Temp. Max. (C)`, na.rm = TRUE)),1),
  MediaTempMin = round((mean(`Temp. Min. (C)`, na.rm = TRUE)),1),
  MediaUmiMax = round((mean(`Umi. Max. (%)`, na.rm = TRUE)),1),
  MediaUmiMin = round((mean(`Umi. Min. (%)`, na.rm = TRUE)),1)
)

Values1Tri2020
## # A tibble: 1 × 5
##   MediaChuva MediaTempMax MediaTempMin MediaUmiMax MediaUmiMin
##        <dbl>        <dbl>        <dbl>       <dbl>       <dbl>
## 1        0.3         24.4         23.2        72.4          66

3.2 Realização da conversão dos valores para um padrão númerico

#First quarter average 
FirstChuvaMarco2020 = as.numeric(Values1Tri2020 %>% select(MediaChuva))
FirstTempMaxMarco2020 = as.numeric(Values1Tri2020 %>% select(MediaTempMax))
FirstTempMinMarco2020 = as.numeric(Values1Tri2020 %>% select(MediaTempMin))
FirstUmMaxMarco2020 = as.numeric(Values1Tri2020 %>% select(MediaUmiMax))
FirstUmMinMarco2020 = as.numeric(Values1Tri2020 %>% select(MediaUmiMin))

#Second quarter average 
SecondChuvaMarco2020 = as.numeric(Values2Tri2020 %>% select(MediaChuva))
SecondTempMaxMarco2020 = as.numeric(Values2Tri2020 %>% select(MediaTempMax))
SecondTempMinMarco2020 = as.numeric(Values2Tri2020 %>% select(MediaTempMin))
SecondUmMaxMarco2020 = as.numeric(Values2Tri2020 %>% select(MediaUmiMax))
SecondUmMinMarco2020 = as.numeric(Values2Tri2020 %>% select(MediaUmiMin))

#Third quarter average 
ThirdChuvaMarco2020 = as.numeric(Values3Tri2020 %>% select(MediaChuva))
ThirdTempMaxMarco2020 = as.numeric(Values3Tri2020 %>% select(MediaTempMax))
ThirdTempMinMarco2020 = as.numeric(Values3Tri2020 %>% select(MediaTempMin))
ThirdUmMaxMarco2020 = as.numeric(Values3Tri2020 %>% select(MediaUmiMax))
ThirdUmMinMarco2020 = as.numeric(Values3Tri2020 %>% select(MediaUmiMin))

#Fourth quarter average 
FourthChuvaMarco2020 = as.numeric(Values4Tri2020 %>% select(MediaChuva))
FourthTempMaxMarco2020 = as.numeric(Values4Tri2020 %>% select(MediaTempMax))
FourthTempMinMarco2020 = as.numeric(Values4Tri2020 %>% select(MediaTempMin))
FourthUmMaxMarco2020 = as.numeric(Values4Tri2020 %>% select(MediaUmiMax))
FourthUmMinMarco2020 = as.numeric(Values4Tri2020 %>% select(MediaUmiMin))

FirstChuvaMarco2020
## [1] 0.3
FirstTempMaxMarco2020
## [1] 24.4
FirstTempMinMarco2020
## [1] 23.2
FirstUmMaxMarco2020
## [1] 72.4
FirstUmMinMarco2020
## [1] 66

3.3 Criação de uma nova tabela com as informações de média de chuva

#New table to group the rain values
DataTableChuva <-
  data.table(
    value = c(
      "1º TRI",
      "2º TRI",
      "3º TRI",
      "4º TRI"
    ),
    
    average = c(
      FirstChuvaMarco2020,
      SecondChuvaMarco2020,
      ThirdChuvaMarco2020,
      FourthChuvaMarco2020
    ),
    
    year = c(2020,
             2020,
             2020,
             2020)
  )
DataTableChuva
##     value average  year
##    <char>   <num> <num>
## 1: 1º TRI     0.3  2020
## 2: 2º TRI     0.1  2020
## 3: 3º TRI     0.1  2020
## 4: 4º TRI     0.2  2020

3.4 Geração do gráfico de média de chuva por trimestre do ano de 2020

#Function to get graph about average rain
gb <- ggplot(DataTableChuva,
             aes(
               x = value,
               y = average,
               fill = value,
               label = average
             )) +
  geom_col() +
  geom_label(size = 7) +
  #coord_flip()+
  scale_fill_manual(values = c("plum2",
                               "magenta3",
                               "mediumorchid",
                               "mediumorchid4")) +
  theme_classic(base_size = 15)

gb + labs(title = "MEDIA DA CHUVA/HORA POR TRIMESTRE DO ANO 2020",
          x = "FATORES",
          y = "MEDIA DA CHUVA TOTAL (mm)") +
  theme(legend.position = "none") +
  theme(plot.title = element_text(hjust = 0.5))+
  theme(plot.title = element_text(size = 15))+
  theme(axis.text.x = element_text(face = "bold"))

3.5 Criação de uma nova tabela com as informações de média da temperatura

DataTableTemperatura <-
  data.table(
    value = c(
      "MAX 1º TRI",
      "MIN 1º TRI",
      "MAX 2º TRI",
      "MIN 2º TRI",
      "MAX 3º TRI",
      "MIN 3º TRI",
      "MAX 4º TRI",
      "MIN 4º TRI"
    ),
    
    average = c(
      FirstTempMaxMarco2020,
      FirstTempMinMarco2020,
      SecondTempMaxMarco2020,
      SecondTempMinMarco2020,
      ThirdTempMaxMarco2020,
      ThirdTempMinMarco2020,
      FourthTempMaxMarco2020,
      FourthTempMinMarco2020
    ),
    
    year = c(2020,
             2020,
             2020,
             2020,
             2020,
             2020,
             2020,
             2020)
  )
DataTableTemperatura
##         value average  year
##        <char>   <num> <num>
## 1: MAX 1º TRI    24.4  2020
## 2: MIN 1º TRI    23.2  2020
## 3: MAX 2º TRI    21.3  2020
## 4: MIN 2º TRI    20.1  2020
## 5: MAX 3º TRI    22.8  2020
## 6: MIN 3º TRI    21.5  2020
## 7: MAX 4º TRI    25.2  2020
## 8: MIN 4º TRI    23.7  2020

3.6 Geração do gráfico de média da temperatura por trimestre do ano de 2020

#Function to get graph about average temperature
gb <- ggplot(DataTableTemperatura,
             aes(
               x = value,
               y = average,
               fill = value,
               label = average
             )) +
  geom_col() +
  geom_label(size = 7) +
  #coord_flip()+
  scale_fill_manual(
    values = c(
      "palegreen1",
      "palegreen2",
      "palegreen3",
      "palegreen4",
      "paleturquoise1",
      "paleturquoise2",
      "paleturquoise3",
      "paleturquoise4")) +
  theme_classic(base_size = 10)

gb + labs(title = "MÉDIA DA TEMPERATURA/HORA POR TRIMESTRE DO ANO 2020",
          x = "FATORES",
          y = "MÉDIA DA TEMPERATURA (ºC)") +
  theme(legend.position = "none") +
  theme(plot.title = element_text(hjust = 0.5))+
  theme(plot.title = element_text(size = 15))+
  theme(axis.text.x = element_text(face = "bold"))

3.7 Criação de uma nova tabela com as informações de média da umidade

#New table to group the humidity values
DataTableUmidade <-
  data.table(
    variable = c(
      "MAX 1º TRI",
      "MIN 1º TRI",
      "MAX 2º TRI",
      "MIN 2º TRI",
      "MAX 3º TRI",
      "MIN 3º TRI",
      "MAX 4º TRI",
      "MIN 4º TRI"
    ),
    
    average = c(
      FirstUmMaxMarco2020,
      FirstUmMinMarco2020,
      SecondUmMaxMarco2020,
      SecondUmMinMarco2020,
      ThirdUmMaxMarco2020,
      ThirdUmMinMarco2020,
      FourthUmMaxMarco2020,
      FourthUmMinMarco2020
    ),
    
    year = c(2020, 
             2020, 
             2020, 
             2020, 
             2020,
             2020,
             2020,
             2020
             )
  )
DataTableUmidade
##      variable average  year
##        <char>   <num> <num>
## 1: MAX 1º TRI    72.4  2020
## 2: MIN 1º TRI    66.0  2020
## 3: MAX 2º TRI    67.1  2020
## 4: MIN 2º TRI    61.8  2020
## 5: MAX 3º TRI    56.7  2020
## 6: MIN 3º TRI    51.6  2020
## 7: MAX 4º TRI    68.4  2020
## 8: MIN 4º TRI    61.9  2020

3.8 Geração do gráfico de média da temperatura por trimestre do ano de 2020

#Function to get graph about average humidity
gb <-
  ggplot(DataTableUmidade,
         aes(
           x = variable,
           y = average,
           fill = variable,
           label = average
         )) +
  geom_col() +
  geom_label(size = 7) +
  #coord_flip()+
  scale_fill_manual(
    values = c(
      "tomato",
      "tomato1",
      "tomato2",
      "tomato3",
      "slateblue1",
      "slateblue2",
      "slateblue3",
      "slateblue4"
    )
  ) +
  theme_classic(base_size = 11)

gb + labs(title = "MÉDIA DA UMIDADE/HORA POR TRIMESTRE DO ANO 2020",
          x = "FATORES",
          y = "MÉDIA DA UMIDADE (%)") +
  theme(legend.position = "none") +
  theme(plot.title = element_text(hjust = 0.5)) +
  theme(plot.title = element_text(size = 15))+
  theme(axis.text.x = element_text(face = "bold"))

4 Resultados

No desenvolvimento e tratamento das informações, foi possível observar a importância e eficácia do software R juntamente com a IDE (Integrated Development Environment) RStudio que permitem realizar uma análise complexa de qualquer volume de dados, a visualização das informações podem ser projetadas e interpretadas por diferentes tipos de gráficos para uma melhor análise criteriosa. Outro fator importante é a utilização do RMarkdown, que permite que o programador realize a interação do seu código fonte com um documento ou um relatório técnico para explicar os resultados alcançados, e com isso, podendo tornar um arquivo explicativo para que seja de fácil visualização para qualquer pessoa.