quase
This commit is contained in:
98
veranicos.py
98
veranicos.py
@@ -2,6 +2,8 @@ import os
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
from time import sleep
|
||||
from datetime import datetime
|
||||
import csv
|
||||
|
||||
|
||||
def listar_pastas(diretorio):
|
||||
@@ -9,12 +11,94 @@ def listar_pastas(diretorio):
|
||||
return pastas
|
||||
|
||||
|
||||
|
||||
def veranicos_com_estacao_chuvosa(estacao,dados_veranivos, output_csv):
|
||||
|
||||
def processar_veranicos_estacao_chuvosa():
|
||||
print("processar veranicos ...")
|
||||
diretorio = 'data' # nome da pasta principal
|
||||
pastas = listar_pastas(diretorio)
|
||||
|
||||
dados_df = pd.read_csv(dados, sep=';', decimal=',', parse_dates=['DATA'], dayfirst=True)
|
||||
start_date = '1980-01-01'
|
||||
end_date = '2022-12-31'
|
||||
filtered_df = dados_df[(dados_df['DATA'] >= start_date) & (dados_df['DATA'] <= end_date)]
|
||||
for pasta in pastas:
|
||||
print(f"Encontrada pasta: {pasta}")
|
||||
estacao_com_inicio_fim_chuva=f"./{pasta}_estacao_chuvosa.csv"
|
||||
dados_veranivos=f"./{pasta}_dados.csv"
|
||||
output_csv = f"./{pasta}_veranicos.csv"
|
||||
print(estacao_com_inicio_fim_chuva)
|
||||
print(dados_veranivos)
|
||||
print(output_csv)
|
||||
|
||||
veranicos_com_estacao_chuvosa(estacao_com_inicio_fim_chuva,dados_veranivos, output_csv)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def veranicos_com_estacao_chuvosa(estacao_com_inicio_fim_chuva,dados_veranivos, output_csv):
|
||||
|
||||
with open(output_csv, 'w') as file:
|
||||
cabecalho = ['CODIGO', 'INICIO','FINAL', 'QTDDIAS']
|
||||
writer = csv.DictWriter(file, fieldnames=cabecalho, delimiter=';')
|
||||
writer.writeheader() # Escreve o cabeçalho
|
||||
|
||||
|
||||
|
||||
df_dados_estacao_chuvosa = pd.read_csv(estacao_com_inicio_fim_chuva, sep=';', decimal=',')
|
||||
try:
|
||||
df_dados_estacao_chuvosa['INICIO'] = pd.to_datetime(df_dados_estacao_chuvosa['INICIO'], format='%Y-%m-%d', errors='raise')
|
||||
df_dados_estacao_chuvosa['FINAL'] = pd.to_datetime(df_dados_estacao_chuvosa['FINAL'], format='%Y-%m-%d', errors='raise')
|
||||
except Exception as e:
|
||||
raise ValueError(f"Erro ao converter a coluna 'DATA': {e}")
|
||||
|
||||
|
||||
df_dados_veranivos =pd.read_csv(dados_veranivos, sep=';', decimal=',')
|
||||
try:
|
||||
df_dados_veranivos['DATA'] = pd.to_datetime(df_dados_veranivos['DATA'], format='%Y-%m-%d', errors='raise')
|
||||
except Exception as e:
|
||||
raise ValueError(f"Erro ao converter a coluna 'DATA': {e}")
|
||||
|
||||
|
||||
|
||||
|
||||
for index, row in df_dados_estacao_chuvosa.iterrows():
|
||||
estacao= row['CODIGO']
|
||||
start_date= row['INICIO']
|
||||
end_date= row['FINAL']
|
||||
print(estacao , "INICIO: ", start_date, "FINAL: ", end_date)
|
||||
df_dados = df_dados_veranivos[(df_dados_veranivos['CODIGO'] == estacao) &(df_dados_veranivos['DATA'] >= start_date) & (df_dados_veranivos['DATA'] <= end_date)]
|
||||
|
||||
|
||||
|
||||
marcador_inicio= False
|
||||
marcador_final= False
|
||||
marcador_primeirodia= False
|
||||
leitura_chuva=0
|
||||
cont_veranico=0
|
||||
data_anterior=''
|
||||
data_incio=''
|
||||
for index, row in df_dados.iterrows():
|
||||
leitura_chuva= row['VALOR']
|
||||
data= row['DATA']
|
||||
|
||||
if (marcador_inicio): #FALSO
|
||||
if leitura_chuva <1:
|
||||
cont_veranico= cont_veranico+1
|
||||
else:
|
||||
marcador_final= True
|
||||
|
||||
if (cont_veranico==1 and marcador_inicio):
|
||||
data_incio= data
|
||||
if marcador_final:
|
||||
if (cont_veranico>=4):
|
||||
|
||||
#print ('estacao:', nome_estacao,'INCIO:', data_incio, ' FIM:', data_anterior , ' DIAS:', cont_veranico)
|
||||
with open(output_csv, 'a') as file:
|
||||
writer = csv.DictWriter(file, fieldnames=cabecalho, delimiter=';')
|
||||
writer.writerow({'CODIGO':estacao, 'INICIO':data_incio.strftime('%Y-%m-%d'),'FINAL':data_anterior.strftime('%Y-%m-%d'), 'QTDDIAS':cont_veranico})
|
||||
|
||||
#toda ver que chove mais que 0.5 mm ele reinicia o contador
|
||||
if leitura_chuva >=1:
|
||||
marcador_inicio= True
|
||||
cont_veranico= 0
|
||||
marcador_final= False
|
||||
|
||||
data_anterior= data
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user