hydroeval_release_scenarios <- local({ baseline_observed <- c(10, 20, 30, 40) positive_reference_simulated <- c(12, 18, 33, 39) list( positive_reference = list( observed = baseline_observed, simulated = positive_reference_simulated ), perfect_fit = list( observed = baseline_observed, simulated = baseline_observed ), near_perfect = list( observed = baseline_observed, simulated = c(10, 19, 31, 40) ), additive_overestimation = list( observed = baseline_observed, simulated = baseline_observed + 5 ), additive_underestimation = list( observed = baseline_observed, simulated = baseline_observed - 5 ), multiplicative_scaling_bias = list( observed = baseline_observed, simulated = baseline_observed * 1.25 ), variance_distortion_same_mean = list( observed = baseline_observed, simulated = c(5, 25, 25, 45) ), high_correlation_imperfect_fit = list( observed = c(10, 20, 30, 40, 50), simulated = c(13, 21, 29, 42, 54) ), ranking_degradation = list( observed = c(10, 20, 30, 40, 50), simulated = c(11, 19, 31, 45, 42) ), outlier_contamination = list( observed = baseline_observed, simulated = c(10, 20, 30, 70) ), low_flow_zero_heavy = list( observed = c(0, 0.5, 1, 2), simulated = c(0, 0.25, 1.5, 1.5) ), negative_values = list( observed = c(-3, -1, 2, 4), simulated = c(-2, -2, 1, 5) ), missing_omit = list( observed = c(10, NA, 30, 40), simulated = c(12, 99, 33, 39), kept_observed = c(10, 30, 40), kept_simulated = c(12, 33, 39) ), insufficient_after_omit = list( observed = c(10, NA, NA), simulated = c(12, NA, 11) ), constant_observed = list( observed = c(5, 5, 5, 5), simulated = c(4, 5, 6, 7) ), constant_simulated = list( observed = baseline_observed, simulated = c(25, 25, 25, 25) ), zero_observed_sum = list( observed = c(-4, -1, 1, 4), simulated = c(-3, -2, 2, 3) ), zero_absolute_observed_sum = list( observed = c(0, 0, 0, 0), simulated = c(0, 1, -1, 0) ), zero_observed_mean = list( observed = c(-2, -1, 1, 2), simulated = c(-1, 0, 2, 3) ), zero_simulated_mean = list( observed = c(1, 2, 3, 4), simulated = c(-2, -1, 1, 2) ), zero_simulated_mean_kge_2009_valid = list( observed = c(1, 2, 3), simulated = c(-1, 0, 1) ), single_point = list( observed = 10, simulated = 12 ), large_magnitude = list( observed = baseline_observed * 1e7, simulated = positive_reference_simulated * 1e7 ), very_small_magnitude = list( observed = baseline_observed * 1e-9, simulated = positive_reference_simulated * 1e-9 ), calibration_validation_test = list( calibration = list( obs = baseline_observed, sim = c(10, 19, 31, 40) ), validation = list( obs = baseline_observed, sim = c(12, 18, 33, 39) ), test = list( obs = baseline_observed, sim = c(15, 15, 35, 45) ) ), baseline_calibrated_stressed = list( baseline = list( obs = baseline_observed, sim = c(14, 18, 31, 37) ), calibrated = list( obs = baseline_observed, sim = c(10, 19, 31, 40) ), stressed = list( obs = baseline_observed, sim = c(18, 15, 38, 48) ) ) ) }) hydroeval_release_scenario <- function(name) { scenario <- hydroeval_release_scenarios[[name]] if (is.null(scenario)) { stop(sprintf("Unknown release-hardening scenario `%s`.", name), call. = FALSE) } scenario } hydroeval_release_dataset_collection <- function(name) { hydroeval_release_scenario(name) }