From 51052c8fc69da0de2efd19fc04a9ceb1fcaf747b Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Mon, 10 Jun 2019 15:50:31 +0200
Subject: [PATCH] [HYPERCUBE] add df_hypercube_trend_nllh as attribute to the
 hypercube

---
 .../abstract_hypercube_visualizer.py            | 17 ++++++++++++-----
 .../study_visualization/study_visualizer.py     |  6 +++---
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
index d0f2920b..72c4479e 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
@@ -62,15 +62,22 @@ class AbstractHypercubeVisualizer(object):
                                                           self.nb_data_for_fast_mode)
                 for study_visualizer in self.tuple_to_study_visualizer.values()]
 
+    def _df_hypercube_trend_meta(self, idx) -> pd.DataFrame:
+        df_spatio_temporal_trend_strength = [e[idx] for e in self.df_trends_spatio_temporal]
+        return pd.concat(df_spatio_temporal_trend_strength, keys=list(self.tuple_to_study_visualizer.keys()), axis=0)
+
+
     @cached_property
     def df_hypercube_trend_type(self) -> pd.DataFrame:
-        df_spatio_temporal_trend_types = [e[0] for e in self.df_trends_spatio_temporal]
-        return pd.concat(df_spatio_temporal_trend_types, keys=list(self.tuple_to_study_visualizer.keys()), axis=0)
-
+        return self._df_hypercube_trend_meta(idx=0
+                                             )
     @cached_property
     def df_hypercube_trend_strength(self) -> pd.DataFrame:
-        df_spatio_temporal_trend_strength = [e[1] for e in self.df_trends_spatio_temporal]
-        return pd.concat(df_spatio_temporal_trend_strength, keys=list(self.tuple_to_study_visualizer.keys()), axis=0)
+        return self._df_hypercube_trend_meta(idx=1)
+
+    @cached_property
+    def df_hypercube_trend_nllh(self) -> pd.DataFrame:
+        return self._df_hypercube_trend_meta(idx=2)
 
     # Some properties
 
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
index 390a389c..0311cdb3 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
@@ -444,11 +444,11 @@ class StudyVisualizer(VisualizationParameters):
             nb_massif_for_change_point_test)
         for massif_name, gev_change_point_test_results in massif_name_to_gev_change_point_test_results.items():
             trend_test_res, best_idxs = gev_change_point_test_results
-            trend_test_res = [(a, b) if i in best_idxs else (np.nan, np.nan)
-                              for i, (a, b, *_) in enumerate(trend_test_res)]
+            trend_test_res = [(a, b, c) if i in best_idxs else (np.nan, np.nan, c)
+                              for i, (a, b, c, *_) in enumerate(trend_test_res)]
             massif_name_to_trend_res[massif_name] = list(zip(*trend_test_res))
         nb_res = len(list(massif_name_to_trend_res.values())[0])
-        assert nb_res == 2
+        assert nb_res == 3
         all_massif_name_to_res = [{k: v[idx_res] for k, v in massif_name_to_trend_res.items()}
                                   for idx_res in range(nb_res)]
         return [pd.DataFrame(massif_name_to_res, index=self.starting_years_for_change_point_test).transpose()
-- 
GitLab