Quality indicator methods for comparing radar rain predictions against gauge observations.

Each method quantifies prediction quality differently. All methods can be normalized to a 0-100 scale (0=worst, 100=best) via SpeedMatrix.NormalizeQualityIndicator.

Default method: KLING_GUPTA

Enumeration Members

DELTA: "delta"

Average absolute difference between rain prediction and gauge observation.

Formula: mean(|rain - gauge|)

  • Range: 0 to +Infinity
  • Perfect score: 0
  • Normalized: inverted using reference max (default 10 mm/h)
RATIO: "ratio"

Average of min/max ratio between rain and gauge values.

Formula: mean(min(rain, gauge) / max(rain, gauge))

  • Range: 0 to 1
  • Perfect score: 1
  • Handles both over- and under-prediction symmetrically
  • Skips points where both values are zero
SUCCESS_RATE: "success_rate"

Percentage of points where the min/max ratio meets a quality threshold.

Formula: count(ratio >= threshold) / total * 100

  • Range: 0 to 100
  • Perfect score: 100
  • Default threshold: 0.8 (configurable via successThreshold)
  • Both-zero points count as successful (correct "no rain" prediction)
RMSE: "rmse"

Root Mean Square Error — penalizes large errors more than small ones.

Formula: sqrt(mean((rain - gauge)^2))

  • Range: 0 to +Infinity
  • Perfect score: 0
  • More sensitive to outliers than DELTA
  • Normalized: inverted using reference max (default 10 mm/h)
MAPE: "mape"

Mean Absolute Percentage Error — error relative to observed value.

Formula: mean(|rain - gauge| / gauge) * 100

  • Range: 0 to +Infinity (commonly 0-100+)
  • Perfect score: 0
  • Skips zero gauge values to avoid division by zero
  • Normalized: inverted using reference max (default 100%)
NASH_SUTCLIFFE: "nash_sutcliffe"

Nash-Sutcliffe Efficiency — hydrology standard comparing prediction to mean observation.

Formula: 1 - sum((rain - gauge)^2) / sum((gauge - meanGauge)^2)

  • Range: -Infinity to 1
  • Perfect score: 1
  • 0 means model is as good as predicting the mean
  • Negative values mean model is worse than predicting the mean

See

KLING_GUPTA for an improved alternative that decomposes performance

KLING_GUPTA: "kling_gupta"

Kling-Gupta Efficiency — decomposes performance into correlation, variability bias, and volume bias.

Formula: 1 - sqrt((r - 1)^2 + (alpha - 1)^2 + (beta - 1)^2)

Where:

  • r = Pearson correlation coefficient (timing/pattern accuracy)

  • alpha = stdDev(rain) / stdDev(gauge) (variability ratio)

  • beta = mean(rain) / mean(gauge) (volume bias ratio)

  • Range: -Infinity to 1

  • Perfect score: 1 (r=1, alpha=1, beta=1)

  • Stricter than NSE on systematic bias

  • KGE > -0.41 is considered better than mean prediction

This is the default quality indicator method.

See

Gupta et al. (2009) "Decomposition of the mean squared error and NSE performance criteria"