diff --git a/experiment/meteo_france_data/scm_models_data/abstract_study.py b/experiment/meteo_france_data/scm_models_data/abstract_study.py
index 96c348f2c10c40d765f908e907df8ffb4a3b279c..0a18ad1fe19d8aa86e6f76c62313076facffb8d8 100644
--- a/experiment/meteo_france_data/scm_models_data/abstract_study.py
+++ b/experiment/meteo_france_data/scm_models_data/abstract_study.py
@@ -359,7 +359,7 @@ class AbstractStudy(object):
             if a > b:
                 zs_all_list.append(zs_list)
                 zs_list = []
-        return dict(zip(self.all_massif_names, zs_all_list))
+        return OrderedDict(zip(self.all_massif_names, zs_all_list))
 
     @cached_property
     def altitude_to_massif_names(self) -> Dict[int, List[str]]:
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
index e626ad6fcfbbc88f25e3274285f583bcd268c740..c709209ff37f8e3c8a8a14547727129d3af3e03a 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
@@ -117,6 +117,17 @@ def all_normal_vizu():
         study_visualizer = StudyVisualizer(study, save_to_file=True, temporal_non_stationarity=True)
         study_visualizer.visualize_all_mean_and_max_graphs()
 
+def case_study():
+    for study in study_iterator(study_class=SafranSnowfall, only_first_one=False, altitudes=[2100], nb_consecutive_days=3):
+        study_visualizer = StudyVisualizer(study, save_to_file=False, temporal_non_stationarity=False)
+        study_visualizer.visualize_all_mean_and_max_graphs()
+        massif_id = study.study_massif_names.index('Chablais')
+        print(massif_id)
+        x, y = study_visualizer.smooth_maxima_x_y(massif_id)
+        print(x)
+        print(y)
+
+
 def scores_vizu():
     save_to_file = False
     only_first_one = True
@@ -192,7 +203,8 @@ def maxima_analysis():
 
 def main_run():
     # normal_visualization(temporal_non_stationarity=True)
-    trend_analysis()
+    # trend_analysis()
+    case_study()
     # all_scores_vizu()
     # maxima_analysis()
     # all_normal_vizu()
diff --git a/experiment/meteo_france_data/stations_data/main_station_comparison.py b/experiment/meteo_france_data/stations_data/main_station_comparison.py
index d64a21bd29e5ff1db7b14e7c2b303b81b11ce8bf..7fd8950cbfa394be695ff6feb7d66a2e7a47d2ef 100644
--- a/experiment/meteo_france_data/stations_data/main_station_comparison.py
+++ b/experiment/meteo_france_data/stations_data/main_station_comparison.py
@@ -27,9 +27,25 @@ def example():
     # vizu._visualize_ax_main(vizu.plot_gev, vizu.comparisons[0], 'Beaufortain', show=True)
     vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Beaufortain', show=True)
 
+def wrong_example():
+    vizu = ComparisonsVisualization(altitudes=[1200], normalize_observations=False)
+    # vizu._visualize_ax_main(vizu.plot_gev, vizu.comparisons[0], 'Beaufortain', show=True)
+    vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Chablais', show=True)
+
+def wrong_example2():
+    vizu = ComparisonsVisualization(altitudes=[1200], normalize_observations=False)
+    vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Vanoise', show=True)
+
+    vizu = ComparisonsVisualization(altitudes=[1800], normalize_observations=False)
+    vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Haute-Maurienne', show=True)
+
+    vizu = ComparisonsVisualization(altitudes=[600], normalize_observations=False)
+    vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Mercantour', show=True)
+
 if __name__ == '__main__':
     # visualize_fast_comparison()
-    visualize_all_stations()
+    # visualize_all_stations()
+    wrong_example2()
     # visualize_non_nan_station()
     # example()
 
diff --git a/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/comparisons_visualization.py b/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/comparisons_visualization.py
index dc0239be14d8e2eea0412302b01286bd7bad4c92..9d62fe0f12ea93992ae0d235fa3ff4ccb1b04742 100644
--- a/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/comparisons_visualization.py
+++ b/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/comparisons_visualization.py
@@ -60,10 +60,15 @@ class ComparisonsVisualization(VisualizationParameters):
         axes = axes.flatten()
 
         ax_idx = 0
+        massif_and_altitude_and_metric = []
         for massif in self.massifs:
             for c in [c for c in self.comparisons if massif in c.intersection_massif_names]:
-                self._visualize_ax_main(plot_function, c, massif, axes[ax_idx])
+                metric = self._visualize_ax_main(plot_function, c, massif, axes[ax_idx])
+                massif_and_altitude_and_metric.append((massif, c.altitude, metric))
                 ax_idx += 1
+        metrics = [t[-1] for t in massif_and_altitude_and_metric]
+        print('max', [t for t in massif_and_altitude_and_metric if t[-1] == max(metrics)])
+        print('min', [t for t in massif_and_altitude_and_metric if t[-1] == min(metrics)])
         plt.suptitle(title)
         plt.show()
 
@@ -79,23 +84,35 @@ class ComparisonsVisualization(VisualizationParameters):
         df = df.loc[ind]  # type: pd.DataFrame
         colors_station = ['r', 'tab:orange', 'tab:purple', 'm', 'k']
         # Compute a distance column
-        ind_location = df.index.str.contains(REANALYSE_STR)
+        ind_reanalysis_data = df.index.str.contains(REANALYSE_STR)
         df[DISTANCE_COLUMN_NAME] = 0
         for coordinate_name in [AbstractCoordinates.COORDINATE_X, AbstractCoordinates.COORDINATE_Y]:
-            center = df.loc[ind_location, coordinate_name].values[0]
+            center = df.loc[ind_reanalysis_data, coordinate_name].values[0]
             df[DISTANCE_COLUMN_NAME] += (center - df[coordinate_name]).pow(2)
         df[DISTANCE_COLUMN_NAME] = df[DISTANCE_COLUMN_NAME].pow(0.5)
         df[DISTANCE_COLUMN_NAME] = (df[DISTANCE_COLUMN_NAME] / 1000).round(1)
+        # Compute
+        maxima_center, _ = self.get_maxima_and_year(df.loc[ind_reanalysis_data].iloc[0])
 
+        metrics = []
         for color, (i, s) in zip(colors_station, df.iterrows()):
             label = i
             label += ' ({}m)'.format(s[ALTITUDE_COLUMN_NAME])
             label += ' ({}km)'.format(s[DISTANCE_COLUMN_NAME])
-            s_values = s.iloc[3:-1].to_dict()
-            years, maxima = list(s_values.keys()), list(s_values.values())
+            maxima, years = self.get_maxima_and_year(s)
+            # Compute the distance between maxima and maxima_center
+            # In percent the number of times the observations is stricty higher than the reanalysis
+            mask = ~np.isnan(maxima_center) & ~np.isnan(maxima)
+
+            metric = np.round(np.mean(np.abs(maxima[mask] - maxima_center[mask])), 0)
+            label += 'Mean absolute diff {}mm'.format(metric)
 
-            plot_color = color if REANALYSE_STR not in label else 'g'
 
+            # metric = np.mean(np.sign(maxima[mask] - maxima_center[mask]) == 1)
+            # metric = np.round(metric * 100, 0)
+            # label += '{}% strictly above'.format(metric)
+            metrics.append(metric)
+            plot_color = color if REANALYSE_STR not in label else 'g'
             plot_function(ax, ax2, years, maxima, label, plot_color)
             ax.set_title('{} at {}m'.format(massif, comparison.altitude))
             ax.legend(prop={'size': 5})
@@ -103,6 +120,14 @@ class ComparisonsVisualization(VisualizationParameters):
         if show:
             plt.show()
 
+        return max(metrics)
+
+    def get_maxima_and_year(self, s):
+        assert isinstance(s, pd.Series)
+        s_values = s.iloc[3:-1].to_dict()
+        years, maxima = np.array(list(s_values.keys())), np.array(list(s_values.values()))
+        return maxima, years
+
     def visualize_maximum(self):
         return self._visualize_main(self.plot_maxima, 'Recent trend of Annual maxima of snowfall')
 
@@ -124,6 +149,8 @@ class ComparisonsVisualization(VisualizationParameters):
             ax2.plot(starting_years[::step], [t[3] for t in trend_test_res][::step], color=plot_color, marker='o')
             ax2.plot(starting_years[::step], [t[4] for t in trend_test_res][::step], color=plot_color, marker='x')
         # Plot maxima
+        ax.grid()
+        # print("here")
         ax.plot(years, maxima, label=label, color=plot_color)
 
     def visualize_gev(self):