hydrodl2 1.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hydrodl2/__init__.py +122 -0
- hydrodl2/_version.py +34 -0
- hydrodl2/api/__init__.py +3 -0
- hydrodl2/api/methods.py +144 -0
- hydrodl2/core/calc/__init__.py +11 -0
- hydrodl2/core/calc/batch_jacobian.pye +501 -0
- hydrodl2/core/calc/fdj.py +92 -0
- hydrodl2/core/calc/uh_routing.py +105 -0
- hydrodl2/core/calc/utils.py +59 -0
- hydrodl2/core/utils/__init__.py +7 -0
- hydrodl2/core/utils/clean_temp.sh +8 -0
- hydrodl2/core/utils/utils.py +63 -0
- hydrodl2/models/hbv/hbv.py +596 -0
- hydrodl2/models/hbv/hbv_1_1p.py +608 -0
- hydrodl2/models/hbv/hbv_2.py +670 -0
- hydrodl2/models/hbv/hbv_2_hourly.py +897 -0
- hydrodl2/models/hbv/hbv_2_mts.py +377 -0
- hydrodl2/models/hbv/hbv_adj.py +712 -0
- hydrodl2/modules/__init__.py +2 -0
- hydrodl2/modules/data_assimilation/variational_prcp_da.py +1 -0
- hydrodl2-1.3.0.dist-info/METADATA +184 -0
- hydrodl2-1.3.0.dist-info/RECORD +24 -0
- hydrodl2-1.3.0.dist-info/WHEEL +4 -0
- hydrodl2-1.3.0.dist-info/licenses/LICENSE +31 -0
|
@@ -0,0 +1,501 @@
|
|
|
1
|
+
---BEGIN PYE FILE---
|
|
2
|
+
UT+o!c1gk=Y+fU}0^D@+
|
|
3
|
+
By!m>RnPdPRdb-Sa?`<=
|
|
4
|
+
i1&B*P7FtgFp?(>M|n9l
|
|
5
|
+
c5C|bQ5Usf9XrX|wF1%6
|
|
6
|
+
+r<2W=|5n@nEkZcr$_s5
|
|
7
|
+
6aSo9i5h!gR1H=Of)r6S
|
|
8
|
+
9>SKYJ|Pe0;W#nMVFB7W
|
|
9
|
+
{C(MXZk#5vc&9S>bWFzH
|
|
10
|
+
c%PH!wvrMK=GnW(+8o7G
|
|
11
|
+
+#}#H|9lG7z+&NPT|k8E
|
|
12
|
+
|M=yO)E@wqv~9qHHv29a
|
|
13
|
+
{zg*rI}_mphr*$gT9-Le
|
|
14
|
+
#3=Y$BsB{uVs7pqk=DJD
|
|
15
|
+
bT_9cOx9?Fj1vz8*GXaN
|
|
16
|
+
BuB`~Z68LntV!t+J7FnH
|
|
17
|
+
m#YI@>g)vu$dvw7r7}L#
|
|
18
|
+
v}~P<@DnqaLOCUs*<M`!
|
|
19
|
+
`F149lWLVu4r7j@+shvf
|
|
20
|
+
i>C93ex$+2FY`{VJjn}+
|
|
21
|
+
E=>4oXTqdim$)jty)i-L
|
|
22
|
+
1DgHH!o<PeYH!iYA7#wN
|
|
23
|
+
Jw!9ZWXB7l%xAUY$WpS$
|
|
24
|
+
vkU7cZ%K1z(Ez?2igbl;
|
|
25
|
+
QB$RiW^?RZbSGX1mjAHm
|
|
26
|
+
T`B%`E?(O!&AF?1`C}KO
|
|
27
|
+
XyeIW^rCSpfE9MxfA`C{
|
|
28
|
+
`EY2Qe8P*bV#~KwE!srE
|
|
29
|
+
7EnYr(LHgBW}R|oWbxhz
|
|
30
|
+
|6~)>@vv%WG;;|l8;CMQ
|
|
31
|
+
DNnr`&@-p^b)&kEh76@w
|
|
32
|
+
aEoDGGfI1rUFCfDe#6AN
|
|
33
|
+
i9V}4D$k8IIbOd8PR$pn
|
|
34
|
+
i$S5@=t+VSqN{Qk;=6)6
|
|
35
|
+
Sb7fvL(CA}qoPETJH>oZ
|
|
36
|
+
4G24beT0^EihBX>a}l+6
|
|
37
|
+
TEsNFbV(f^nl906(@i<b
|
|
38
|
+
;^8?>?~RFun?ynA7>&Kq
|
|
39
|
+
y16U1gn6Np!LQ3@%~oWt
|
|
40
|
+
pe$()vteO-<`Eh2-Qy7=
|
|
41
|
+
p^qb4sa*!jOZSG-?ki+J
|
|
42
|
+
HuVM89C6#8D=Ei^s1hu^
|
|
43
|
+
(LJc39^s^~U$7Uqcx_!;
|
|
44
|
+
ZEBoNd2fJ2cYWqxn%*Es
|
|
45
|
+
6AwS+sFxiWLQV`W?5&#N
|
|
46
|
+
%22Mm!*729e-tfR1`Pxm
|
|
47
|
+
Pe@2t7@%0e1_HEr7M{dL
|
|
48
|
+
;%I`yTri!BUNQ=8-;sH{
|
|
49
|
+
9f=}c83^|K-~w<G4K2;}
|
|
50
|
+
?+()E)=x4*VMff_Zg{KC
|
|
51
|
+
Pe$2*k|#itpPuVQb!6}m
|
|
52
|
+
-7$)O#ri<DNp0>1wr!@t
|
|
53
|
+
0}HCc;2y_zsmFw9m@D>`
|
|
54
|
+
rblMh3w|a0>)@O)DJ_Z~
|
|
55
|
+
==lOoyCF_DNK~^k3Lu&;
|
|
56
|
+
-S7?oj)04)oFx|>hFrbx
|
|
57
|
+
$~MR(5M7K>-XdRCX;UBo
|
|
58
|
+
ymPkYk-0JAq&XO}rh+zg
|
|
59
|
+
;uCz)V%oB5FU{a6LoKwK
|
|
60
|
+
Ht}P<TUx|T`rF%W$LL12
|
|
61
|
+
@lx{b;%g-t_gc(yxpgHv
|
|
62
|
+
_}~K2g#?W(<TM^SK2KZc
|
|
63
|
+
s@=T7|LE8Y6O>_oPoJCM
|
|
64
|
+
wbB>aL?(e|)yuqEPBI%y
|
|
65
|
+
J^VordzD)Z0n>y_xhjAG
|
|
66
|
+
Z~#1qp5AbRv9A$k*2+i$
|
|
67
|
+
P?vjmmt48D!h6&UND3h$
|
|
68
|
+
Lan(SXzmI&U?ViK_%#3^
|
|
69
|
+
;G#o_Q}Q~b1SQ;=09jaU
|
|
70
|
+
OYWVx+~bK7>I3Z@QyEH3
|
|
71
|
+
+6M;81+9`Ww1XyW7U7^p
|
|
72
|
+
-{;zQcBifY-7n}B*^7)U
|
|
73
|
+
J@aOR-4}+vQ`5b276v_C
|
|
74
|
+
2~a#@lJi5!sepX@LQM$s
|
|
75
|
+
*JY%~JLEUVhErAhx|LHF
|
|
76
|
+
>;!UpX|#;K5$_lJS#Klz
|
|
77
|
+
)T|l>Ajb?`cl7=}FY*oJ
|
|
78
|
+
ub6uBqECgc3D~FCfh)cO
|
|
79
|
+
+p#QwYc>SRK-;f>RQl0B
|
|
80
|
+
LRC?CLEf5}5Zj>&pxs#G
|
|
81
|
+
%@8>Rnz0)Hg$u^eDdI(t
|
|
82
|
+
;S{=;8h1_VeFL~0wu7Tk
|
|
83
|
+
;=)`auLthMz^1T>1AGeW
|
|
84
|
+
7%ewtQp0nA#e=Q%J`hsI
|
|
85
|
+
jnGzzA+YXaM1(@B0ajTd
|
|
86
|
+
#d7g*LHc@#S!O0g_S_DD
|
|
87
|
+
%Wnuo#t7k5CU(qAO^J_!
|
|
88
|
+
Fn1unrgWfB5wMy3FLjur
|
|
89
|
+
`9IyMHmP;y2M$T-&KMVY
|
|
90
|
+
^ZXg2$CIczerB?cq8Y3P
|
|
91
|
+
o=~1-Apej7au&0;i0cGr
|
|
92
|
+
O7$Y+uBjL1URY7)1972!
|
|
93
|
+
@8OU!O8MpHa3b|c0ujcj
|
|
94
|
+
uW!}K8tXSlY)rzmhLjk|
|
|
95
|
+
$ea3<s~K)Me^O*u_U?*-
|
|
96
|
+
5Mf!9FLkuuyn3AeVCdFi
|
|
97
|
+
ixQU*W+uK1_aO|Z2)i~Z
|
|
98
|
+
VDQ4+lMsCPVMBI3d<QXa
|
|
99
|
+
-T7=5FIEE`u3GFGjR(!y
|
|
100
|
+
BV2Dr5a%6<4g~RIz!6qz
|
|
101
|
+
!R{8im3KxH7?A&<WO5C%
|
|
102
|
+
b166VSz}xr9M{WdSv3jR
|
|
103
|
+
$|7`YqiEisTOW~TVL*Ii
|
|
104
|
+
<@xd+;$*CnB{W(AKk}!E
|
|
105
|
+
BuUBIbv^lOj5>G0;$rTt
|
|
106
|
+
+ZX`W5Yh9Kbhzo{#JbkD
|
|
107
|
+
z01XeF>48(imDEgSXYb9
|
|
108
|
+
{9wCQaXn>kJA?z?K4fQ*
|
|
109
|
+
dPc;HO8AymQo}-z36$P=
|
|
110
|
+
8+Cl-IenDFf?UE{2<t>n
|
|
111
|
+
qv+-qu&^+&J+?l>z7&5?
|
|
112
|
+
#m{3tfls9<2s`N7<3rr=
|
|
113
|
+
c6l}zJW;9xLOFt=O;Q+S
|
|
114
|
+
XIok;ACt+3lwRRUh)oTn
|
|
115
|
+
D*dxU$RRD?j&wBu-&U6F
|
|
116
|
+
ZiB05sa7ea%^CizZgvo@
|
|
117
|
+
p=Qyp{Zk@wOum?|N{LKo
|
|
118
|
+
{@rJVU3S|ih;#H(JFNK*
|
|
119
|
+
P1DzZP(9_>)jvM0eknQN
|
|
120
|
+
hVp@Ja|$#nV(cyL*UJ03
|
|
121
|
+
MnlQsn}T<3F9myu{<0(q
|
|
122
|
+
Z^Hm7O<5$Da^A~l)di|n
|
|
123
|
+
n6A*HU@pBT2C)NR)5*<*
|
|
124
|
+
1;<$e(K2@}L|Sti6JK}@
|
|
125
|
+
KX)?mNJlj~`cDvR)K1g$
|
|
126
|
+
Y`2v-+5l=|M4<h4jF7gK
|
|
127
|
+
a$qp@1~#6L)2yE!8S0TR
|
|
128
|
+
rjxF8ZNsPz(*Q1M?Ukjp
|
|
129
|
+
3MI(FN7`I9VeUneTmP&v
|
|
130
|
+
9FpuIZNp*qIx_o)62lT2
|
|
131
|
+
3bvxyP8;52$kwJAQL0v>
|
|
132
|
+
r9FK68=h&&^la_LO>Vm+
|
|
133
|
+
Uf{$x&y7NEv4XzRLNxDU
|
|
134
|
+
(YHt7*3s_y5<*F;PE9Z6
|
|
135
|
+
<lS3PtQk|_+L%qc8R;XE
|
|
136
|
+
$g%|Xy?XZ*G7_q9`dvN*
|
|
137
|
+
^T%J10#_#%drF;8o^hTE
|
|
138
|
+
qGG5Sj~I9kSHB-)&Aw*y
|
|
139
|
+
r=Y2bXxfadRjy>u9v4v4
|
|
140
|
+
iE>?}3ayR%*Sy|6@r-l*
|
|
141
|
+
!aW|WXV4EePyEacwyS{O
|
|
142
|
+
SQ9jyTL(&z6aS$mMox@E
|
|
143
|
+
ZZ$yb^L)%bU_Fz9d@$VC
|
|
144
|
+
62f1fr;D@#q<!<`%UtPv
|
|
145
|
+
DCAUa(BKV>XNHs(Uw4Bi
|
|
146
|
+
im6J!PYt_Sm-4~ft>}sg
|
|
147
|
+
=5aCHWt?ZcoX!Mi1iS@!
|
|
148
|
+
-2^w~JrpJNwmSP7y9Bu`
|
|
149
|
+
qDrX=aouy{B4rfAQ)gY!
|
|
150
|
+
PGC#$P!l>$$BvRt8HhJ4
|
|
151
|
+
L|aJ-kKH;!$u{F0kp`~r
|
|
152
|
+
D1rKRj@hG&V}}BDG+(S8
|
|
153
|
+
(l7B!Wm=MGq}gNz67`Wv
|
|
154
|
+
1+b{@aIG}~$N?q;lCXz7
|
|
155
|
+
6N4sD%Jg7(-5SOjMMHUx
|
|
156
|
+
J)>)%5H!XM_-8{YOc^zh
|
|
157
|
+
$cN^%<z$9X#s4*l89-WN
|
|
158
|
+
QdzR(d}SymrxDW80r59#
|
|
159
|
+
BioT2Hd+RZM8uBmi25tM
|
|
160
|
+
lHVyL;FV7H#=&!_@)e3t
|
|
161
|
+
VTI3*6BgFb<zmb1*`}(Q
|
|
162
|
+
fC)_uKSq8=Eu|y*>n$+<
|
|
163
|
+
)AGOc%(OM8rnIkVNPI$D
|
|
164
|
+
=<86uk$cZzs#sD-clf2q
|
|
165
|
+
AhVd_!7o>#tYChbXvppf
|
|
166
|
+
RUAdV0Gg-rq7nau55wZ5
|
|
167
|
+
;@RJ;<w^K_nkL2^(z$kC
|
|
168
|
+
T^esP6cTVqb<}!lUc@kH
|
|
169
|
+
6d*OwBw|!Hs2Fc)x4Kd?
|
|
170
|
+
TkCT1#o{cr=I{~g>5;Su
|
|
171
|
+
59k48^H&@Hn@1edAM%=^
|
|
172
|
+
#CyLohLV2j$e`XFFbFH!
|
|
173
|
+
%ly2E;(O-1evI&b(W+$%
|
|
174
|
+
0TO07k+7NW)O@G0c!Pip
|
|
175
|
+
#tnJXzB7_Ft`$omeM^FT
|
|
176
|
+
QF+2~sYuX5L<b6g&W2`~
|
|
177
|
+
7NRey%!oKJ{YsuUSx|35
|
|
178
|
+
tLn+uRi(*GE2IMT5Ptyc
|
|
179
|
+
z8W%LI%%SdJ8vf7P5?-Y
|
|
180
|
+
f9B^~1@{%tS3;&Jz}2MP
|
|
181
|
+
x@Te_8YrOT=bN^+hAN6K
|
|
182
|
+
j;7>&u9oh4`l%>?)SME{
|
|
183
|
+
pfbCA5Xtc=bV@E>i4REc
|
|
184
|
+
y4C)?iRFkz9N3Q-bjpk|
|
|
185
|
+
ZZ3{k;*V5QmD}8Xs7rI7
|
|
186
|
+
{TlVZfD}tV8C+5>KNeGc
|
|
187
|
+
pia-ojA_)fydaeGK$_j{
|
|
188
|
+
abKuWg2^OMBySCK>QEx-
|
|
189
|
+
*q-vo{uL@UGO?xW&uCR|
|
|
190
|
+
4RW}D0a<Ku*92=_-=ba1
|
|
191
|
+
7Un`<&46A``Fu6KL*)1L
|
|
192
|
+
-PMR<R^xDaF6E9492v9v
|
|
193
|
+
f&BYaJjXs{4BvSQns4K7
|
|
194
|
+
!oML8717<{BWLI3l3Qyb
|
|
195
|
+
?M?+^2@VRuFMbI$>@}vo
|
|
196
|
+
HPFdYjNEK1$>(35*GRRB
|
|
197
|
+
uyMGaIk`j>|KfEwKf}PD
|
|
198
|
+
sv9nyNxJyEn2`}nit2e;
|
|
199
|
+
p6L=3)yiU>J<+q$)Fe-4
|
|
200
|
+
u%VaYFZaq`1J>*^W9jz0
|
|
201
|
+
)W;mUj!2q)`sc9+GR1x4
|
|
202
|
+
h&*LExC`Bg$|lvWHFXtB
|
|
203
|
+
-b|;u9@@gr){AmRKc2x9
|
|
204
|
+
Bc<t9&mfs@a-<Dv*UZNz
|
|
205
|
+
pp!KL2UcF|^?VJ1jS|^B
|
|
206
|
+
6*oA+qQNZ_$CCNKHcv{`
|
|
207
|
+
>R1WE(59?Lc~h`)h>}XL
|
|
208
|
+
pC4hJE+}2?O?R$Q?rW`*
|
|
209
|
+
8ddr=f_cl*bal_hQIxVm
|
|
210
|
+
3)_E_qDl1^99a|HfiJ-k
|
|
211
|
+
_;<o`)Y&B~3<hBaz-i?B
|
|
212
|
+
OFFU&iXEhrE$tu(r{On~
|
|
213
|
+
jyz<%wJFDy(4z@>&w*mJ
|
|
214
|
+
8<$EE7HNJ*v{@zp)R?rS
|
|
215
|
+
y96ne{FgXB?FC3>hKTat
|
|
216
|
+
mS!ATU7ci05(j7n<}x<p
|
|
217
|
+
AFx^r#cY$@^;uep{4srg
|
|
218
|
+
;NcXKQo)Cb6xtuc-6D>b
|
|
219
|
+
CyRFdPyuXi1B?z!5$&b2
|
|
220
|
+
$`Dwe@F8+!#wmwXn!EWH
|
|
221
|
+
mk8M>RA@QoZ^&%RC3XKn
|
|
222
|
+
ptvZb)t0{6=GL$SPcUxV
|
|
223
|
+
mka!I{yw_KFKNC(s#O?^
|
|
224
|
+
5EyFo30vW=cpTfo&UmMQ
|
|
225
|
+
u$4r({e>3C6x22gi$g#@
|
|
226
|
+
ci`aILRjj?);u7giM%1;
|
|
227
|
+
Wn^9W02ACUG%2aN6?><_
|
|
228
|
+
BcjwF6%lnNky>(w=^2dD
|
|
229
|
+
qH+2+j{q+Zr)DF^u#H|k
|
|
230
|
+
YfW<+;An<@N??b&dwf^5
|
|
231
|
+
(|RRvxlM>%h2`{R=5c39
|
|
232
|
+
5G)YqMZU#p?p=$<Nh&ho
|
|
233
|
+
sk659jjzQ4j;|`WPWghf
|
|
234
|
+
zQcZdk$}yj`9I>V=TTkF
|
|
235
|
+
f)_YO9t2)<Q>TRQFAsg)
|
|
236
|
+
jkE|u$(eZpl(xxibqK>v
|
|
237
|
+
(Y;v;n)LlLB8u8%AUPf2
|
|
238
|
+
(7$E~)x1mBm0w}q7tILE
|
|
239
|
+
B}#y2Gdn<HO#|}qDKDRK
|
|
240
|
+
4B`Tn@9;ox!UL6Gfex2R
|
|
241
|
+
qm$kug1VeO`p9zeCX3Uh
|
|
242
|
+
qXugE9>rbsTmIFtY2>|g
|
|
243
|
+
25cR>3Cmm=AN|H}uWq<3
|
|
244
|
+
7W-t3wyw;0gw`YJ!BTlj
|
|
245
|
+
t(QDTa*?|+_bbdIcuD%y
|
|
246
|
+
r0+Crdg2!Czm(Equ0_gg
|
|
247
|
+
{=isc-t^C!bvP&|5jR!c
|
|
248
|
+
t?fJ|;=&_2ziiBHq??jz
|
|
249
|
+
|I9=v&O%>=&I{uB*VC`g
|
|
250
|
+
Bn8CMH@Hm#aoRbj2~g|Q
|
|
251
|
+
>5$PGcmSI`7u>$6v@9|!
|
|
252
|
+
cC9!8%$$)Tcb$afDdK28
|
|
253
|
+
p{Oq*{d-#cK;4>?c1hbI
|
|
254
|
+
5igMPpUJ{ehCLcKq*f-R
|
|
255
|
+
(oZG$Ok)XT7w#c*OGTZ~
|
|
256
|
+
usFqqdDITT&X&D|22d^L
|
|
257
|
+
KqT0P>aQc(Ym3mM4*(ss
|
|
258
|
+
bfpkF$h;%c@n9;1RhJ)A
|
|
259
|
+
Y*p420c;}lnP`CWV2b`x
|
|
260
|
+
_7C&=hTm>^jnHVU$v236
|
|
261
|
+
_~<whah<pS9w`Z~ICi3l
|
|
262
|
+
86_bwKlB$~89YgK5}{9f
|
|
263
|
+
UwDSILDz~h2@3ds?T~A?
|
|
264
|
+
>Go<@>bk;M7nBh|jynsU
|
|
265
|
+
PHBq5KjOYx1_OzMUJL26
|
|
266
|
+
lXUVF+X?;}N8RRDT<FN~
|
|
267
|
+
_{)N(snm^u>U#gTTf)rA
|
|
268
|
+
z9wu~unIxC^F)l3V$lL_
|
|
269
|
+
A!o?r%a+}V*_97C&7(;C
|
|
270
|
+
q`t{@g^rL4QDN^8*8)2^
|
|
271
|
+
=RN&DA8Y^7nRfiET*CYG
|
|
272
|
+
Jn5b!@Qz`IA@%DP%2c%;
|
|
273
|
+
Q^W9+Bc?X<R1FR7m51D~
|
|
274
|
+
_~4AP7H;M(934Z>s)9u9
|
|
275
|
+
r{OzBt4!XE)JZ~nLL-zs
|
|
276
|
+
2ErLFL;I5Z#1etmq%Lb5
|
|
277
|
+
`k9%d#e1@_7F3=le%~0^
|
|
278
|
+
b2%2yZ8{O|t#4L{PmtLs
|
|
279
|
+
3qGNB_%n;cwS!}g7c^(r
|
|
280
|
+
O^%L@E9F*y3oC54EI|(a
|
|
281
|
+
t=IRctTBcr@&IzV3Rr}N
|
|
282
|
+
_A)JEGk-l2=UL3TG~2NW
|
|
283
|
+
YjER}-;6mx*$;2INr2S=
|
|
284
|
+
o03yrH~k2!GaJ!MH^>YR
|
|
285
|
+
Ue0ZLbsK2x8xaPlc$MVs
|
|
286
|
+
sXdX;wCPPqE=Xv!=*#eK
|
|
287
|
+
+Is?+%$5%xV(Gnk8md@U
|
|
288
|
+
X+R#}q2y+~+AU})j=pKE
|
|
289
|
+
{rS_+Z!>W?Xd72x0UuV&
|
|
290
|
+
pJWc6SsNvo%x1=6fYsI^
|
|
291
|
+
{)b2^2q@dP$%l8MJG#nd
|
|
292
|
+
f}k3qN<Msc5=-pnf^^Pn
|
|
293
|
+
b;Hi%dg5OA@0q>jpb^MK
|
|
294
|
+
v@IPrP@u;^(~^79a?ut<
|
|
295
|
+
(`=1DYn-bmAOR$HBIIMM
|
|
296
|
+
`{~=y!2*)!^{FReQq7Ez
|
|
297
|
+
`c@6ZB;RXD=G6h{1{4;i
|
|
298
|
+
&bYw2p+n>yqC!gP=fezr
|
|
299
|
+
taUCw6dZPRUCvf82R|>e
|
|
300
|
+
OA{GX=3eblL%+M7u^7qH
|
|
301
|
+
X6(bZ$jYo?e+F$zAI~OO
|
|
302
|
+
Atn_nvDDqnDiY01mD^Lz
|
|
303
|
+
?%saO55dCr0hHRrIUm(I
|
|
304
|
+
k=G6CVZ_0NlG53=(4H#g
|
|
305
|
+
Rja+s&XB8Pgp1((^C?yu
|
|
306
|
+
hdFzdkAW$(Ixf5Gl<aq2
|
|
307
|
+
t?2vPxi0VOI9drYcuK1g
|
|
308
|
+
KJOFQ)^oaeLi<<*5PY08
|
|
309
|
+
1HHqTi}B!?M%-)7J)PXF
|
|
310
|
+
9J!Ds;P6g8doq;P-9arT
|
|
311
|
+
N~oju7>|!)ARwx*Y$Yjv
|
|
312
|
+
e%M=*pDKynh;0IOy`@@s
|
|
313
|
+
H9-_+md<9{vDEtfg4#?1
|
|
314
|
+
J_FL9$J;xvDnpfXc~JP&
|
|
315
|
+
5HqNOTNccO+8k`9wrjt8
|
|
316
|
+
)t)acC52!)$cLJ{?5Tf9
|
|
317
|
+
6G*$~H-l;l7&?*KtF;QR
|
|
318
|
+
mIozHb7_l;3P_@z8WEjz
|
|
319
|
+
{nuwdur9uP@!oEEq{SI!
|
|
320
|
+
Wp)nL6LDMOGS>6+($N{`
|
|
321
|
+
y{AVRaLWu)%Jd;hM-X$H
|
|
322
|
+
M6P?Z%+GptOmI_6`A1(G
|
|
323
|
+
L|4mM{Q}7VGL~>`ZlV?(
|
|
324
|
+
R$4Hk*|S++@B3&KWet#F
|
|
325
|
+
r(fL1BI`NbQbr)uQ9Lj|
|
|
326
|
+
JCun4+5%ZD&Q}@_nHw=Q
|
|
327
|
+
sCQaa{ZVhY!k8n2C@!B%
|
|
328
|
+
;LCOZ0Y699X7VvVdIjf-
|
|
329
|
+
ptyDq*cN@}lXLAzNo$IH
|
|
330
|
+
IlksU+1b=$Q#jDv<(72@
|
|
331
|
+
yK5fp67D!Orm44AH{0xq
|
|
332
|
+
v&r-mnSYscfwG)c|G4Vj
|
|
333
|
+
e)~x%<w*A)b)&)iF}m0)
|
|
334
|
+
j2U@;pq1F}ThYoM8%mU+
|
|
335
|
+
UzH9@kd%OL)%lv9-*-q|
|
|
336
|
+
Q@HJ|S`>|Vo{^tO$ui`}
|
|
337
|
+
m_Y$MTiAr(Te`@fpbv6N
|
|
338
|
+
KlkvtQ%tPst4Y>rtzLo{
|
|
339
|
+
TpndW>WguD;`+b^QHe1c
|
|
340
|
+
$<KCC>2%SkrKDI5ktP0#
|
|
341
|
+
XMoNA7L!Z=#i@QC0_KUu
|
|
342
|
+
kWua2mY&EDe=G2Z$kvZy
|
|
343
|
+
J4-adeyj-rS~D@pXbj*m
|
|
344
|
+
r0)Q2^{)K2$etFPp|EMK
|
|
345
|
+
{5(yB(GNq_@58gv2~tzN
|
|
346
|
+
612~mm{fe@K5eAki9L-6
|
|
347
|
+
TZK(Kf30BjbGJHj8}qq|
|
|
348
|
+
yRrAw`rE$lT0kMsbkX%L
|
|
349
|
+
{m+qP@`#Xb88olG4`F$S
|
|
350
|
+
$1uKsepjD?!KqQ$(oJ(Q
|
|
351
|
+
Xn9Q15_&aYKXV49aei4(
|
|
352
|
+
<*u_o^FVffn6MPWYR6wr
|
|
353
|
+
EcMC!qooUv_cuhcxlQVF
|
|
354
|
+
J)E|GF2*+2X$4`pOKJ(!
|
|
355
|
+
M(AP$nh~~AiZrWqr+N)c
|
|
356
|
+
*`*y#i5KuI<)<PgAhBUK
|
|
357
|
+
+SkKMu#Vz<Ac1G0vi#u9
|
|
358
|
+
cpGW?sFu?{_f*P*Q79+F
|
|
359
|
+
uy<KBrI{AiD+C1v2pTWe
|
|
360
|
+
sQtA$1^v0Z)_5xOqwFT$
|
|
361
|
+
l0E<_nE+XM))pvTT$UDZ
|
|
362
|
+
7c|{CIcp$rD7VmMZ=6cg
|
|
363
|
+
WfbTAj`Bk}one$tB%jS=
|
|
364
|
+
iUwQ78%m%0{O*{ZS|A+}
|
|
365
|
+
tLYV8IV~kWMtWp!lnb*Q
|
|
366
|
+
ak0asjW~mU$9nkQKUTDO
|
|
367
|
+
jia3%i{_Q9>%)vBjo;u#
|
|
368
|
+
*;0xSDy4DmkkYXaR+?AI
|
|
369
|
+
4c$GuCq29L{vTriLtlot
|
|
370
|
+
4hBVR4@s$6pGtH7<o%>r
|
|
371
|
+
bBMtG<$b`((5g<_877G`
|
|
372
|
+
TU}g5xp}Q_-4zV+r=CFU
|
|
373
|
+
tZwK3hiKW<;a)VThu)vQ
|
|
374
|
+
k~d6wZVL4vC{JP1#!Ecs
|
|
375
|
+
1>!yafv6RDZNbh5f(On{
|
|
376
|
+
VTMpFPTVX>k5G2TkQTz>
|
|
377
|
+
M~u(KD9JJ&hnjD5VcCfi
|
|
378
|
+
3*zZ=VHRZB6`z*v#O0qk
|
|
379
|
+
zPjbak4E5E&)pkx3+s7v
|
|
380
|
+
1^rRz3qe{_<Xp)?8hH#s
|
|
381
|
+
xTm^gSW->Cis=fo=)UJQ
|
|
382
|
+
4)JT?gserhN)qxNG6#A_
|
|
383
|
+
=XiuwmQ@X;gUQe?9k4o_
|
|
384
|
+
9ZIyD9#`KKYo5oy;IW+0
|
|
385
|
+
-QCP!I|*njsGtJXwDuE-
|
|
386
|
+
4GaN}ViGy~%2JK}MT~7M
|
|
387
|
+
CVuE{zkn_I$VoQkpby+x
|
|
388
|
+
HRBjk3d9iqF{(ZpTHO3x
|
|
389
|
+
vvc?O9puf4cf0519WU{k
|
|
390
|
+
cQWUn>`SS~uJ=3ld5@?2
|
|
391
|
+
;kW<^?LpyOB2LG*cMaB$
|
|
392
|
+
Pr(Nn!T2VF4NB&S9GU6z
|
|
393
|
+
OIn{r&PNYl+1~<%O~A%x
|
|
394
|
+
e4=}L@rWGm6`wTS|7S;r
|
|
395
|
+
QvJ0&*obI7>85Ulo^Cc#
|
|
396
|
+
v6~*+jN9=sHelcDu*HMt
|
|
397
|
+
?OirQ<ta3LL_mT$sz0tx
|
|
398
|
+
#sdVp9ALjonpls{;n*y;
|
|
399
|
+
&@OixmA3t*bG{(BB(q#_
|
|
400
|
+
Sho&3ZqK%R?wg9!qZ(V7
|
|
401
|
+
WuZcp7$Vnx5`E2q@v(3X
|
|
402
|
+
s_)wqI74s1yN)`+EqEA@
|
|
403
|
+
4!`^A7lE+ByGgMP#RX=4
|
|
404
|
+
6z$@cj7cFQv?&wf{0`YV
|
|
405
|
+
hullG75j!q=zTOS-t7|}
|
|
406
|
+
$En&nz4HG?8YMg1qR@%q
|
|
407
|
+
Ka3_TSQE-g`c$y3oeed@
|
|
408
|
+
^DtIwh~u`1I}?%_YoQ46
|
|
409
|
+
JIu${vrTa>Nc|(;KlqP6
|
|
410
|
+
6LOiwlD!gyfbC2lR8m^r
|
|
411
|
+
|E2@$G;zPiR7YiS1j-?t
|
|
412
|
+
eVk5YoeG|jR{M*)y7`oX
|
|
413
|
+
CMNV82X6<ZjE-~aY>uO_
|
|
414
|
+
Zo^6~tANgvlfcy!mV279
|
|
415
|
+
PuvAN$}9{ff$H?&$1kU=
|
|
416
|
+
6=VhQQOBg1MXV;d8?r)C
|
|
417
|
+
vO4sr-jC6ui(#7Srulkl
|
|
418
|
+
Y~mf8C>RL_%E0|QX3_G)
|
|
419
|
+
51K;71z0x4MySc2fC&`;
|
|
420
|
+
Y>Nmu0Q5HQgQ`C)lK<Y8
|
|
421
|
+
mf^niz-!~3(VozSO3_{=
|
|
422
|
+
X#9>@TLS_<?~>Shwk;im
|
|
423
|
+
Zi($N7{fR+yB6X*-SU4H
|
|
424
|
+
+{fOD#c3ZxfdnhO6DPP4
|
|
425
|
+
ULgXBav>FWBvp0~bb_kF
|
|
426
|
+
B93UL*Ka;9E0xL_G911`
|
|
427
|
+
3$Y{-$ld2`^W}XXX6FF*
|
|
428
|
+
m<!rPNo74=>_EK{bb#!r
|
|
429
|
+
_<_Lbn;koC*K1rhal^`6
|
|
430
|
+
C82lPqlSnTIo1vs-|N$3
|
|
431
|
+
rbUuRE=2+s`f<VyM5XKU
|
|
432
|
+
f$&qI$ErQ!X)oqMt5se)
|
|
433
|
+
z`MjdTNkx5UQL|>)jI4T
|
|
434
|
+
I-+u*gb~ngp-`D0-hSKc
|
|
435
|
+
ZNI+r98l$|SFj!rBG6Fv
|
|
436
|
+
Gg}wTcRyEPM>P7s&*@{M
|
|
437
|
+
?-Ox%9>35#DGi`^1aQY$
|
|
438
|
+
i8A)rSBBK+HX^%tm&JoQ
|
|
439
|
+
pB#nDCwu&RGtKQta0xtT
|
|
440
|
+
0Sf{va5*mem%E-Q@Vk$R
|
|
441
|
+
cUMGXy5X%va3rg6Oa(;m
|
|
442
|
+
fa(^RIvAhzYV)6CK0s|o
|
|
443
|
+
&|*`2<=1M=86?=rE92!H
|
|
444
|
+
TGwJ@Il2dfp;1c==o6~P
|
|
445
|
+
c_q`dWH^3=Dnu%j5MpkQ
|
|
446
|
+
P}}xcO^sz{V(_*Z&wU+}
|
|
447
|
+
)c2l+DM-VD&~j2VLfNQf
|
|
448
|
+
m-bjUq9@pM!A|Po=eJsA
|
|
449
|
+
9&BI{+~0)U%ARm}3ef$z
|
|
450
|
+
_eE*=im}}XY(zhL;)tYi
|
|
451
|
+
RX`pE1stMF6q%+wy`s0k
|
|
452
|
+
diJ&OJrPkDLTgjoxkOjh
|
|
453
|
+
5u1aKW>c*?`QN25OAaTz
|
|
454
|
+
PUCi-v*La=%8=Hz&vmop
|
|
455
|
+
Ep2N+{xoP=eQl^WN;eS{
|
|
456
|
+
27?~2Lj2~jHUXoZLRHif
|
|
457
|
+
^{__*1)xV7x0e}_r`s#-
|
|
458
|
+
Heu0H2H&MIKSS%|B2ARE
|
|
459
|
+
(Oo>4UPu%qt9D7>r*+t%
|
|
460
|
+
kKs!XBkb}qv=hBEWp`io
|
|
461
|
+
Y0q8?0f#|Dz}HR|zJ@k`
|
|
462
|
+
v2nEbMu)?+{XSyp9*`aA
|
|
463
|
+
wUn;&Y3;IY#Ht8F?-x@)
|
|
464
|
+
ft_v2%}6kIKdaF450Rt=
|
|
465
|
+
4<N7X>_rX(l11k>SD@0l
|
|
466
|
+
rgt^+RVIi~0@lbz)AJnL
|
|
467
|
+
1`58}<V<;oBlBq<z{7g*
|
|
468
|
+
8fQCuKm~Ltxaw7KF!yR#
|
|
469
|
+
<zO7uoQ!C+8dNxCX2Uk6
|
|
470
|
+
o;tweJcLW9OQ#`Vm7rMN
|
|
471
|
+
2Qyh@w8r-tdZ)i?J--+f
|
|
472
|
+
OIYa93NFG2@stPgySwz?
|
|
473
|
+
1ja*FX$2?aa>Vk*L70^&
|
|
474
|
+
+Q%Jv5URqUtDwhTM>)h*
|
|
475
|
+
Pv2Dk;UZ<HmoN{uja^|a
|
|
476
|
+
gDkKXZ`w{+Cvl}Bxp$iD
|
|
477
|
+
|By!YPhwrB*HLX(Fi9nS
|
|
478
|
+
nVYfQ-)LwvLK^A`wYoNu
|
|
479
|
+
{v=`)5|i*Hi%5T3k!bXw
|
|
480
|
+
iApMpO2$kdf&g4=M^QV#
|
|
481
|
+
8bm(_*(e@N@$hRx=<Hgy
|
|
482
|
+
??5r-2eIj#q<GG_s5_@#
|
|
483
|
+
U6%u3OY+v}D20TKUVy?q
|
|
484
|
+
kFtp$M;ttznpuuKF;j-4
|
|
485
|
+
APmn}qjIL_QpyMWG!!Rj
|
|
486
|
+
L%$3Kp+jh+7%vUx-<?s7
|
|
487
|
+
GtX9z4A8-z+{3{nQn7&l
|
|
488
|
+
Jfa^EHSKBxy!vt867R?@
|
|
489
|
+
$I^s2Psmlgq38-7Mq(h%
|
|
490
|
+
MG`^GOH&Gshp2|84Z6>l
|
|
491
|
+
UYo(V^?>9Ym|Goe_VpxT
|
|
492
|
+
e6B*Xfzm3ro&yhoQv+@e
|
|
493
|
+
+WReJx=lO}B$kHCurafG
|
|
494
|
+
{)67-af>RZzp*d|gFY8o
|
|
495
|
+
zbh<666~qP`|Y3qZrSpt
|
|
496
|
+
%Bdo%Es|q-pow%qRei^(
|
|
497
|
+
@gwkoQSB*wK|Kgb7aA)&
|
|
498
|
+
=)~NYUt<&SkTV78wLPR|
|
|
499
|
+
wn}XBpR0UzidJxx&nxaH
|
|
500
|
+
D*
|
|
501
|
+
----END PYE FILE----
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import torch
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def finite_difference_jacobian(G, x, p, p2, t, epsilon, auxG, perturbed_p=0):
|
|
5
|
+
"""Finite difference Jacobian."""
|
|
6
|
+
nb, nx = x.shape
|
|
7
|
+
if perturbed_p == 0:
|
|
8
|
+
ny = nx
|
|
9
|
+
elif perturbed_p == 1:
|
|
10
|
+
ny = p.shape[1]
|
|
11
|
+
elif perturbed_p == 2:
|
|
12
|
+
ny = p2.shape[1]
|
|
13
|
+
else:
|
|
14
|
+
print("perturbed_p is not set corretly")
|
|
15
|
+
xE = x.repeat_interleave(ny + 1, dim=0).double()
|
|
16
|
+
pE = p.repeat_interleave(ny + 1, dim=0).double()
|
|
17
|
+
p2E = p2.repeat_interleave(ny + 1, dim=0).double()
|
|
18
|
+
|
|
19
|
+
perturbation = torch.eye(ny).unsqueeze(0).expand(nb, -1, -1) * epsilon
|
|
20
|
+
perturbation = torch.cat([torch.zeros(nb, 1, ny), perturbation], dim=1).to(x)
|
|
21
|
+
|
|
22
|
+
expand_num = ny + 1
|
|
23
|
+
# Expand x and add perturbations
|
|
24
|
+
if perturbed_p == 0:
|
|
25
|
+
xE = xE + perturbation.reshape(nb * (ny + 1), ny)
|
|
26
|
+
elif perturbed_p == 1:
|
|
27
|
+
pE = pE + perturbation.reshape(nb * (ny + 1), ny)
|
|
28
|
+
elif perturbed_p == 2:
|
|
29
|
+
p2E = p2E + perturbation.reshape(nb * (ny + 1), ny)
|
|
30
|
+
else:
|
|
31
|
+
print("perturbed_p is not set corretly")
|
|
32
|
+
|
|
33
|
+
# Compute gg for all perturbed inputs in one run
|
|
34
|
+
ggE = G(xE, pE, p2E, t, [expand_num], auxG).view(nb, ny + 1, nx)
|
|
35
|
+
|
|
36
|
+
# Extract the original and perturbed gg
|
|
37
|
+
gg_original = ggE[:, 0, :]
|
|
38
|
+
gg_perturbed = ggE[:, 1:, :]
|
|
39
|
+
|
|
40
|
+
# Compute finite differences
|
|
41
|
+
dGdx = ((gg_perturbed - gg_original.unsqueeze(1)) / epsilon).permute(0, 2, 1)
|
|
42
|
+
|
|
43
|
+
return dGdx, gg_original
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def finite_difference_jacobian_p(G, x, p, p2, t, epsilon, auxG):
|
|
47
|
+
"""Finite difference Jacobian."""
|
|
48
|
+
nb, np = p.shape
|
|
49
|
+
_, np2 = p2.shape
|
|
50
|
+
_, nx = x.shape
|
|
51
|
+
|
|
52
|
+
xE = torch.cat(
|
|
53
|
+
[x.repeat_interleave(np + 1, dim=0), x.repeat_interleave(np2, dim=0)], dim=0
|
|
54
|
+
).double()
|
|
55
|
+
pE = torch.cat(
|
|
56
|
+
[p.repeat_interleave(np + 1, dim=0), p.repeat_interleave(np2, dim=0)], dim=0
|
|
57
|
+
).double()
|
|
58
|
+
p2E = torch.cat(
|
|
59
|
+
[p2.repeat_interleave(np + 1, dim=0), p2.repeat_interleave(np2, dim=0)], dim=0
|
|
60
|
+
).double()
|
|
61
|
+
|
|
62
|
+
perturbation_p = torch.eye(np).unsqueeze(0).expand(nb, -1, -1) * epsilon
|
|
63
|
+
perturbation_p2 = torch.eye(np2).unsqueeze(0).expand(nb, -1, -1) * epsilon
|
|
64
|
+
|
|
65
|
+
perturbation_p = torch.cat([torch.zeros(nb, 1, np), perturbation_p], dim=1).to(x)
|
|
66
|
+
|
|
67
|
+
perturbation_p2 = perturbation_p2.to(x)
|
|
68
|
+
|
|
69
|
+
pE[: nb * (np + 1), :] = pE[: nb * (np + 1), :] + perturbation_p.reshape(
|
|
70
|
+
nb * (np + 1), np
|
|
71
|
+
)
|
|
72
|
+
p2E[nb * (np + 1) :, :] = p2E[nb * (np + 1) :, :] + perturbation_p2.reshape(
|
|
73
|
+
nb * (np2), np2
|
|
74
|
+
)
|
|
75
|
+
# Expand x and add perturbations
|
|
76
|
+
# xE = x.unsqueeze(1).expand(-1, np + 1, -1).reshape(nb * (np + 1), np) + perturbation.reshape(nb * (np + 1), np)
|
|
77
|
+
|
|
78
|
+
# Compute gg for all perturbed inputs in one run
|
|
79
|
+
ggE = G(xE, pE, p2E, t, [np + 1, np2], auxG)
|
|
80
|
+
ggE_p = ggE[: nb * (np + 1), :].view(nb, np + 1, nx)
|
|
81
|
+
ggE_p2 = ggE[nb * (np + 1) :, :].view(nb, np2, nx)
|
|
82
|
+
|
|
83
|
+
# Extract the original and perturbed gg
|
|
84
|
+
gg_original_p = ggE_p[:, 0, :]
|
|
85
|
+
gg_perturbed_p = ggE_p[:, 1:, :]
|
|
86
|
+
|
|
87
|
+
gg_perturbed_p2 = ggE_p2
|
|
88
|
+
|
|
89
|
+
# Compute finite differences
|
|
90
|
+
dGdp = ((gg_perturbed_p - gg_original_p.unsqueeze(1)) / epsilon).permute(0, 2, 1)
|
|
91
|
+
dGdp2 = ((gg_perturbed_p2 - gg_original_p.unsqueeze(1)) / epsilon).permute(0, 2, 1)
|
|
92
|
+
return dGdp, dGdp2
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import torch
|
|
2
|
+
import torch.nn.functional as F
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def uh_gamma(a, b, lenF=10):
|
|
6
|
+
"""Unit hydrograph [time (same all time steps), batch, var]."""
|
|
7
|
+
m = a.shape
|
|
8
|
+
lenF = min(a.shape[0], lenF)
|
|
9
|
+
w = torch.zeros([lenF, m[1], m[2]])
|
|
10
|
+
aa = (
|
|
11
|
+
F.relu(a[0:lenF, :, :]).view([lenF, m[1], m[2]]) + 0.1
|
|
12
|
+
) # minimum 0.1. First dimension of a is repeat
|
|
13
|
+
theta = F.relu(b[0:lenF, :, :]).view([lenF, m[1], m[2]]) + 0.5 # minimum 0.5
|
|
14
|
+
t = torch.arange(0.5, lenF * 1.0).view([lenF, 1, 1]).repeat([1, m[1], m[2]])
|
|
15
|
+
t = t.to(aa.device)
|
|
16
|
+
denom = (aa.lgamma().exp()) * (theta**aa)
|
|
17
|
+
mid = t ** (aa - 1)
|
|
18
|
+
right = torch.exp(-t / theta)
|
|
19
|
+
w = 1 / denom * mid * right
|
|
20
|
+
w = w / w.sum(0) # scale to 1 for each UH
|
|
21
|
+
|
|
22
|
+
return w
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def uh_conv(x, UH, viewmode=1):
|
|
26
|
+
r"""Unit hydrograph convolution.
|
|
27
|
+
|
|
28
|
+
UH is a vector indicating the unit hydrograph the convolved dimension will
|
|
29
|
+
be the last dimension UH convolution is.
|
|
30
|
+
Q(t)= integral(x(\tao)*UH(t-\tao))d\tao
|
|
31
|
+
conv1d does
|
|
32
|
+
integral(w(\tao)*x(t+\tao))d\tao
|
|
33
|
+
hence we flip the UH
|
|
34
|
+
https://programmer.group/pytorch-learning-conv1d-conv2d-and-conv3d.html
|
|
35
|
+
view.
|
|
36
|
+
|
|
37
|
+
x: [batch, var, time]
|
|
38
|
+
UH:[batch, var, uhLen]
|
|
39
|
+
batch needs to be accommodated by channels and we make use of groups
|
|
40
|
+
https://pytorch.org/docs/stable/generated/torch.nn.Conv1d.html
|
|
41
|
+
https://pytorch.org/docs/stable/nn.functional.html
|
|
42
|
+
"""
|
|
43
|
+
mm = x.shape
|
|
44
|
+
nb = mm[0]
|
|
45
|
+
m = UH.shape[-1]
|
|
46
|
+
padd = m - 1
|
|
47
|
+
if viewmode == 1:
|
|
48
|
+
xx = x.view([1, nb, mm[-1]])
|
|
49
|
+
w = UH.view([nb, 1, m])
|
|
50
|
+
groups = nb
|
|
51
|
+
|
|
52
|
+
y = F.conv1d(
|
|
53
|
+
xx, torch.flip(w, [2]), groups=groups, padding=padd, stride=1, bias=None
|
|
54
|
+
)
|
|
55
|
+
if padd != 0:
|
|
56
|
+
y = y[:, :, 0:-padd]
|
|
57
|
+
return y.view(mm)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def source_flow_calculation(config, flow_out, c_NN, after_routing=True):
|
|
61
|
+
"""Source flow calculation."""
|
|
62
|
+
varC_NN = config['var_c_nn']
|
|
63
|
+
if 'DRAIN_SQKM' in varC_NN:
|
|
64
|
+
area_name = 'DRAIN_SQKM'
|
|
65
|
+
elif 'area_gages2' in varC_NN:
|
|
66
|
+
area_name = 'area_gages2'
|
|
67
|
+
else:
|
|
68
|
+
print("area of basins are not available among attributes dataset")
|
|
69
|
+
area = (
|
|
70
|
+
c_NN[:, varC_NN.index(area_name)]
|
|
71
|
+
.unsqueeze(0)
|
|
72
|
+
.unsqueeze(-1)
|
|
73
|
+
.repeat(flow_out['flow_sim'].shape[0], 1, 1)
|
|
74
|
+
)
|
|
75
|
+
# flow calculation. converting mm/day to m3/sec
|
|
76
|
+
if after_routing:
|
|
77
|
+
srflow = (
|
|
78
|
+
(1000 / 86400) * area * (flow_out['srflow']).repeat(1, 1, config['nmul'])
|
|
79
|
+
) # Q_t - gw - ss
|
|
80
|
+
ssflow = (
|
|
81
|
+
(1000 / 86400) * area * (flow_out['ssflow']).repeat(1, 1, config['nmul'])
|
|
82
|
+
) # ras
|
|
83
|
+
gwflow = (
|
|
84
|
+
(1000 / 86400) * area * (flow_out['gwflow']).repeat(1, 1, config['nmul'])
|
|
85
|
+
)
|
|
86
|
+
else:
|
|
87
|
+
srflow = (
|
|
88
|
+
(1000 / 86400)
|
|
89
|
+
* area
|
|
90
|
+
* (flow_out['srflow_no_rout']).repeat(1, 1, config['nmul'])
|
|
91
|
+
) # Q_t - gw - ss
|
|
92
|
+
ssflow = (
|
|
93
|
+
(1000 / 86400)
|
|
94
|
+
* area
|
|
95
|
+
* (flow_out['ssflow_no_rout']).repeat(1, 1, config['nmul'])
|
|
96
|
+
) # ras
|
|
97
|
+
gwflow = (
|
|
98
|
+
(1000 / 86400)
|
|
99
|
+
* area
|
|
100
|
+
* (flow_out['gwflow_no_rout']).repeat(1, 1, config['nmul'])
|
|
101
|
+
)
|
|
102
|
+
# srflow = torch.clamp(srflow, min=0.0) # to remove the small negative values
|
|
103
|
+
# ssflow = torch.clamp(ssflow, min=0.0)
|
|
104
|
+
# gwflow = torch.clamp(gwflow, min=0.0)
|
|
105
|
+
return srflow, ssflow, gwflow
|