109 lines
3.2 KiB
Python
109 lines
3.2 KiB
Python
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
|