# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
import pandas as pd
import matplotlib.pyplot as plt


##################################################
# Exercício 1: Leitura de um ficheiro TXT

#a)
with open('dados.txt', 'r') as f:
    linhas = f.readlines()

#b)
linhas = linhas[1:]  # Ignorar cabeçalho
n_linhas = len(linhas)
print('Número de linhas:', n_linhas)

#c)
serie = []
for linha in linhas:
    partes = linha.split(',')
    if len(partes) > 1:
        serie.append(float(partes[1]))
print('Serie extraída:', serie)


#d)
if serie:
    valor_medio = sum(serie) / len(serie)
    print('Valor média:', valor_medio)
else:
    print('Nenhum valor encontrada.')



######################################################
# Exercício 2: Leitura, processamento e representacao de um ficheiro Excel

#a)
df = pd.read_excel('dados_meteorologicos.xlsx')

#b)
print(df.head())

#c)
precipitacao = df['Precipitação (mm)'].sum()
print('Total acumulado de precipitação:', precipitacao)


#d)
#Gráfico de temperatura (não foi pedido), só foi pedido para representar os 2 juntos
plt.figure(figsize=(10, 5))
plt.plot(df['Data'], df['Temperatura (°C)'], label='Temperatura (°C)', color='r')
plt.xlabel('Data')
plt.ylabel('Temperatura (°C)')
plt.title('Série Temporal de Temperatura')
plt.legend()
plt.xticks(rotation=45)
plt.show()



#e) 
# representar no mesmo plot temperatura e precipitacao
fig, ax1 = plt.subplots(figsize=(10, 5))
ax1.plot(df['Data'], df['Temperatura (°C)'], label='Temperatura (°C)', color='r')
ax1.set_xlabel('Data')
ax1.set_ylabel('Temperatura (°C)', color='r')

ax2 = ax1.twinx()
ax2.plot(df['Data'], df['Precipitação (mm)'], label='Precipitação (mm)', color='b')
ax2.set_ylabel('Precipitação (mm)', color='b')

plt.title('Comparação entre Temperatura e Precipitação')
plt.show()

#ax3 = ax1.twinx()
#ax3.plot(df['Data'], df['Precipitação (mm)'], label='Precipitação (mm)', color='b')
#ax3.set_ylabel('Precipitação (mm)', color='b')
#
#plt.title('Comparação entre Temperatura e Precipitação')
#plt.show()




#f) g)
# contar dias com temp>30 deg e guardar valores acima de 25 deg
temp_xls=df['Temperatura (°C)'].values
dias_quentes = 0
altas_temperaturas = []
for temp in temp_xls:
    if temp > 30:
        dias_quentes += 1
    if temp > 25:
        altas_temperaturas.append(temp)

print('Dias com temperatura acima de 30ºC:', dias_quentes)
print('Temperaturas acima de 25ºC:', altas_temperaturas)


# h)
classificacao = []
for temp in temp_xls:
    if temp < 15:
        classificacao.append('Frio')
    elif temp <= 25:
        classificacao.append('Agradável')
    else:
        classificacao.append('Quente')

#i)
with open('classificacao_temperatura.txt', 'w') as f:
    for c in classificacao:
        f.write(c + '\n')
#        f.write(c)
print('Classificação de temperaturas salva em classificacao_temperatura.txt')
