Aula 01#
Ciência de Dados para Computação: O que são “dados”? O que queremos fazer com eles?#
Objetivo da aula: ao fim desta aula, o aluno será capaz de entender como dados se relacionam a uma série histórica.
Fonte dos dados: https://portal.inmet.gov.br/dadoshistoricos
Mudanças climáticas#
Um fenômeno bastante discutido hoje em dia é a mudança climática. Trata-se da alteração na temperatura do planeta Terra, nos ciclos de chuvas, etc., que pode causar uma série de problemas, tanto de ordem econômica (pela alteração nas colheitas, por exemplo) quanto de ordem ambiental (permeando tanto a possível extinção de espécies quanto o surgimento de novas doenças e o aparecimento mais frequente condições climáticas extremas como tempestades e grandes secas).
Nesta aula, usaremos dados públicos para visualizar os efeitos da mudança climática.
Hipóteses e bases de dados#
Em toda análise de dados, partimos de hipóteses. Uma hipótese é uma afirmação como em: “se o fenômeno X acontece, então devo ser capaz de observar a medida Y”.
Exercício 1#
Objetivo: relacionar fenômenos a possíveis observações
Junto a sua dupla, avalie as hipóteses abaixo com “plausíveis” ou “não-plausíveis”. Ordene as hipóteses plausíveis da “mais provável” para a “menos provável”.
Se a mudança climática ocorre, então devo ser capaz de observar um aumento nas temperaturas máximas anuais ao longo dos anos
Se a mudança climática ocorre, então devo ser capaz de observar um aumento nas temperaturas médias anuais ao longo dos anos
Se a mudança climática ocorre, então devo ser capaz de observar um aumento na umidade do ar média ao longo dos anos
Se a mudança climática ocorre, então devo ser capaz de observar uma diminuição nas temperaturas mínimas anuais ao longo dos anos
Se a mudança climática ocorre, então devo ser capaz de observar um aumento na precipitação ao longo dos anos
Sobre o INMET#
Independente de quais hipóteses você e sua dupla avaliaram com mais plausíveis, só podemos confirmá-las ou desconfirmá-las se, de fato, tivermos dados para observar. Para dados ambientais, é evidente que é pouco factível que coletemos, nós mesmos, algumas décadas de dados (especialmente porque temos somente até o fim do semestre para concluir esta disciplina!). Então, para este caso, é uma boa ideia encontrar outras fontes de dados que estejam disponíveis online.
Para dados ambientais brasileiros, uma possível fonte é o Instituto Nacional de Metereologia (INMET). O INMET disponibiliza dados coletados por estações metereológicas automáticas espalhadas pelo Brasil. O processo de coleta e registro foi iniciada em 2001, com 5 estações, e a cada ano foram sendo adicionadas novas estações, chegando a 588 em 2021.
Antes de trabalhar com os dados, precisamos entender como eles estão sendo armazenados.
Exercício 2#
Objetivo: abrir um documento CSV e verificar suas propriedades
Abra o arquivo csv com dados da estação de Brasília de 2001 usando o Excel (ou o Openoffice Spreadsheets). Encontre as seguintes informações:
Quais dados permitem identificar a estação metereológica em questão?
Quantas linhas de dados correspondem ao cabeçalho que identifica a estação e a coleta?
Com que frequência os dados ambientais são coletados?
Quais das hipóteses do exercício 1 poderiam ser avaliadas usando os dados coletados nesta estação?
Verificando os dados disponíveis, quais outras hipóteses poderíamos formar em relação à mudança climática?
Exercício 3#
Objetivo: abrir um documento CSV para verificar sua formatação
Agora, abra o arquivo csv usando um editor de texto como Bloco de Notas ou equivalente.
Como as colunas da tabela de dados são separadas?
Que marcador (ponto ou vírgula) é usado para separar decimais nos números?
Exercício 4#
Objetivo: usar o pandas
para abrir dados em Python
No código abaixo, relacione cada um dos parâmetros da função
read_csv
a uma propriedade do arquivo csv que você identificou nos exercícios 2 e 3.Após a execução, o que é mostrado na tela?
import pandas as pd
df = pd.read_csv('dados/INMET/2001/INMET_CO_DF_A001_BRASILIA_01-01-2001_A_31-12-2001.CSV', sep=';', encoding='latin1', decimal=',', skiprows=8)
df.head()
DATA (YYYY-MM-DD) | HORA (UTC) | PRECIPITAÇÃO TOTAL, HORÁRIO (mm) | PRESSAO ATMOSFERICA AO NIVEL DA ESTACAO, HORARIA (mB) | PRESSÃO ATMOSFERICA MAX.NA HORA ANT. (AUT) (mB) | PRESSÃO ATMOSFERICA MIN. NA HORA ANT. (AUT) (mB) | RADIACAO GLOBAL (KJ/m²) | TEMPERATURA DO AR - BULBO SECO, HORARIA (°C) | TEMPERATURA DO PONTO DE ORVALHO (°C) | TEMPERATURA MÁXIMA NA HORA ANT. (AUT) (°C) | TEMPERATURA MÍNIMA NA HORA ANT. (AUT) (°C) | TEMPERATURA ORVALHO MAX. NA HORA ANT. (AUT) (°C) | TEMPERATURA ORVALHO MIN. NA HORA ANT. (AUT) (°C) | UMIDADE REL. MAX. NA HORA ANT. (AUT) (%) | UMIDADE REL. MIN. NA HORA ANT. (AUT) (%) | UMIDADE RELATIVA DO AR, HORARIA (%) | VENTO, DIREÇÃO HORARIA (gr) (° (gr)) | VENTO, RAJADA MAXIMA (m/s) | VENTO, VELOCIDADE HORARIA (m/s) | Unnamed: 19 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2001-01-01 | 00:00 | 0.8 | 886.0 | 886.0 | 885.7 | -9999 | 20.1 | 19.0 | 20.7 | 20.1 | 19.4 | 18.9 | 93 | 91 | 93 | 167 | 5.3 | 2.8 | NaN |
1 | 2001-01-01 | 01:00 | 3.4 | 886.1 | 886.1 | 886.0 | -9999 | 19.8 | 19.0 | 20.0 | 19.7 | 19.1 | 18.9 | 96 | 94 | 95 | 187 | 4.0 | 0.3 | NaN |
2 | 2001-01-01 | 02:00 | 1.4 | 886.2 | 886.4 | 886.1 | -9999 | 19.9 | 19.1 | 20.0 | 19.8 | 19.2 | 19.0 | 96 | 95 | 95 | 288 | 1.1 | 0.0 | NaN |
3 | 2001-01-01 | 03:00 | 0.0 | 885.8 | 886.3 | 885.8 | -9999 | 19.8 | 19.0 | 20.0 | 19.7 | 19.1 | 18.5 | 95 | 93 | 95 | 346 | 0.9 | 0.2 | NaN |
4 | 2001-01-01 | 04:00 | 0.0 | 885.4 | 885.9 | 885.4 | -9999 | 19.4 | 18.9 | 20.0 | 19.4 | 19.3 | 18.8 | 97 | 95 | 97 | 305 | 2.8 | 1.8 | NaN |
Exercício 5#
Objetivo: selecionar uma coluna de interesse em um data frame
O código abaixo seleciona, de toda a nossa tabela de dados, somente a coluna referente à precipitação.
Execute o código e confirme que ele está funcionando
Modifique o código para que ele passe a selecionar a coluna referente à temperatura máxima.
df_ = df['PRECIPITAÇÃO TOTAL, HORÁRIO (mm)']
df_.head()
0 0.8
1 3.4
2 1.4
3 0.0
4 0.0
Name: PRECIPITAÇÃO TOTAL, HORÁRIO (mm), dtype: float64
Exercício 6#
Objetivo: avaliar valores máximos e mínimos
O código abaixo calcula o valor máximo de nossa coluna de dados calculada no exercício 5.
Qual é a temperatura máxima registrada em Brasília em 2001?
Qual é a temperatura máxima registrada em Brasília em 2021?
Esses dois valores são suficientes como evidência válida da mudança climática? Por que?
print(df_.max())
28.6
Exercício 7#
Objetivo: fazer e analisar uma figura mostrando elementos relevantes de uma série
O código abaixo abre cada um dos arquivos que temos disponíveis, calcula a precipitação/hora máxima em cada ano, e então mostra numa figura.
Modifique o código que busca os dados para que ele passe a calcular a temperatura máxima anual.
Encontre na documentação da biblioteca matplotlib como podemos colocar rótulos (labels) nos eixos de nosso gráfico. Coloque os rótulos de forma a identificar as grandezas físicas que estão sendo mostradas em cada eixo.
Encontre na documentação da biblioteca matplotlib como podemos colocar um título no gráfico. Coloque um título no gráfico de forma que seu conteúdo seja entendido rapidamente por outras pessoas.
Analisando seu gráfico, você diria que a estação metereológica de Brasília tem capturado evidências de mudança climática?
precipitacao = []
#descomente.
#for ano in range(2001, 2022):
# df_ = pd.read_csv('dados/INMET/'+str(ano)+'/INMET_CO_DF_A001_BRASILIA_01-01-'+str(ano)+'_A_31-12-'+str(ano)+'.CSV', sep=';', encoding='latin1', decimal=',', skiprows=8)
# precipitacao.append (df_["TEMPERATURA MÁXIMA NA HORA ANT. (AUT) (°C)"].max())