diff --git a/mlair/helpers/statistics.py b/mlair/helpers/statistics.py index 6e25a368a7347adc76bb00331420d159af56b053..d5499294227cae1f49797caafe354bef183a94b3 100644 --- a/mlair/helpers/statistics.py +++ b/mlair/helpers/statistics.py @@ -283,7 +283,7 @@ class SkillScores: combination_strings = [f"{first}-{second}" for (first, second) in combinations] return combinations, combination_strings - def skill_scores(self, window_lead_time: int) -> pd.DataFrame: + def skill_scores(self, window_lead_time: int, ahead_dim="ahead") -> pd.DataFrame: """ Calculate skill scores for all combinations of model names. @@ -291,7 +291,7 @@ class SkillScores: :return: skill score for each comparison and forecast step """ - ahead_names = list(range(1, window_lead_time + 1)) + ahead_names = list(self.external_data[ahead_dim].data) combinations, combination_strings = self.get_model_name_combinations() skill_score = pd.DataFrame(index=combination_strings) for iahead in ahead_names: @@ -304,7 +304,7 @@ class SkillScores: return skill_score def climatological_skill_scores(self, internal_data: Data, window_lead_time: int, - forecast_name: str) -> xr.DataArray: + forecast_name: str, ahead_dim="ahead") -> xr.DataArray: """ Calculate climatological skill scores according to Murphy (1988). @@ -317,7 +317,7 @@ class SkillScores: :return: all CASES as well as all terms """ - ahead_names = list(range(1, window_lead_time + 1)) + ahead_names = list(self.external_data[ahead_dim].data) all_terms = ['AI', 'AII', 'AIII', 'AIV', 'BI', 'BII', 'BIV', 'CI', 'CIV', 'CASE I', 'CASE II', 'CASE III', 'CASE IV']