import os import pandas as pd import numpy as np from time import sleep from datetime import datetime import csv def listar_csvs(diretorio): arquivos_csv = [nome for nome in os.listdir(diretorio) if nome.endswith('.csv') and os.path.isfile(os.path.join(diretorio, nome))] return arquivos_csv def processar_Classificao_Veranicos(): print("processar classificacao veranicos..") diretorio = 'classificacao_veranicos' # nome da pasta principal files = listar_csvs(diretorio) decendio = carregar_decendios('decendio.csv') for file in files: print(f"Encontrada pasta: {file}") qtd_veranicos,cod_estacao = carregar_estacao_com_veranico(file) print(cod_estacao) rodar_decendio(decendio,qtd_veranicos, cod_estacao) def rodar_decendio(decendios,qtd_veranicos, estacoes): print("Decendio...") resultados = [] amplitude=0 estacoes= [2244035] #decendios = decendios.head(24) for estacao in estacoes: # percorre todas as estações array de estacoes #estacao_fitrada = qtd_veranicos['CODIGO'] == estacao estacao_fitrada = qtd_veranicos[qtd_veranicos['CODIGO'] == estacao] estacao_fitrada = estacao_fitrada.head(10) for index, selecao_estacao in estacao_fitrada.iterrows(): # Itera pelas linhas do DataFrame print(index," ------------------------------------------") data_inicio = pd.to_datetime(selecao_estacao['INICIO']) data_fim = pd.to_datetime(selecao_estacao['FINAL']) filtro = decendios[(decendios['INICIO'] <= data_fim) & (decendios['FINAL'] >= data_inicio)] dia =selecao_estacao['QTDDIAS'] # Adicionar colunas FINICIO e FFINAL filtro = filtro.copy() # Para evitar avisos do Pandas filtro['FINICIO'] = data_inicio filtro['FFINAL'] = data_fim for index, selecao_filtro in filtro.iterrows(): des = selecao_filtro['DECENDIO'] print(filtro) print(des) resultado = { 'estacao': estacao, 'descendio':selecao_filtro['DECENDIO'], 'amplitude': 0 } resultados.append(resultado) save = pd.DataFrame(resultados) os.remove('saida.csv') save.to_csv('saida.csv', sep=';', encoding='utf-8', index=False) def carregar_decendios(file): print("Abrindo arquivo decendio.") dados_df = pd.read_csv(file, sep=';', decimal=',', parse_dates=['INICIO', 'FINAL'], dayfirst=True) start_date = '1980-01-01' end_date = '2022-12-31' filtered_df = dados_df[(dados_df['INICIO'] >= start_date) & (dados_df['FINAL'] <= end_date)] dados_df=filtered_df #dados_df.to_csv('-valores de origem .csv', sep=";", encoding='utf-8', decimal=',', index=False) return dados_df def carregar_estacao_com_veranico(file): print("Abrindo estacao com veranico") dados_df = pd.read_csv('./classificacao_veranicos/'+file, sep=';', decimal=',', parse_dates=['INICIO', 'FINAL']) codigos_unicos = dados_df['CODIGO'].unique() # Retorna uma lista de valores únicos return dados_df, codigos_unicos