@@ -48,6 +48,42 @@ def _MAE(mod, obs):
48
48
"""
49
49
return np .mean (np .abs (obs - mod ))
50
50
51
+ def _STANDARD_ERROR (mod , obs ):
52
+ """
53
+ Calculate Standard Error as defined in TSPROC manual
54
+ https://pubs.usgs.gov/tm/tm7c7/pdf/TM7_C7_112712.pdf
55
+
56
+ Args:
57
+ obs: numpy array of observed values
58
+ mod: numpy array of modeled values
59
+ """
60
+ return np .sqrt (np .sum ((mod - obs )** 2 )/ (len (obs )- 1 ))
61
+
62
+ def _RELATIVE_STANDARD_ERROR (mod , obs ):
63
+ """
64
+ Calculate Relative Standard Error as defined in TSPROC manual
65
+ https://pubs.usgs.gov/tm/tm7c7/pdf/TM7_C7_112712.pdf
66
+
67
+ Args:
68
+ obs: numpy array of observed values
69
+ mod: numpy array of modeled values
70
+ """
71
+ return _STANDARD_ERROR (mod , obs ) / np .sqrt (np .sum ((obs - np .nanmean (obs ))** 2 )/ (len (obs )- 1 ))
72
+
73
+
74
+
75
+
76
+
77
+ def _VOLUMETRIC_EFFICIENCY (mod , obs ):
78
+ """
79
+ Calculate Volumetric Efficiency as defined in TSPROC manual
80
+ https://pubs.usgs.gov/tm/tm7c7/pdf/TM7_C7_112712.pdf
81
+
82
+ Args:
83
+ obs: numpy array of observed values
84
+ mod: numpy array of modeled values
85
+ """
86
+ return 1 - ((np .sum (np .abs (mod - obs )))/ (np .sum (obs )))
51
87
52
88
def _MSE (mod , obs ):
53
89
"""
@@ -147,6 +183,27 @@ def _PBIAS(mod, obs):
147
183
"""
148
184
return 100 * ((np .sum (mod - obs )) / (np .sum (obs )))
149
185
186
+ def _BIAS (mod , obs ):
187
+ """
188
+ Calculate Bias as defined in TSPROC manual
189
+ https://pubs.usgs.gov/tm/tm7c7/pdf/TM7_C7_112712.pdf
190
+
191
+ Args:
192
+ obs: numpy array of observed values
193
+ mod: numpy array of modeled values
194
+ """
195
+ return ((np .sum (mod - obs )) / (np .sum (obs )))/ len (obs )
196
+
197
+ def _RELATIVE_BIAS (mod , obs ):
198
+ """
199
+ Calculate Relative Bias as defined in TSPROC manual
200
+ https://pubs.usgs.gov/tm/tm7c7/pdf/TM7_C7_112712.pdf
201
+
202
+ Args:
203
+ obs: numpy array of observed values
204
+ mod: numpy array of modeled values
205
+ """
206
+ return _BIAS (mod , obs ) / np .nanmean (obs )
150
207
151
208
def _KGE (mod , obs ):
152
209
"""
@@ -174,6 +231,8 @@ def _KGE(mod, obs):
174
231
# available metrics to calculate
175
232
ALLMETRICS = {
176
233
"pbias" : _PBIAS ,
234
+ "bias" : _BIAS ,
235
+ "relative_bias" : _RELATIVE_BIAS ,
177
236
"rmse" : _RMSE ,
178
237
"mse" : _MSE ,
179
238
"nse" : _NSE ,
@@ -184,6 +243,10 @@ def _KGE(mod, obs):
184
243
"nrmse_mean" : _NRMSE_MEAN ,
185
244
"nrmse_iq" : _NRMSE_IQ ,
186
245
"nrmse_maxmin" : _NRMSE_MAXMIN ,
246
+ "standard_error" : _STANDARD_ERROR ,
247
+ "volumetric_efficiency" : _VOLUMETRIC_EFFICIENCY ,
248
+ "relative_standard_error" : _RELATIVE_STANDARD_ERROR
249
+
187
250
}
188
251
189
252
0 commit comments