Recife e seu Clima

Recife, capital de Pernambuco e situada na região Nordeste do Brasil, possui um clima tropical úmido úmido que se destaca por suas características marcantes. Com temperaturas médias mensais que variam entre 25°C e 28°C ao longo do ano, a cidade apresenta pouca variação sazonal devido à proximidade com o oceano, que atua como regulador térmico. A umidade do ar é constante e elevada, frequentemente acima de 80%, resultando em uma sensação de abafamento, especialmente nos meses mais quentes. As chuvas, bem distribuídas ao longo do ano, intensificam-se entre abril e julho, sendo que as precipitações podem variar entre chuvas intensas e pancadas rápidas. Essa dinâmica climática também traz consigo a possibilidade de eventos climáticos extremos, como tempestades tropicais e furacões, além de chuvas intensas que podem causar enchentes e alagamentos. Em suma, o clima de Recife é um reflexo da influência do oceano Atlântico, com suas temperaturas constantes, umidade presente e um padrão de chuvas que contribui para a singularidade do ambiente urbano e natural da cidade.


Esse texto foi gerado por IA e poderar ser comprovado com as análises propostas nesse documento.

Base de dados

Print Dataset
Print Dataset


A base de dados escolhida foi a Climate Weather Surface of Brazil - Hourly, diposnível no Kaggle. O dataset agrupa informações sobre dados produzidos por estações de monitoramento climático do tipo Vaisala Automatic Weather Station AWS310, informações essas disponiblizadas pelo INMET

AWS310
AWS310


Os dados climáticos disponibilizados pelo Instituto Nacional de Meteorologia (INMET) desempenham um papel fundamental no monitoramento e compreensão das condições climáticas do Brasil. Coletando informações como temperatura, umidade, precipitação e ventos em diversas regiões do país, o INMET oferece um panorama abrangente e confiável das variações climáticas ao longo do tempo. Esses dados não apenas embasam previsões meteorológicas mais precisas, mas também servem como base para estudos climatológicos, análises de tendências e ações de mitigação em face das mudanças climáticas.


O conjunto de dados é divido em 9 arquivos que representam o recorte das informações por região do brasil dataset e descriçãodas clunas. Para análise presente neste documento foram escolhidos os dados da região nordeste, em específico, Recife. O dataset nordeste possui 16.260.936 linhas e 27 colunas, organizadas da seguinte forma:


  • Data (AAAA-MM-DD)
  • Hora (HH:00)
  • Quantidade de precipitação em milímetros (última hora)
  • Pressão atmosférica ao nível da estação (mb)
  • Pressão máxima do ar na última hora (mb)
  • Pressão mínima do ar na última hora (mb)
  • Radiação solar (KJ/m2)
  • Temperatura do ar (instantânea) (°c)
  • Temperatura do ponto de orvalho (instantânea) (°c)
  • Temperatura máxima na última hora (°c)
  • Temperatura mínima na última hora (°c)
  • Temperatura máxima do ponto de orvalho na última hora (°c)
  • Temperatura mínima do ponto de orvalho na última hora (°c)
  • Umidade relativa máxima na última hora (%)
  • Umidade relativa mínima na última hora (%)
  • Umidade relativa instantânea (%)
  • Direção do vento (graus (0-360))
  • Rajada de vento em metros por segundo
  • Velocidade do vento em metros por segundo
  • Regiões geopolíticas brasileiras
  • Estado (província)
  • Nome da estação (geralmente localização da cidade ou apelido)
  • Código da estação (número INMET)
  • Latitude
  • Longitude
  • Elevação
nordeste <- read.csv("northeast.csv", header = T, 
                     strip.white = T,sep=",")

str(nordeste)
## 'data.frame':    16260936 obs. of  27 variables:
##  $ index                                                : int  0 1 2 3 4 5 6 7 8 9 ...
##  $ Data                                                 : chr  "2000-05-13" "2000-05-13" "2000-05-13" "2000-05-13" ...
##  $ Hora                                                 : chr  "00:00" "01:00" "02:00" "03:00" ...
##  $ PRECIPITAÇÃO.TOTAL..HORÁRIO..mm.                     : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ PRESSAO.ATMOSFERICA.AO.NIVEL.DA.ESTACAO..HORARIA..mB.: int  -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 ...
##  $ PRESSÃO.ATMOSFERICA.MAX.NA.HORA.ANT...AUT...mB.      : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ PRESSÃO.ATMOSFERICA.MIN..NA.HORA.ANT...AUT...mB.     : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ RADIACAO.GLOBAL..Kj.m..                              : int  -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 ...
##  $ TEMPERATURA.DO.AR...BULBO.SECO..HORARIA...C.         : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ TEMPERATURA.DO.PONTO.DE.ORVALHO...C.                 : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ TEMPERATURA.MÁXIMA.NA.HORA.ANT...AUT....C.           : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ TEMPERATURA.MÍNIMA.NA.HORA.ANT...AUT....C.           : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ TEMPERATURA.ORVALHO.MAX..NA.HORA.ANT...AUT....C.     : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ TEMPERATURA.ORVALHO.MIN..NA.HORA.ANT...AUT....C.     : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ UMIDADE.REL..MAX..NA.HORA.ANT...AUT.....             : int  -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 ...
##  $ UMIDADE.REL..MIN..NA.HORA.ANT...AUT.....             : int  -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 ...
##  $ UMIDADE.RELATIVA.DO.AR..HORARIA....                  : int  -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 ...
##  $ VENTO..DIREÇÃO.HORARIA..gr......gr..                 : int  -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 ...
##  $ VENTO..RAJADA.MAXIMA..m.s.                           : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ VENTO..VELOCIDADE.HORARIA..m.s.                      : num  -9999 -9999 -9999 -9999 -9999 ...
##  $ region                                               : chr  "NE" "NE" "NE" "NE" ...
##  $ state                                                : chr  "BA" "BA" "BA" "BA" ...
##  $ station                                              : chr  "SALVADOR" "SALVADOR" "SALVADOR" "SALVADOR" ...
##  $ station_code                                         : chr  "A401" "A401" "A401" "A401" ...
##  $ latitude                                             : num  -13 -13 -13 -13 -13 ...
##  $ longitude                                            : num  -38.5 -38.5 -38.5 -38.5 -38.5 ...
##  $ height                                               : num  51.4 51.4 51.4 51.4 51.4 ...

Pacotes

  • dplyr: O pacote “dplyr” em R fornece funções eficientes para manipulação e transformação de dados, incluindo seleção, filtragem, ordenação, criação de colunas, agregação e junção.
  • Plotly: O pacote “plotly” em R permite criar visualizações interativas, como gráficos, usando a biblioteca Plotly.js.
chooseCRANmirror(graphics = FALSE, ind=1)

#instalando Pacotes
install.packages("dplyr")
## Installing package into 'C:/Users/Victor Olimpio/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'dplyr' successfully unpacked and MD5 sums checked
## Warning: cannot remove prior installation of package 'dplyr'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): problem copying
## C:\Users\Victor
## Olimpio\AppData\Local\R\win-library\4.3\00LOCK\dplyr\libs\x64\dplyr.dll to
## C:\Users\Victor
## Olimpio\AppData\Local\R\win-library\4.3\dplyr\libs\x64\dplyr.dll: Permission
## denied
## Warning: restored 'dplyr'
## 
## The downloaded binary packages are in
##  C:\Users\Victor Olimpio\AppData\Local\Temp\RtmpCOv56t\downloaded_packages
install.packages("plotly")
## Installing package into 'C:/Users/Victor Olimpio/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'plotly' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\Victor Olimpio\AppData\Local\Temp\RtmpCOv56t\downloaded_packages
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(plotly)
## Carregando pacotes exigidos: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout

Preparação dos dados

  • Aqui seguem uma sequência de manipulações feitas na base de dados, a fim de prepará-los para a análise:

    Com o objetivo de reduzir o volume de dados, permitindo melhor desempnho para aanálise e visualização dos dados, foi feito um recorte semestral na base. O intervalo usado corresponde aos meses onde o Recife recebe o maior volume de chuva, período denominado como o inverno da idade.


# Para ajudar no recorte semestral, a variável Data foi transformada em 3 novas colunas : ano, mes, dia. 
nordeste$ano <- substr(nordeste$Data, 1, 4)
nordeste$mes <- substr(nordeste$Data, 6, 7)
nordeste$dia <- substr(nordeste$Data, 9, 10)

# Aqui também foi aplicado o filtro para as estações da cidade do Recife
recifeSemestre <- nordeste %>% filter( mes %in% c("03","04","05", "06", "07", "08") & station == "RECIFE")


- Outro recorte importante da análise proposta é comparar dados do mesmo intervalo semestral nos anos de 2010 e 2020

# Separando os dados do ano de 2010 em Pernambuco 
pernambuco10 <- nordeste %>% filter(Data > "2009-12-31" & Data < "2011-01-01" & state == "PE")

# a variável Data foi transformada em 3 novas colunas : ano, mes, dia.
pernambuco10$ano <- substr(pernambuco10$Data, 1, 4)
pernambuco10$mes <- substr(pernambuco10$Data, 6, 7)
pernambuco10$dia <- substr(pernambuco10$Data, 9, 10)

#Criando o conjunto com dados de Recife em 2010 
recifeSemestre10 <- pernambuco10 %>% filter( mes %in% c("03","04","05", "06", "07", "08") & station == "RECIFE")


# Separando os dados do ano de 2020 em Pernambuco 
pernambuco20 <- nordeste %>% filter(Data > "2019-12-31" & Data < "2021-01-01" & state == "PE")

# a variável Data foi transformada em 3 novas colunas : ano, mes, dia.
pernambuco20$ano <- substr(pernambuco20$Data, 1, 4)
pernambuco20$mes <- substr(pernambuco20$Data, 6, 7)
pernambuco20$dia <- substr(pernambuco20$Data, 9, 10)

#Criando o conjunto com dados de Recife em 2010 
recifeSemestre20 <- pernambuco20 %>% filter( mes %in% c("03","04","05", "06", "07", "08") & station == "RECIFE")


#Renomeando e Organizando as colunas

names<- c("index", "date", "hr"  , "prcp", "stp"  ,"smax", "smin" ,"gbrd", "temp", "dewp" ,"tmax" ,"tmin" ,"dmax" ,"dmin" ,"hmax" ,"hmin", "hmdy" ,"wdct" ,"gust", "wdsp", "rg",  
"prov", "wsnm" ,"inme", "lat" , "lon"  ,"elvt" , "ano" , "mes" , "dia" )

colnames(recifeSemestre) <- names
colnames(recifeSemestre10) <- names
colnames(recifeSemestre20) <- names

recifeSemestre <- select(recifeSemestre, -index, -smax, -smin, -gbrd, -dmax, -dmin, -hmax, -hmin, -wdct , -gust, -wdsp, -rg,  
                           -prov, -wsnm ,-inme, -lat , -lon  ,-elvt )
recifeSemestre10 <- select(recifeSemestre10, -index, -smax, -smin, -gbrd, -dmax, -dmin, -hmax, -hmin, -wdct , -gust, -wdsp, -rg,  
                           -prov, -wsnm ,-inme, -lat , -lon  ,-elvt )

recifeSemestre20 <- select(recifeSemestre20, -index, -smax, -smin, -gbrd, -dmax, -dmin, -hmax, -hmin, -wdct , -gust, -wdsp, -rg,  
                           -prov, -wsnm ,-inme, -lat , -lon  ,-elvt )


#Adicionando coluna para gaurdar o valor da amplitude da temperatura, que é a diferença entre o valor máximo e mínimo. 
recifeSemestre$ampTemp <- recifeSemestre$tmax - recifeSemestre$tmin
recifeSemestre10$ampTemp <- recifeSemestre10$tmax - recifeSemestre10$tmin
recifeSemestre20$ampTemp <- recifeSemestre20$tmax - recifeSemestre20$tmin


# Criando a coluna datetime, juntando date e hr, para ser usado como variável de tempo para série temporal. 

recifeSemestre$datetime <- paste(recifeSemestre$date, recifeSemestre$hr)
recifeSemestre10$datetime <- paste(recifeSemestre10$date, recifeSemestre10$hr)
recifeSemestre20$datetime <- paste(recifeSemestre20$date, recifeSemestre20$hr)
  • Durante a preparação dos dados foi observado o grande volume de registro com valores -9999. Após pesquisa, descobriu-se que dados desse tipo representam algum tipo de falha ou ausência de dados, comum em conjuntos de informações climáticas. Assim, alguns tipos de abordagens são sugeridas e , uma vez que esses dados não representavam um grande montante do conjunto total, foi feita a remção dos registros com essas características.
recifeSemestre <- subset(recifeSemestre, !apply(recifeSemestre == -9999, 1, any))
recifeSemestre10 <- subset(recifeSemestre10, !apply(recifeSemestre10 == -9999, 1, any))
recifeSemestre20 <- subset(recifeSemestre20, !apply(recifeSemestre20 == -9999, 1, any))
  • Dessa forma, os datasets ficaram da seguinte forma:
# recifeSemestre 
head(recifeSemestre)
##         date    hr prcp  stp temp dewp tmax tmin hmdy  ano mes dia ampTemp
## 1 2005-03-01 00:00    0 1012 27.7 22.4 27.8 27.5   73 2005  03  01     0.3
## 2 2005-03-01 01:00    0 1012 27.4 22.1 27.7 27.4   73 2005  03  01     0.3
## 3 2005-03-01 02:00    0 1012 27.5 21.9 27.6 27.4   71 2005  03  01     0.2
## 4 2005-03-01 03:00    0 1012 27.1 21.9 27.5 27.0   73 2005  03  01     0.5
## 5 2005-03-01 04:00    0 1011 26.9 21.8 27.2 26.7   74 2005  03  01     0.5
## 6 2005-03-01 05:00    0 1011 25.7 21.7 26.9 25.7   79 2005  03  01     1.2
##           datetime
## 1 2005-03-01 00:00
## 2 2005-03-01 01:00
## 3 2005-03-01 02:00
## 4 2005-03-01 03:00
## 5 2005-03-01 04:00
## 6 2005-03-01 05:00
# recifeSemestre10
head(recifeSemestre10)
##         date    hr prcp  stp temp dewp tmax tmin hmdy  ano mes dia ampTemp
## 1 2010-03-01 00:00    0 1012 27.6 23.4 27.8 27.5   78 2010  03  01     0.3
## 2 2010-03-01 01:00    0 1012 27.7 23.3 28.0 27.5   77 2010  03  01     0.5
## 3 2010-03-01 02:00    0 1012 27.3 23.2 27.8 27.2   79 2010  03  01     0.6
## 4 2010-03-01 03:00    0 1011 25.1 23.2 27.3 25.1   89 2010  03  01     2.2
## 5 2010-03-01 04:00    0 1011 24.1 22.8 25.1 24.1   93 2010  03  01     1.0
## 6 2010-03-01 05:00    0 1011 23.6 22.6 24.1 23.6   94 2010  03  01     0.5
##           datetime
## 1 2010-03-01 00:00
## 2 2010-03-01 01:00
## 3 2010-03-01 02:00
## 4 2010-03-01 03:00
## 5 2010-03-01 04:00
## 6 2010-03-01 05:00
# recifeSemestre20 
head(recifeSemestre20)
##         date    hr prcp  stp temp dewp tmax tmin hmdy  ano mes dia ampTemp
## 1 2020-03-01 00:00  0.0 1013 28.1 22.0 28.5 28.1   70 2020  03  01     0.4
## 2 2020-03-01 01:00  0.0 1013 26.6 22.4 28.2 26.6   78 2020  03  01     1.6
## 3 2020-03-01 02:00  2.0 1012 25.5 22.6 26.8 25.5   84 2020  03  01     1.3
## 4 2020-03-01 03:00  2.2 1012 25.2 23.3 25.5 25.0   89 2020  03  01     0.5
## 5 2020-03-01 04:00  5.4 1012 24.9 23.2 25.4 24.8   90 2020  03  01     0.6
## 6 2020-03-01 05:00  3.6 1011 24.4 22.9 24.9 24.3   91 2020  03  01     0.6
##           datetime
## 1 2020-03-01 00:00
## 2 2020-03-01 01:00
## 3 2020-03-01 02:00
## 4 2020-03-01 03:00
## 5 2020-03-01 04:00
## 6 2020-03-01 05:00

Análise e visulização

  • A função summary do R nos um bom overview da estatística exploratória presente nos dados
# recifeSemestre 
summary(recifeSemestre)
##      date                hr                 prcp              stp      
##  Length:65343       Length:65343       Min.   : 0.0000   Min.   : 991  
##  Class :character   Class :character   1st Qu.: 0.0000   1st Qu.:1011  
##  Mode  :character   Mode  :character   Median : 0.0000   Median :1013  
##                                        Mean   : 0.3711   Mean   :1013  
##                                        3rd Qu.: 0.0000   3rd Qu.:1015  
##                                        Max.   :50.8000   Max.   :1020  
##       temp            dewp            tmax           tmin      
##  Min.   : 9.10   Min.   : 6.30   Min.   :17.7   Min.   :-4.70  
##  1st Qu.:23.10   1st Qu.:20.40   1st Qu.:23.5   1st Qu.:22.80  
##  Median :24.90   Median :21.50   Median :25.5   Median :24.40  
##  Mean   :25.27   Mean   :21.46   Mean   :25.8   Mean   :24.76  
##  3rd Qu.:27.30   3rd Qu.:22.50   3rd Qu.:28.0   3rd Qu.:26.70  
##  Max.   :36.90   Max.   :29.30   Max.   :35.0   Max.   :33.30  
##       hmdy            ano                mes                dia           
##  Min.   : 34.00   Length:65343       Length:65343       Length:65343      
##  1st Qu.: 71.00   Class :character   Class :character   Class :character  
##  Median : 83.00   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 80.57                                                           
##  3rd Qu.: 92.00                                                           
##  Max.   :100.00                                                           
##     ampTemp         datetime        
##  Min.   : 0.000   Length:65343      
##  1st Qu.: 0.400   Class :character  
##  Median : 0.800   Mode  :character  
##  Mean   : 1.038                     
##  3rd Qu.: 1.500                     
##  Max.   :29.900
# recifeSemestre10
summary(recifeSemestre10)
##      date                hr                 prcp              stp      
##  Length:4376        Length:4376        Min.   : 0.0000   Min.   :1005  
##  Class :character   Class :character   1st Qu.: 0.0000   1st Qu.:1011  
##  Mode  :character   Mode  :character   Median : 0.0000   Median :1013  
##                                        Mean   : 0.3165   Mean   :1013  
##                                        3rd Qu.: 0.0000   3rd Qu.:1015  
##                                        Max.   :30.2000   Max.   :1019  
##       temp            dewp            tmax            tmin      
##  Min.   :18.50   Min.   :14.50   Min.   :18.70   Min.   :18.40  
##  1st Qu.:23.40   1st Qu.:21.00   1st Qu.:23.70   1st Qu.:23.00  
##  Median :25.20   Median :22.30   Median :25.80   Median :24.60  
##  Mean   :25.59   Mean   :22.08   Mean   :26.12   Mean   :25.08  
##  3rd Qu.:27.70   3rd Qu.:23.20   3rd Qu.:28.30   3rd Qu.:27.10  
##  Max.   :33.90   Max.   :25.90   Max.   :34.00   Max.   :32.30  
##       hmdy           ano                mes                dia           
##  Min.   :43.00   Length:4376        Length:4376        Length:4376       
##  1st Qu.:72.00   Class :character   Class :character   Class :character  
##  Median :85.00   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :82.08                                                           
##  3rd Qu.:94.00                                                           
##  Max.   :96.00                                                           
##     ampTemp       datetime        
##  Min.   :0.00   Length:4376       
##  1st Qu.:0.40   Class :character  
##  Median :0.80   Mode  :character  
##  Mean   :1.04                     
##  3rd Qu.:1.50                     
##  Max.   :5.40
# recifeSemestre20 
summary(recifeSemestre20)
##      date                hr                 prcp              stp      
##  Length:4409        Length:4409        Min.   : 0.0000   Min.   :1008  
##  Class :character   Class :character   1st Qu.: 0.0000   1st Qu.:1012  
##  Mode  :character   Mode  :character   Median : 0.0000   Median :1013  
##                                        Mean   : 0.2897   Mean   :1013  
##                                        3rd Qu.: 0.0000   3rd Qu.:1014  
##                                        Max.   :41.8000   Max.   :1020  
##       temp            dewp           tmax           tmin            hmdy      
##  Min.   :18.20   Min.   :15.2   Min.   :18.3   Min.   :18.10   Min.   :45.00  
##  1st Qu.:23.60   1st Qu.:20.7   1st Qu.:23.9   1st Qu.:23.30   1st Qu.:70.00  
##  Median :25.10   Median :22.1   Median :25.7   Median :24.70   Median :84.00  
##  Mean   :25.68   Mean   :21.8   Mean   :26.2   Mean   :25.19   Mean   :80.23  
##  3rd Qu.:27.70   3rd Qu.:22.9   3rd Qu.:28.4   3rd Qu.:27.10   3rd Qu.:91.00  
##  Max.   :34.30   Max.   :26.7   Max.   :34.6   Max.   :33.30   Max.   :94.00  
##      ano                mes                dia               ampTemp     
##  Length:4409        Length:4409        Length:4409        Min.   :0.000  
##  Class :character   Class :character   Class :character   1st Qu.:0.400  
##  Mode  :character   Mode  :character   Mode  :character   Median :0.800  
##                                                           Mean   :1.008  
##                                                           3rd Qu.:1.400  
##                                                           Max.   :5.500  
##    datetime        
##  Length:4409       
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

- Um primeiro ponto a ser visto, é a série temporal da média de temperatura (MAX + MIN /2) ao longo dos anos no Recife
# recifeSemestre 

# Foi preciso transformar variável datetime, originalmente string, para tipo data, a fim de usá-la como variável do tempo. 
recifeSemestre$datetime <- as.POSIXct(recifeSemestre$datetime, format = "%Y-%m-%d %H:%M")

# Adionando a temperatura média
recifeSemestre$temperatura_media <- (recifeSemestre$tmax + recifeSemestre$tmin) / 2



# Criando um gráfico de linha

tempMedia <- plot_ly(data = recifeSemestre, x = ~datetime, y = ~temperatura_media, type = "scatter", mode = "lines") %>%
  layout(title = "Série Temporal de Temperatura",
         xaxis = list(title = "Data"),
         yaxis = list(title = "Temperatura"), width = "100%")
## Warning: Specifying width/height in layout() is now deprecated.
## Please specify in ggplotly() or plot_ly()
tempMedia
#comparação da Temperatura Máxima e Mínima

maxMin <- plot_ly(recifeSemestre, x = ~datetime) %>%
  add_lines(y = ~tmax, name = 'Temperatura máxima') %>%
  add_lines(y = ~tmin, name = 'Temperatura mínima')%>%
layout(title = "Máxima X Mínima",
       xaxis = list(title = "Data"),
       yaxis = list(title = "Temperatura"))

maxMin
#Maior temperatura do semstre
maiorRecife <- max(recifeSemestre$tmax)

#Maior temperatura do semstre
maiorRecife <- max(recifeSemestre$menor)
## Warning in max(recifeSemestre$menor): nenhum argumento não faltante para max;
## retornando -Inf
# Série da amplitude das temperaturas

ampTemp <- plot_ly(data = recifeSemestre, x = ~datetime, y = ~ampTemp, type = "bar") %>%
  layout(title = "Série Temporal de Temperatura",
         xaxis = list(title = "Data"),
         yaxis = list(title = "Amplitude da Temperatura"), width = "100%")
## Warning: Specifying width/height in layout() is now deprecated.
## Please specify in ggplotly() or plot_ly()
# Relação Tem. Max. e Pressão Max

tpMax <- plot_ly(recifeSemestre, x = ~stp, y = ~tmax, mode = 'markers', type = 'scatter') %>%
  layout(title = "Relação entre Pressão Atmosférica Máxima e Temperatura Máxima",
         xaxis = list(title = "Pressão Atmosférica Máxima (mb)"),
         yaxis = list(title = "Temperatura Máxima (°C)"))


- Outro ponto importante a ser observado são dados referentess a precpitação

# recifeSemestre 


# Precpitação ao longo do tempo

seriePrec <- plot_ly(data = recifeSemestre, x = ~datetime, y = ~prcp, type = "scatter", mode = "lines") %>%
  layout(title = "Série Temporal de Precipitação",
         xaxis = list(title = "Data"),
         yaxis = list(title = "Temperatura"), width = "100%")
## Warning: Specifying width/height in layout() is now deprecated.
## Please specify in ggplotly() or plot_ly()
seriePrec
#Gráfico de dispersão, relação entre precpitação e umidade

disper <- plot_ly(recifeSemestre, x = ~ 
                     hmdy, y = ~prcp, mode = 'markers') %>%
  add_lines(x = ~hmdy, y = ~lm(prcp ~ hmdy, data = recifeSemestre)$fitted.values, name = 'Linha de Tendência') %>%
  layout(title = "Relação Umidade X Temperatura",
         xaxis = list(title = "Umidade"),
         yaxis = list(title = "Temperatura"))

disper
disper2 <- plot_ly(recifeSemestre, x = ~hmdy, y = ~prcp, mode = 'markers', type = 'scatter') %>%
  layout(title = "Relação entre Umidade e Precipitação",
         xaxis = list(title = "Umidade"),
         yaxis = list(title = "Precipitação (mm)"))

disper2
# Relação entre Pressão Atmosférica Máxima e Precipitação

pres <- plot_ly(recifeSemestre, x = ~stp, y = ~prcp, mode = 'markers', type = 'scatter') %>%
  layout(title = "Relação entre Pressão Atmosférica Máxima e Precipitação",
         xaxis = list(title = "Pressão Atmosférica Máxima (mb)"),
         yaxis = list(title = "Precipitação (mm)"))
pres
# volume mensal X Média de Humidade

volume_mensal <- aggregate(prcp ~ mes, data = recifeSemestre, sum)
volume_mensal
##   mes   prcp
## 1  03 2744.4
## 2  04 4465.4
## 3  05 4463.4
## 4  06 5329.2
## 5  07 4685.6
## 6  08 2563.4
humidade <- aggregate(hmdy ~ mes, data = recifeSemestre, mean)
humidade
##   mes     hmdy
## 1  03 76.09859
## 2  04 80.11623
## 3  05 82.54404
## 4  06 82.60387
## 5  07 82.29388
## 6  08 80.06196


- Após explorar, de maneira geral, os dados de temperatura e precipitação, agora vamos analisar os recortes de 2010 e 2020 para perceber as mudanças, semelhanças e diferenças e, se eventos como a pandemia, tiveram impacto no clima da cidade.

recifeSemestre10$datetime <- as.POSIXct(recifeSemestre10$datetime, format = "%Y-%m-%d %H:%M")
recifeSemestre20$datetime <- as.POSIXct(recifeSemestre20$datetime, format = "%Y-%m-%d %H:%M")



# Adionando a temperatura média

recifeSemestre10$temperatura_media <- (recifeSemestre10$tmax + recifeSemestre10$tmin) / 2
recifeSemestre20$temperatura_media <- (recifeSemestre20$tmax + recifeSemestre20$tmin) / 2


## Comparativo dos gráficos de Precipitação para 2010 e 2020

prec10 <- plot_ly() %>%
  add_trace(data = recifeSemestre10, x = ~datetime, y = ~prcp, type = 'scatter', mode = 'lines+markers', name = "2010")
  

prec20 <- plot_ly() %>%
  add_trace(data = recifeSemestre20, x = ~datetime, y = ~prcp, type = 'scatter', mode = 'lines+markers', name = "2020") %>%
  layout(title = "Volume da Precipitação 2010 X 2020",
         xaxis = list(title = "Ano"),
         yaxis = list(title = "Precipitação - Volume"))

combPrec <- subplot(prec10, prec20, nrows = 1, margin = c(0.05))

combPrec


## Comparativo dos gráficos de Temperatura média para 2010 e 2020

temMed10 <- plot_ly() %>%
  add_trace(data = recifeSemestre10, x = ~datetime, y = ~temperatura_media, type = 'scatter', mode = 'lines+markers')
  


tempMed20 <- plot_ly() %>%
  add_trace(data = recifeSemestre20, x = ~datetime, y = ~temperatura_media, type = 'scatter', mode = 'lines+markers') %>%
  layout(title = "Comparativo Temperatura Média 2010 X 2020",
         xaxis = list(title = "Ano"),
         yaxis = list(title = "Temperatura Média"))


combTemp <- subplot(temMed10, temMed10, nrows = 1, margin = c(0.05))

combTemp


## Comparativo dos gráficos de Temperatura MAX/MIN para 2010 e 2020

maxMin10 <- plot_ly() %>%
  add_trace(data = recifeSemestre10, x = ~datetime, y = ~tmax, type = 'scatter', mode = 'lines+markers', name = 'Max - 2010') %>%
  add_trace(data = recifeSemestre10, x = ~datetime, y = ~tmin, type = 'scatter', mode = 'lines+markers', name = 'Min - 2010') 
 



maxMin20 <- plot_ly() %>%
  add_trace(data = recifeSemestre20, x = ~datetime, y = ~tmax, type = 'scatter', mode = 'lines+markers', name = 'Max - 2020') %>%
  add_trace(data = recifeSemestre20, x = ~datetime, y = ~tmin, type = 'scatter', mode = 'lines+markers', name = 'Min - 2020') %>%
  layout(title = "Comparativo Temperatura Max/Min  2010 X 2020",
         xaxis = list(title = "Ano"),
         yaxis = list(title = "Temperatura"))


combMaxMin <- subplot(maxMin10, maxMin20, nrows = 1, margin = c(0.05))

combMaxMin


## Comparativo dos gráficos de Pressão para 2010 e 2020

pres10 <- plot_ly() %>%
  add_trace(data = recifeSemestre10, x = ~datetime, y = ~stp, type = 'scatter', mode = 'lines+markers', name = "2010") %>%
  layout(title = "Pressão 2010",
         xaxis = list(title = "Ano"),
         yaxis = list(title = "pressao atmosferica ao nivel da estacao (mb)"))


pres20 <- plot_ly() %>%
  add_trace(data = recifeSemestre20, x = ~datetime, y = ~stp, type = 'scatter', mode = 'lines+markers', name = '2020') %>%
  layout(title = "Pressão 2010 X 2020",
         xaxis = list(title = "Ano"),
         yaxis = list(title = "pressao atmosferica ao nivel da estacao (mb)"))


combPres <- subplot(pres10, pres20, nrows = 1, margin = c(0.05))

combPres


## Comparativo dos gráficos de Umidade para 2010 e 2020

um10 <- plot_ly() %>%
  add_trace(data = recifeSemestre10, x = ~datetime, y = ~hmdy, type = 'scatter', mode = 'lines+markers', name = "2010")
  

umi20 <- plot_ly() %>%
  add_trace(data = recifeSemestre20, x = ~datetime, y = ~hmdy, type = 'scatter', mode = 'lines+markers', name = '2020') %>%
  layout(title = "Umidade 2010 X 2020",
         xaxis = list(title = "Ano"),
         yaxis = list(title = "Umidade Relativa"))


combUmi <- subplot(um10, umi20, nrows = 1, margin = c(0.05))

combUmi


# Criando uma visualização comparativa entre a media mensal da temperatura no semstre de 2010 e 2020

mediaMensalTemp10 <- recifeSemestre10 %>%
  group_by(mes) %>%
  summarize(media_temperatura = mean(temperatura_media, na.rm = TRUE))

mediaMensalTemp20 <- recifeSemestre20 %>%
  group_by(mes) %>%
  summarize(media_temperatura = mean(temperatura_media, na.rm = TRUE))

mesesTemp <- c("03", "04", "05", "06", "07", "08")

media_mensalTemp <- data.frame(meses = mesesTemp ,m10 =  mediaMensalTemp10$media_temperatura, m20 = mediaMensalTemp20$media_temperatura)

media_mensalTemp
##   meses      m10      m20
## 1    03 27.65316 27.65121
## 2    04 26.94590 26.78042
## 3    05 26.11593 26.02779
## 4    06 25.11708 25.15882
## 5    07 24.29815 24.27864
## 6    08 23.51338 24.29811
serieTemp1020 <- plot_ly() %>%
  add_trace(data = media_mensalTemp, x = ~meses, y = ~m10, type = 'scatter', mode = 'lines+markers', name = '2010') %>%
  add_trace(data = media_mensalTemp, x = ~meses, y = ~m20, type = 'scatter', mode = 'lines+markers', name = '2020') %>%
  layout(title = "Comparativo Temperatura Média 2010 X 2020",
         xaxis = list(title = "Ano"),
         yaxis = list(title = "Temperatura"))

serieTemp1020


# Criando uma visualização comparativa entre a media mensal da precipitação no semstre de 2010 e 2020

mediaMensalPrec10 <- recifeSemestre10 %>%
  group_by(mes) %>%
  summarize(media_precipitacao = mean(prcp, na.rm = TRUE))

mediaMensalPrec20 <- recifeSemestre20 %>%
  group_by(mes) %>%
  summarize(media_precipitacao = mean(prcp, na.rm = TRUE))

mesesPrec <- c("03", "04", "05", "06", "07", "08")

media_mensalPrec <- data.frame(meses = mesesPrec ,m10 =  mediaMensalPrec10$media_precipitacao, m20 = mediaMensalPrec20$media_precipitacao)

media_mensalPrec
##   meses       m10       m20
## 1    03 0.1156593 0.2142473
## 2    04 0.3594444 0.3416667
## 3    05 0.1540323 0.3405114
## 4    06 0.6961111 0.4119444
## 5    07 0.3373626 0.2735849
## 6    08 0.2456522 0.1613514
seriePrec1020 <- plot_ly() %>%
  add_trace(data = media_mensalPrec, x = ~meses, y = ~m10, type = 'scatter', mode = 'lines+markers', name = '2010') %>%
  add_trace(data = media_mensalPrec, x = ~meses, y = ~m20, type = 'scatter', mode = 'lines+markers', name = '2020') %>%
  layout(title = "Comparativo do Volume de precipitação 2010 X 2020",
         xaxis = list(title = "Ano"),
         yaxis = list(title = "Volume"))


seriePrec1020


Conclusão sobre o que foi observado

A análise climática das estações do INMET no Recife ao longo dos anos de 2000 a 2020 proporciona insights interessantes sobre as condições climáticas da região. Ao comparar os recortes de 2010 e 2020, destacam-se tendências significativas que merecem atenção especial.

Os gráficos gerados a partir dos dados climáticos revelam desenhos similares, sugerindo certa consistência nas variações climáticas durante esse período. Nota-se que padrões de picos e quedas nas variáveis climáticas, como temperatura, precipitação e pressão atmosférica, permaneceram relativamente estáveis ao longo dos anos.

Entretanto, um achado notável emerge ao observar a análise de volume de precipitação. Durante o ano de 2020, em comparação com 2010, um aumento notável no volume de precipitação foi percebido, especialmente nos meses de junho e julho. Esse aumento pode estar relacionado a uma série de fatores, como padrões climáticos anômalos ou influências climáticas globais.

Ainda que as tendências climáticas gerais mostrem pouca variação e padrões consistentes, o aumento no volume de precipitação em 2020, particularmente durante os meses mencionados, ressalta a importância de investigar as razões por trás dessa mudança. Questões como as mudanças climáticas, fenômenos atmosféricos de grande escala e influências locais podem desempenhar um papel nesse aumento.

Além dos dados apresentados nos gráficos, considerar informações adicionais, como o crescimento urbano, mudanças no uso do solo e eventos climáticos globais, pode enriquecer a análise. Dessa forma, compreender melhor as tendências observadas e suas implicações se torna uma abordagem abrangente.

Em resumo, enquanto a análise dos gráficos sugere uma relativa estabilidade nas condições climáticas do Recife ao longo dos anos, a observação de um aumento notável no volume de precipitação em 2020, especialmente durante os meses de junho e julho, ressalta a necessidade contínua de investigar e entender as nuances das mudanças climáticas na região. Isso reforça a importância de considerar uma ampla gama de fatores para uma avaliação climática completa e precisa.