sabado
This commit is contained in:
286
tratamentoUltimoFeito.ipynb
Normal file
286
tratamentoUltimoFeito.ipynb
Normal file
@@ -0,0 +1,286 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Carregando\n",
|
||||
"#começa tratando os dados e limpa a base\n",
|
||||
"import pandas as pd\n",
|
||||
"import numpy as np\n",
|
||||
"import csv\n",
|
||||
"\n",
|
||||
"dados = pd.read_csv('dados.csv', sep=';', encoding='utf-8', decimal=',')\n",
|
||||
"#dados.head(5)\n",
|
||||
"\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"#dados.dtypes\n",
|
||||
"# selecao do periodo de analise \n",
|
||||
"\n",
|
||||
"dados['DATA'] = pd.to_datetime(dados['DATA'], format='%d/%m/%Y')\n",
|
||||
"\n",
|
||||
"df_merged =pd.DataFrame()\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"ano = list([2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020])\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"for x in ano:\n",
|
||||
" selecao = (dados['DATA'] >=str(x)+'/09/01') & (dados['DATA'] <= str(x+1)+'/04/30')\n",
|
||||
" \n",
|
||||
" df_filtrado = dados[selecao]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" df_merged = pd.concat([df_merged, df_filtrado], ignore_index=True) \n",
|
||||
"\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from datetime import datetime\n",
|
||||
"#inicio da estacao chuvosa \n",
|
||||
"\n",
|
||||
"nome_estacao='DIAMANTINA'\n",
|
||||
" \n",
|
||||
"inciochuva = df_merged.loc[:,['DATA', nome_estacao] ]\n",
|
||||
"final_chuva=[]\n",
|
||||
"\n",
|
||||
"marcador_inicio=False\n",
|
||||
"ano_do_incio_chuva=0\n",
|
||||
"marcador_final=False\n",
|
||||
"\n",
|
||||
"somador_ml=0\n",
|
||||
"somador_ml_final_chuva=0\n",
|
||||
"\n",
|
||||
"for index, row in inciochuva.iterrows():\n",
|
||||
" leitura_chuva= row[nome_estacao] \n",
|
||||
" \n",
|
||||
" if leitura_chuva>=0:\n",
|
||||
" somador_ml= somador_ml+leitura_chuva;\n",
|
||||
"\n",
|
||||
" if somador_ml>=10 and not marcador_inicio:\n",
|
||||
" marcador_inicio=True\n",
|
||||
" data_incio_chuva= row['DATA'] \n",
|
||||
" ano_atual= row['DATA'].year\n",
|
||||
" print ('estacao:', nome_estacao,'INCIO:', data_incio_chuva, 'MM', somador_ml)\n",
|
||||
" somador_ml=0\n",
|
||||
" ano_do_incio_chuva= ano_atual\n",
|
||||
" marcador_final=False\n",
|
||||
" #print ('estacao:',ano_do_incio_chuva)\n",
|
||||
"\n",
|
||||
"final_chuva = inciochuva[::-1] \n",
|
||||
"print ('ano incio chuva:',ano_do_incio_chuva)\n",
|
||||
"for index, row in final_chuva.iterrows(): \n",
|
||||
" leitura_chuva= row[nome_estacao] \n",
|
||||
" ano_atual= int(row['DATA'].year)\n",
|
||||
" data_atual= row['DATA'] \n",
|
||||
" \n",
|
||||
" if leitura_chuva>=0 and data_atual <= datetime.strptime(str(ano_do_incio_chuva+1)+'-04-30', '%Y-%m-%d') :\n",
|
||||
" somador_ml_final_chuva = somador_ml_final_chuva +leitura_chuva\n",
|
||||
"\n",
|
||||
" if somador_ml_final_chuva>=5 and not marcador_final: \n",
|
||||
" marcador_final=True \n",
|
||||
" data_final_chuva= row['DATA'] \n",
|
||||
" print ('estacao:', nome_estacao,'FINAL:', data_final_chuva, 'MM', somador_ml_final_chuva)\n",
|
||||
" somador_ml_final_chuva=0\n",
|
||||
" marcador_inicio=False\n",
|
||||
" print ('ano final chuva:', ano_do_incio_chuva+1)\n",
|
||||
" \n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import csv\n",
|
||||
"from datetime import datetime\n",
|
||||
"\n",
|
||||
"with open('iniciofimestacao.csv', 'w') as file:\n",
|
||||
" cabecalho = ['estacao', 'inicio','final']\n",
|
||||
" writer = csv.DictWriter(file, fieldnames=cabecalho,delimiter=';')\n",
|
||||
" writer.writeheader() # Escreve o cabeçalho\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"#inicio da estacao chuvosa \n",
|
||||
"ano = list([2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020])\n",
|
||||
"\n",
|
||||
"#extrair nome coulas e remove a data\n",
|
||||
"estacao= list(dados.columns)\n",
|
||||
"estacao.pop(0)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"for xrow in estacao: #percorre a lista das estacoes\n",
|
||||
"\n",
|
||||
" for x in ano: # de cada estacao percorre o ano\n",
|
||||
"\n",
|
||||
" selecao = (dados['DATA'] >=str(x)+'/09/01') & (dados['DATA'] <= str(x+1)+'/04/30') \n",
|
||||
" df_filtrado_ano = dados[selecao] \n",
|
||||
"\n",
|
||||
" nome_estacao=xrow\n",
|
||||
" inciochuva = df_filtrado_ano.loc[:,['DATA', nome_estacao] ]\n",
|
||||
" final_chuva=[]\n",
|
||||
"\n",
|
||||
" marcador_inicio=False\n",
|
||||
" ano_do_incio_chuva=0\n",
|
||||
" marcador_final=False\n",
|
||||
"\n",
|
||||
" somador_ml=0\n",
|
||||
" somador_ml_final_chuva=0\n",
|
||||
"\n",
|
||||
" for index, row in inciochuva.iterrows():\n",
|
||||
" leitura_chuva= row[nome_estacao] \n",
|
||||
" \n",
|
||||
" if leitura_chuva>=0:\n",
|
||||
" somador_ml= somador_ml+leitura_chuva;\n",
|
||||
"\n",
|
||||
" if somador_ml>=10 and not marcador_inicio:\n",
|
||||
" marcador_inicio=True\n",
|
||||
" data_incio_chuva= row['DATA'] \n",
|
||||
" ano_atual= row['DATA'].year\n",
|
||||
" #print ('estacao:', nome_estacao,'INCIO:', data_incio_chuva, 'MM', somador_ml)\n",
|
||||
" dtinicio=data_incio_chuva\n",
|
||||
" somador_ml=0\n",
|
||||
" ano_do_incio_chuva= ano_atual\n",
|
||||
" marcador_final=False\n",
|
||||
" #print ('estacao:',ano_do_incio_chuva)\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" final_chuva = inciochuva[::-1] \n",
|
||||
" \n",
|
||||
" for index, row in final_chuva.iterrows(): \n",
|
||||
" leitura_chuva= row[nome_estacao] \n",
|
||||
" ano_atual= int(row['DATA'].year)\n",
|
||||
" data_atual= row['DATA'] \n",
|
||||
" \n",
|
||||
" if leitura_chuva>=0 and data_atual <= datetime.strptime(str(ano_do_incio_chuva+1)+'-04-30', '%Y-%m-%d') :\n",
|
||||
" somador_ml_final_chuva = somador_ml_final_chuva +leitura_chuva\n",
|
||||
"\n",
|
||||
" if somador_ml_final_chuva>=5 and not marcador_final: \n",
|
||||
" marcador_final=True \n",
|
||||
" data_final_chuva= row['DATA'] \n",
|
||||
" #print ('estacao:', nome_estacao,'FINAL:', data_final_chuva, 'MM', somador_ml_final_chuva)\n",
|
||||
" dtfinal = data_final_chuva\n",
|
||||
" somador_ml_final_chuva=0\n",
|
||||
" marcador_inicio=False\n",
|
||||
" #print ('ano final chuva:', ano_do_incio_chuva+1)\n",
|
||||
" \n",
|
||||
" #print ('estacao:', nome_estacao,'INCIO:', data_incio_chuva,'FINAL:', data_final_chuva )\n",
|
||||
" with open('iniciofimestacao.csv', 'a') as file:\n",
|
||||
" writer = csv.DictWriter(file, fieldnames=cabecalho, delimiter=';') \n",
|
||||
" writer.writerow({'estacao':nome_estacao, 'inicio':data_incio_chuva,'final':data_final_chuva}) \n",
|
||||
"\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"#extrair nome coulas e remove a data\n",
|
||||
"estacao= list(dados.columns)\n",
|
||||
"estacao.pop(0)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"with open('final.csv', 'w') as file:\n",
|
||||
" cabecalho = ['estacao', 'inicio','final', 'qtdias']\n",
|
||||
" writer = csv.DictWriter(file, fieldnames=cabecalho, delimiter=';')\n",
|
||||
" writer.writeheader() # Escreve o cabeçalho\n",
|
||||
"\n",
|
||||
"marcador_inicio= False\n",
|
||||
"marcador_final= False\n",
|
||||
"marcador_primeirodia= False\n",
|
||||
"leitura_chuva=0\n",
|
||||
"cont_veranico=0\n",
|
||||
"data_anterior=''\n",
|
||||
"data_incio=''\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"for xrow in estacao: #percorre a lista das estacoes\n",
|
||||
"\n",
|
||||
" nome_estacao=xrow\n",
|
||||
" \n",
|
||||
" novo = dados.loc[:,['DATA', nome_estacao] ]\n",
|
||||
" novo[nome_estacao] = novo[nome_estacao].astype(float)\n",
|
||||
"\n",
|
||||
" for index, row in novo.iterrows():\n",
|
||||
" leitura_chuva= row[nome_estacao] \n",
|
||||
" data= row['DATA']\n",
|
||||
" if (marcador_inicio):\n",
|
||||
" if leitura_chuva <=0:\n",
|
||||
" cont_veranico= cont_veranico+1\n",
|
||||
" else:\n",
|
||||
" marcador_final= True\n",
|
||||
" \n",
|
||||
" if (cont_veranico==1 and marcador_inicio):\n",
|
||||
" data_incio= data \n",
|
||||
" if marcador_final:\n",
|
||||
" if (cont_veranico>=4):\n",
|
||||
" \n",
|
||||
" #print ('estacao:', nome_estacao,'INCIO:', data_incio, ' FIM:', data_anterior , ' DIAS:', cont_veranico) \n",
|
||||
" with open('final.csv', 'a') as file:\n",
|
||||
" writer = csv.DictWriter(file, fieldnames=cabecalho, delimiter=';') \n",
|
||||
" writer.writerow({'estacao':nome_estacao, 'inicio':data_incio,'final':data_anterior, 'qtdias':cont_veranico}) \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" #toda ver que chove mais que 0.5 mm ele reinicia o contador\n",
|
||||
" if leitura_chuva >0: \n",
|
||||
" marcador_inicio= True\n",
|
||||
" cont_veranico= 0\n",
|
||||
" marcador_final= False\n",
|
||||
"\n",
|
||||
" data_anterior= data\n",
|
||||
" \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "venv",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.12"
|
||||
},
|
||||
"orig_nbformat": 4
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
Reference in New Issue
Block a user