From f0baaf56c24f2f8d65ad12b52bdca7bbc2e84de4 Mon Sep 17 00:00:00 2001
From: Felix Kleinert <f.kleinert@fz-juelich.de>
Date: Thu, 10 Feb 2022 15:01:36 +0100
Subject: [PATCH] extract competitors for sectorial skill scores

---
 mlair/run_modules/post_processing.py | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/mlair/run_modules/post_processing.py b/mlair/run_modules/post_processing.py
index 452e2d6d..4149f9a1 100644
--- a/mlair/run_modules/post_processing.py
+++ b/mlair/run_modules/post_processing.py
@@ -113,17 +113,6 @@ class PostProcessing(RunEnvironment):
         self.make_prediction(self.test_data)
         self.make_prediction(self.train_val_data)
 
-        # load upstream wind sector for test_data
-        try:
-            self.load_upstream_wind_sector(name_of_set="test")
-            self.skill_score_per_sector = self.calculate_error_metrics_based_on_upstream_wind_dir()
-        except Exception as e:
-            logging.info(f"Can not process upsstream wind sectors due to: {e}")
-        if self.skill_score_per_sector is not None:
-            path_sector_skill_scores = os.path.join(self.data_store.get("experiment_path"),
-                                                    f"data/skill_scores_per_sector_test.nc")
-            self.skill_score_per_sector.to_netcdf(path_sector_skill_scores)
-
         # calculate error metrics on test data
         self.calculate_test_score()
 
@@ -150,6 +139,19 @@ class PostProcessing(RunEnvironment):
         self.report_error_metrics({self.forecast_indicator: skill_score_climatological})
         self.report_error_metrics({"skill_score": skill_score_competitive})
 
+        # load upstream wind sector for test_data
+        try:
+            cometitor_names = remove_items(self.model_and_competitor_name_list, self.model_display_name)
+            self.load_upstream_wind_sector(name_of_set="test")
+            self.skill_score_per_sector = self.calculate_error_metrics_based_on_upstream_wind_dir(
+                ref_name=cometitor_names)
+        except Exception as e:
+            logging.info(f"Can not process upsstream wind sectors due to: {e}")
+        if self.skill_score_per_sector is not None:
+            path_sector_skill_scores = os.path.join(self.data_store.get("experiment_path"),
+                                                    f"data/skill_scores_per_sector_test.nc")
+            self.skill_score_per_sector.to_netcdf(path_sector_skill_scores)
+
         # plotting
         self.plot()
 
-- 
GitLab