


Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
computa dados de uma produção de energia solar
Tipologia: Esquemas
1 / 4
Esta página não é visível na pré-visualização
Não perca as partes importantes!



import urllib.request as req import json import linha import barras import boxplot
#FUNCAO QUE VAI SER USADA FUTURAMENTE PARA A PLOTAGEM DOS GRÁFICOS, VISTO QUE AS ENERGIAS, OU POTENCIAS, NEGATIVAS, NÃO SÃO, DE FATO, NEGATIVAS, MAS SIM INDICAM QUE NÃO HOUVE PRODUÇÃO. O SENSATO AQUI É DEIXAR O VALOR ASSOCIADO COMO "0" def corrigir_variaveis(lista): for i in range(len(lista)): if lista[i] == -1: lista[i] = 0 return lista
#A FUNCAO ABAIXO É BEM TRIVIAL. DADO UM MÊS {1,2,3,4,5,6}, ELA RETORNA O NÚMERO DE DIAS NESSE MÊS. def dias_mes(mes): if mes % 2 == 1: return 31 elif mes == 2: return 28 else: return 30
#ESSA FUNÇÃO SIMPLESMENTE FAZ COM QUE TODO DIA {1,2,3,...9} SEJA ACOMPANHADO DO NÚMERO '0' À SUA ESQUERDA, FACILITANDO SUA APLICAÇÃO NAS URLS. def adicionar_zero(dia): if dia < 10: return '0'+str(dia) else: return str(dia)
GUARDA TODO SEU CONTEÚDO NA VARIÁVEL 'dados', E, POSTERIORMENTE, RETORNA UM DICIONÁRIO OU UMA LISTA. def importar_tipo(url): dados = req.urlopen(url).read().decode() return json.loads(dados)
NUMA VARIÁVEL 'lista_potencias', LOGO DEPOIS, TODAS AS POTENCIAS '-1' (NOS HORÁRIOS EM QUE NÃO HÁ PRODUÇÃO DE ENERGIA) SERÃO TRANSFORMADAS NO NÚMERO '0', VISTO QUE PODERÁ INFLUENCIAR NEGATIVAMENTE NOS GRÁFICOS. def potencias_dia(dia,mes): dia = adicionar_zero(dia) url = 'http://albertocn.sytes.net/2019-1/pi/projeto/ dia_2019_0'+str(mes)+'_'+dia+'.json' lista_potencias = (importar_tipo(url)['potencia']) return corrigir_variaveis(lista_potencias)
def plotar_linhas(): dia = 1 mes = 1 y = potencias_dia(dia,mes) x = range(1,193) linha.grafico(x,y)
plotar_linhas()
VALORES CONTENDO A ENERGIA PRODUZIDA NOS DIAS DO RESPECTIVO MES. def captar_energia_mes(mes): x = range(1,dias_mes(mes)+1) y = list() for dia in x: url = 'http://albertocn.sytes.net/2019-1/pi/projeto/ dia_2019_0'+str(mes)+'_'+adicionar_zero(dia)+'.json' y.append((importar_tipo(url))['energiaDia']) return corrigir_variaveis(y)
#A FUNCAO ABAIXO PLOTA O GRÁFICO DE BARRAS. def plotar_barras(): mes = 4 x = range(1,dias_mes(mes)+1) y = captar_energia_mes(mes) barras.grafico(x,y,mes)
plotar_barras()
#******************************************************
elif mes == 6: return 'Junho'
def grafico(x, y,mes): plt.bar(x, y) plt.title('Energia gerada no mes de'+' '+mes_por_extenso(mes)) plt.xlabel('Dias') plt.ylabel('Energia gerada(kWh)') plt.savefig('barras.png') plt.close()
import matplotlib.pyplot as plt
def grafico(x, y): plt.boxplot(y) plt.title('Potencia por mes ao longo de um semestre') plt.xlabel('Meses') plt.ylabel('Potencia mensal') plt.savefig('boxplot.png') plt.close()
import matplotlib.pyplot as plt
def grafico(x, y): plt.plot(x, y) plt.xticks([12*i for i in range(1,17)], ['5:00','','7:00','','9:00','','11:00','','13:00','','15:00','',' :00','','19:00','','21:00']) plt.title('Variacao da potencia ao longo do dia') plt.xlabel('') plt.ylabel('Potencia(kW)') plt.savefig('linha.png') plt.close()