irmse

HydroErr.HydroErr.irmse(simulated_array, observed_array, replace_nan=None, replace_inf=None, remove_neg=False, remove_zero=False)

Compute the inertial root mean square error (IRMSE) between the simulated and observed data.

../_images/IRMSE.png

Range: 0 ≤ IRMSE < inf, lower is better.

Notes: This metric is the RMSE devided by by the standard deviation of the gradient of the observed timeseries data. This metric is meant to be help understand the ability of the model to predict changes in observation.

Parameters:
  • simulated_array (one dimensional ndarray) – An array of simulated data from the time series.
  • observed_array (one dimensional ndarray) – An array of observed data from the time series.
  • replace_nan (float, optional) – If given, indicates which value to replace NaN values with in the two arrays. If None, when a NaN value is found at the i-th position in the observed OR simulated array, the i-th value of the observed and simulated array are removed before the computation.
  • replace_inf (float, optional) – If given, indicates which value to replace Inf values with in the two arrays. If None, when an inf value is found at the i-th position in the observed OR simulated array, the i-th value of the observed and simulated array are removed before the computation.
  • remove_neg (boolean, optional) – If True, when a negative value is found at the i-th position in the observed OR simulated array, the i-th value of the observed AND simulated array are removed before the computation.
  • remove_zero (boolean, optional) – If true, when a zero value is found at the i-th position in the observed OR simulated array, the i-th value of the observed AND simulated array are removed before the computation.
Returns:

The inertial root mean square error.

Return type:

float

Examples

>>> import HydroErr as he
>>> import numpy as np
>>> sim = np.array([5, 7, 9, 2, 4.5, 6.7])
>>> obs = np.array([4.7, 6, 10, 2.5, 4, 7])
>>> he.irmse(sim, obs)
0.14572738134831856

References

  • Daga, M., Deo, M.C., 2009. Alternative data-driven methods to estimate wind from waves by inverse modeling. Natural Hazards 49(2) 293-310.