-
Notifications
You must be signed in to change notification settings - Fork 0
/
fiu_04_teste_6hrs.py
99 lines (77 loc) · 2.8 KB
/
fiu_04_teste_6hrs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import sys
sys.path.append('../modelos/')
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
import gr5i
import matplotlib.pyplot as plt
import HydroErr as he
def plotar_hidro(idx, PME, ETP, Qobs, Qmon=None, Qsims=None):
fig, (ax1, ax2) = plt.subplots(2, 1,sharex='all',gridspec_kw={'height_ratios': [1, 3]})
ax1.bar( idx, PME, label='PME', color='blue')
ax1.plot(idx, ETP, label='etp', color='red')
ax1.invert_yaxis()
ax1.set_ylabel('Altura de precipitação (mm)', fontsize=8)
ax1.legend(loc='upper right', fontsize=8)
ax2.plot(idx, Qobs, label='Qobs', color='black')
ax2.set_ylabel('Vazão (m3/s)')
if Qmon is not None:
ax2.plot(idx, Qmon, label='Qmon', color='black', linestyle='--')
if Qsims is not None:
for chave in Qsims.keys():
ax2.plot(idx, Qsims[chave], label=chave)
ax2.legend(loc='upper right', fontsize=8)
return fig
#Leitura das forçantes do modelo
arq = open('/discolocal/bruno/Fiu/peq_Fiu_6hrs.csv')
areainc = float(arq.readline())
area = areainc
df = pd.read_csv('/discolocal/bruno/Fiu/peq_Fiu_6hrs.csv', skiprows=[0],
index_col = 'datahora_UTC', parse_dates = True)
df['qmon'] = 0
dt = 6
PME = df['pme'].to_numpy()
ETP = df['etp'].to_numpy()
Qjus = df['qjus'].to_numpy()
Qmon = df['qmon'].to_numpy()
##MODELO GR5i ##
x1 = 478.654
x2 = 0.426158
x3 = 474.276
x4 = 4.22446
x5 = 0.417908
resultado = gr5i.gr5i(dt=dt, area=area, PME=PME, ETP=ETP, Qmon=Qmon,
x1=x1, x2=x2, x3=x3, x4=x4, x5=x5)
df['q_gr5'] = pd.DataFrame(resultado, index=df.index)
## GR5i 2a calibracao ##
x1 = 1480
x2 = -0.1
x3 = 94
x4 = 2.6
x5 = 0.41
resultado2 = gr5i.gr5i(dt=dt, area=area, PME=PME, ETP=ETP, Qmon=Qmon,
x1=x1, x2=x2, x3=x3, x4=x4, x5=x5)
df['gr5i_2'] = pd.DataFrame(resultado2, index=df.index)
##CORTE DE TEMPO PARA NASH E PLOTAGEM##
df2 = df.loc['2020-06-26':'2020-06-29']
df2.index
Qsimulado2 = df2[['q_gr5', 'gr5i_2']]
nash_gr = he.nse(df2['q_gr5'],df2['qjus'])
print('Nash GR5i = ' + str(nash_gr))
nash_gr2 = he.nse(df2['gr5i_2'],df2['qjus'])
print('Nash GR5i_2 = ' + str(nash_gr2))
data_texto = (f'Nash GR5i = {nash_gr:.2f}' + '\n' +
f'Nash GR5i_2 = {nash_gr2:.2f}')
# Plotagem
fig = plotar_hidro(idx=df2.index,
PME=df2['pme'],
ETP=df2['etp'],
Qobs=df2['qjus'],
Qmon=df2['qmon'],
Qsims=Qsimulado2)
# plt.annotate(data_texto, xy=(1,1), xytext=(-4,100), fontsize=10,
# xycoords='axes fraction', textcoords='offset points',
# bbox=dict(facecolor='white', alpha=0.8),
# horizontalalignment='right', verticalalignment='top')
#fig.savefig('../Teste/prints/fiu_2020_manual.png', dpi = 300,
# bbox_inches = 'tight')