diff --git a/experiment/eurocode_data/main_eurocode_drawing.py b/experiment/eurocode_data/main_eurocode_drawing.py
index f6c15f6f00eb76c420e9b292e9fa70c9fdc4c1e0..c3db7810f9ac9037fcd7bab3d0f5cdd23e839796 100644
--- a/experiment/eurocode_data/main_eurocode_drawing.py
+++ b/experiment/eurocode_data/main_eurocode_drawing.py
@@ -3,15 +3,14 @@ import os.path as op
 import matplotlib.pyplot as plt
 from collections import OrderedDict
 
-from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
     StudyVisualizer
 from extreme_fit.model.result_from_model_fit.result_from_extremes.eurocode_return_level_uncertainties import \
     ConfidenceIntervalMethodFromExtremes
-from experiment.eurocode_data.eurocode_visualizer import \
+from experiment.paper_past_snow_loads.result_trends_and_return_levels.eurocode_visualizer import \
     plot_massif_name_to_model_name_to_uncertainty_method_to_ordered_dict, get_model_name
 from experiment.eurocode_data.massif_name_to_departement import MASSIF_NAMES_ALPS
-from experiment.eurocode_data.utils import EUROCODE_ALTITUDES, LAST_YEAR_FOR_EUROCODE
+from experiment.eurocode_data.utils import EUROCODE_ALTITUDES
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSwe3Days, CrocusSweTotal
 from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \
     AltitudeHypercubeVisualizer
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 9832ac59370208f1d8a9e03cc0059fff03f46788..0bcf0f0e5f8de0e4a1067da76e4414f91252bf54 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
@@ -3,7 +3,7 @@ from typing import List
 
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
     StudyVisualizer
-from experiment.paper_past_snow_loads.data.crocus_study_comparison_with_eurocode import CrocusDifferenceSnowLoad, \
+from experiment.paper_past_snow_loads.result_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import CrocusDifferenceSnowLoad, \
     CrocusSnowDensityAtMaxofSwe, CrocusDifferenceSnowLoadRescaledAndEurocodeToSeeSynchronization
 from experiment.trend_analysis.abstract_score import MannKendall
 from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
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 2829bf6edda69417827909218ba72c97879879dc..90dc5297f02a84635777438cac458500438565f2 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
@@ -354,22 +354,22 @@ class StudyVisualizer(VisualizationParameters):
         start_year, stop_year = self.study.start_year_and_stop_year
         return list(range(start_year, stop_year))
 
-    def massif_name_to_altitude_and_eurocode_level_uncertainty(self, model_class, last_year_for_the_data, massif_names,
-                                                               ci_method, temporal_covariate) -> Dict[
+    def massif_name_to_altitude_and_eurocode_level_uncertainty(self, model_class, massif_names,
+                                                               ci_method, effective_temporal_covariate) -> Dict[
         str, Tuple[int, EurocodeConfidenceIntervalFromExtremes]]:
         massif_ids_and_names = [(massif_id, massif_name) for massif_id, massif_name in
                                 enumerate(self.study.study_massif_names) if massif_name in massif_names]
         arguments = [
-            [last_year_for_the_data, self.smooth_maxima_x_y(massif_id), model_class, ci_method, temporal_covariate] for
+            [self.smooth_maxima_x_y(massif_id), model_class, ci_method, effective_temporal_covariate] for
             massif_id, _ in massif_ids_and_names]
         if self.multiprocessing:
             with Pool(NB_CORES) as p:
                 res = p.starmap(compute_eurocode_confidence_interval, arguments)
         else:
             res = [compute_eurocode_confidence_interval(*argument) for argument in arguments]
-        res_and_altitude = [(self.study.altitude, r) for r in res]
+        altitudes_and_res = [(self.study.altitude, r) for r in res]
         massif_name_to_eurocode_return_level_uncertainty = OrderedDict(
-            zip([massif_name for _, massif_name in massif_ids_and_names], res_and_altitude))
+            zip([massif_name for _, massif_name in massif_ids_and_names], altitudes_and_res))
         return massif_name_to_eurocode_return_level_uncertainty
 
     # def dep_class_to_eurocode_level_uncertainty(self, model_class, last_year_for_the_data):
diff --git a/experiment/paper_past_snow_loads/method/main_result.py b/experiment/paper_past_snow_loads/method/main_result.py
deleted file mode 100644
index 085564f9a0bec7c42ee46758cf726d2355fc4537..0000000000000000000000000000000000000000
--- a/experiment/paper_past_snow_loads/method/main_result.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
-from experiment.paper_past_snow_loads.method.study_visualizer_for_non_stationary_trends import \
-    StudyVisualizerForNonStationaryTrends
-
-ALTITUDE_TRENDS = [1800]
-
-
-def draw_snow_load_map(altitude):
-    study = CrocusSnowLoadTotal(altitude=altitude)
-    visualizer = StudyVisualizerForNonStationaryTrends(study, multiprocessing=True)
-    visualizer.plot_trends()
-
-if __name__ == '__main__':
-    draw_snow_load_map(altitude=1800)
-
diff --git a/experiment/paper_past_snow_loads/result_return_level_uncertainty/__init__.py b/experiment/paper_past_snow_loads/result_data_comparison_with_eurocode/__init__.py
similarity index 100%
rename from experiment/paper_past_snow_loads/result_return_level_uncertainty/__init__.py
rename to experiment/paper_past_snow_loads/result_data_comparison_with_eurocode/__init__.py
diff --git a/experiment/paper_past_snow_loads/data/crocus_study_comparison_with_eurocode.py b/experiment/paper_past_snow_loads/result_data_comparison_with_eurocode/crocus_study_comparison_with_eurocode.py
similarity index 100%
rename from experiment/paper_past_snow_loads/data/crocus_study_comparison_with_eurocode.py
rename to experiment/paper_past_snow_loads/result_data_comparison_with_eurocode/crocus_study_comparison_with_eurocode.py
diff --git a/experiment/paper_past_snow_loads/data/main_comparison_with_eurocode.py b/experiment/paper_past_snow_loads/result_data_comparison_with_eurocode/main_comparison_with_eurocode.py
similarity index 93%
rename from experiment/paper_past_snow_loads/data/main_comparison_with_eurocode.py
rename to experiment/paper_past_snow_loads/result_data_comparison_with_eurocode/main_comparison_with_eurocode.py
index 7cfc18fc9c518081dcfac2d8068390cec7fc6180..f694cc755cd7a8e8a163f3f5fd286a7eb184164e 100644
--- a/experiment/paper_past_snow_loads/data/main_comparison_with_eurocode.py
+++ b/experiment/paper_past_snow_loads/result_data_comparison_with_eurocode/main_comparison_with_eurocode.py
@@ -4,7 +4,7 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizat
     StudyVisualizer
 import matplotlib.pyplot as plt
 
-from experiment.paper_past_snow_loads.data.crocus_study_comparison_with_eurocode import CrocusDifferenceSnowLoad, \
+from experiment.paper_past_snow_loads.result_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import CrocusDifferenceSnowLoad, \
     CrocusSnowDensityAtMaxofSwe, CrocusDifferenceSnowLoadRescaledAndEurocodeToSeeSynchronization
 
 
diff --git a/experiment/paper_past_snow_loads/result_snow_load_trends/__init__.py b/experiment/paper_past_snow_loads/result_mcmc_check_for_return_levels/__init__.py
similarity index 100%
rename from experiment/paper_past_snow_loads/result_snow_load_trends/__init__.py
rename to experiment/paper_past_snow_loads/result_mcmc_check_for_return_levels/__init__.py
diff --git a/experiment/paper_past_snow_loads/result_return_level_uncertainty/main_bayesian_mcmc.py b/experiment/paper_past_snow_loads/result_mcmc_check_for_return_levels/main_bayesian_mcmc.py
similarity index 100%
rename from experiment/paper_past_snow_loads/result_return_level_uncertainty/main_bayesian_mcmc.py
rename to experiment/paper_past_snow_loads/result_mcmc_check_for_return_levels/main_bayesian_mcmc.py
diff --git a/experiment/paper_past_snow_loads/result_snow_load_trends/main_mle_diagnosis.py b/experiment/paper_past_snow_loads/result_mle_check_for_trends/__init__.py
similarity index 100%
rename from experiment/paper_past_snow_loads/result_snow_load_trends/main_mle_diagnosis.py
rename to experiment/paper_past_snow_loads/result_mle_check_for_trends/__init__.py
diff --git a/experiment/paper_past_snow_loads/result_mle_check_for_trends/main_mle_diagnosis.py b/experiment/paper_past_snow_loads/result_mle_check_for_trends/main_mle_diagnosis.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/experiment/paper_past_snow_loads/result_trends_and_return_levels/__init__.py b/experiment/paper_past_snow_loads/result_trends_and_return_levels/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/experiment/eurocode_data/eurocode_visualizer.py b/experiment/paper_past_snow_loads/result_trends_and_return_levels/eurocode_visualizer.py
similarity index 53%
rename from experiment/eurocode_data/eurocode_visualizer.py
rename to experiment/paper_past_snow_loads/result_trends_and_return_levels/eurocode_visualizer.py
index dcf9bec186ea9dcdd7539bdb9f9d76943b9e7171..df17fadcff4eef4ed4aa51dac930e6962fb5ae29 100644
--- a/experiment/eurocode_data/eurocode_visualizer.py
+++ b/experiment/paper_past_snow_loads/result_trends_and_return_levels/eurocode_visualizer.py
@@ -12,7 +12,7 @@ from root_utils import get_display_name_from_object_type
 
 def get_label_name(model_name, ci_method_name: str):
     is_non_stationary = model_name == 'NonStationary'
-    model_symbol = '{\mu_1, \sigma_1}' if is_non_stationary else '0'
+    model_symbol = 'N' if is_non_stationary else '0'
     parameter = ', 2017' if is_non_stationary else ''
     model_name = ' $ \widehat{z_p}(\\boldsymbol{\\theta_{\mathcal{M}_'
     model_name += model_symbol
@@ -25,14 +25,56 @@ def get_label_name(model_name, ci_method_name: str):
 def get_model_name(model_class):
     return get_display_name_from_object_type(model_class).split('Stationary')[0] + 'Stationary'
 
+def massif_name_to_ordered_return_level_uncertainties(altitude_to_visualizer, massif_names,
+                                                      uncertainty_methods, temporal_covariate,
+                                                      non_stationary_model):
+    massif_name_to_ordered_eurocode_level_uncertainty = {
+        massif_name: {ci_method: [] for ci_method in uncertainty_methods} for massif_name in massif_names}
+    for altitude, visualizer in altitude_to_visualizer.items():
+        print('Processing altitude = {} '.format(altitude))
+        for ci_method in uncertainty_methods:
+            d = visualizer.massif_name_to_altitude_and_eurocode_level_uncertainty_for_minimized_aic_model_class(
+                massif_names, ci_method,
+                temporal_covariate, non_stationary_model)
+            # Append the altitude one by one
+            for massif_name, return_level_uncertainty in d.items():
+                print(massif_name, return_level_uncertainty[0], return_level_uncertainty[1].confidence_interval,
+                      return_level_uncertainty[1].mean_estimate)
+                massif_name_to_ordered_eurocode_level_uncertainty[massif_name][ci_method].append(
+                    return_level_uncertainty)
+    return massif_name_to_ordered_eurocode_level_uncertainty
 
-def plot_massif_name_to_model_name_to_uncertainty_method_to_ordered_dict(d, nb_massif_names, nb_model_names):
+
+def plot_massif_name_to_model_name_to_uncertainty_method_to_ordered_dict(altitude_to_visualizer,
+                                                                         massif_names,
+                                                                         non_stationary_models_for_uncertainty,
+                                                                         uncertainty_methods):
     """
     Rows correspond to massif names
     Columns correspond to stationary/non stationary model name for a given date
-    Uncertainty method correpsond to the different plot on the graph
+    Uncertainty result_trends_and_return_levels correpsond to the different plot on the graph
     :return:
     """
+    # Compute the dictionary of interest
+    # Plot uncertainties
+    model_name_to_massif_name_to_ordered_return_level = {}
+    for non_stationary_model in non_stationary_models_for_uncertainty:
+        d = massif_name_to_ordered_return_level_uncertainties(altitude_to_visualizer, massif_names,
+                                                              uncertainty_methods,
+                                                              temporal_covariate=2017,
+                                                              non_stationary_model=non_stationary_model)
+        model_name_to_massif_name_to_ordered_return_level[non_stationary_model] = d
+
+    # Transform the dictionary into the desired format
+    d = {}
+    for massif_name in massif_names:
+        d2 = {model_name: model_name_to_massif_name_to_ordered_return_level[model_name][massif_name] for model_name
+              in
+              model_name_to_massif_name_to_ordered_return_level.keys()}
+        d[massif_name] = d2
+
+    nb_massif_names = len(massif_names)
+    nb_model_names = len(non_stationary_models_for_uncertainty)
     axes = create_adjusted_axes(nb_massif_names, nb_model_names)
     if nb_massif_names == 1:
         axes = [axes]
@@ -40,6 +82,13 @@ def plot_massif_name_to_model_name_to_uncertainty_method_to_ordered_dict(d, nb_m
         plot_model_name_to_uncertainty_method_to_ordered_dict(model_name_to_uncertainty_level,
                                                               massif_name, ax)
 
+    # Save plot
+    visualizer = list(altitude_to_visualizer.values())[0]
+    massif_names_str = '_'.join(massif_names)
+    model_names_str = 'NonStationarity=' + '_'.join([str(e) for e in non_stationary_models_for_uncertainty])
+    visualizer.plot_name = model_names_str + '_' + massif_names_str
+    visualizer.show_or_save_to_file(no_title=True)
+
     # plt.suptitle('50-year return levels of extreme snow loads in France for several confiance interval methods.')
 
 def plot_model_name_to_uncertainty_method_to_ordered_dict(d, massif_name, axes):
@@ -55,7 +104,7 @@ def plot_label_to_ordered_return_level_uncertainties(ax, massif_name, model_name
                                                      Dict[str, List[
                                                          EurocodeConfidenceIntervalFromExtremes]]):
     """ Generic function that might be used by many other more global functions"""
-    colors = ['tab:blue', 'tab:orange', 'tab:purple', 'tab:olive']
+    colors = ['tab:green', 'tab:olive']
     alpha = 0.2
     # Display the EUROCODE return level
     eurocode_region = massif_name_to_eurocode_region[massif_name]()
@@ -68,8 +117,7 @@ def plot_label_to_ordered_return_level_uncertainties(ax, massif_name, model_name
         # Plot eurocode standards only for the first loop
         if j == 0:
             eurocode_region.plot_eurocode_snow_load_on_ground_characteristic_value_variable_action(ax, altitudes=altitudes)
-        conversion_factor = 9.8 / 1000
-        mean = [r.mean_estimate * conversion_factor for r in ordered_return_level_uncertaines]
+        mean = [r.mean_estimate for r in ordered_return_level_uncertaines]
         # Filter and keep only non nan values
         not_nan_index = [not np.isnan(m) for m in mean]
         mean = list(np.array(mean)[not_nan_index])
@@ -78,20 +126,21 @@ def plot_label_to_ordered_return_level_uncertainties(ax, massif_name, model_name
 
         ci_method_name = str(label).split('.')[1].replace('_', ' ')
         ax.plot(altitudes, mean, linestyle='--', marker='o', color=color, label=get_label_name(model_name, ci_method_name))
-        lower_bound = [r.confidence_interval[0] * conversion_factor for r in ordered_return_level_uncertaines]
-        upper_bound = [r.confidence_interval[1] * conversion_factor for r in ordered_return_level_uncertaines]
+        lower_bound = [r.confidence_interval[0] for r in ordered_return_level_uncertaines]
+        upper_bound = [r.confidence_interval[1] for r in ordered_return_level_uncertaines]
         ax.fill_between(altitudes, lower_bound, upper_bound, color=color, alpha=alpha)
     ax.legend(loc=2)
     ax.set_ylim([0.0, 16])
     massif_name_str = massif_name.replace('_', ' ')
     eurocode_region_str = get_display_name_from_object_type(type(eurocode_region))
-    if 'Non' in model_name:
+    is_non_stationary_model = model_name if isinstance(model_name, bool) else 'Non' in model_name
+    if is_non_stationary_model:
         model_name = 'non-stationary'
     else:
         model_name = 'stationary'
     title = '{} ({} Eurocodes area) with a {} model'.format(massif_name_str, eurocode_region_str, model_name)
     ax.set_title(title)
-    ax.set_ylabel('50-year return level (kN $m^-2$)')
+    ax.set_ylabel('50-year return level of SL (kN $m^-2$)')
     ax.set_xlabel('Altitude (m)')
     ax.grid()
 
diff --git a/experiment/paper_past_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py b/experiment/paper_past_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
new file mode 100644
index 0000000000000000000000000000000000000000..98e7beb713fc46000d1c84de5bd064ba40098e65
--- /dev/null
+++ b/experiment/paper_past_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
@@ -0,0 +1,51 @@
+from collections import OrderedDict
+import os.path as op
+
+import matplotlib as mpl
+import matplotlib.pyplot as plt
+
+from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
+    StudyVisualizer
+from experiment.paper_past_snow_loads.result_trends_and_return_levels.eurocode_visualizer import \
+    plot_massif_name_to_model_name_to_uncertainty_method_to_ordered_dict
+from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
+from experiment.paper_past_snow_loads.result_trends_and_return_levels.study_visualizer_for_non_stationary_trends import \
+    StudyVisualizerForNonStationaryTrends
+from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
+    ConfidenceIntervalMethodFromExtremes
+from root_utils import VERSION_TIME
+
+mpl.rcParams['text.usetex'] = True
+mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
+
+
+def draw_snow_load_map(altitude):
+    visualizer = StudyVisualizerForNonStationaryTrends(CrocusSnowLoadTotal(altitude=altitude), multiprocessing=True)
+    visualizer.plot_trends()
+
+
+def main_results():
+    altitudes = [[1500, 1800]][0]
+    uncertainty_methods = [ConfidenceIntervalMethodFromExtremes.my_bayes,
+                           ConfidenceIntervalMethodFromExtremes.ci_mle][1:]
+    massif_names = ['Chartreuse']
+    non_stationary_models_for_uncertainty = [False, True][:1]
+    # Load altitude to visualizer
+    altitude_to_visualizer = OrderedDict()
+    for altitude in altitudes:
+        altitude_to_visualizer[altitude] = StudyVisualizerForNonStationaryTrends(
+            study=CrocusSnowLoadTotal(altitude=altitude), multiprocessing=True, save_to_file=True)
+    # Plot trends
+    max_abs_tdrl = max([visualizer.max_abs_tdrl for visualizer in altitude_to_visualizer.values()])
+    for visualizer in altitude_to_visualizer.values():
+        visualizer.plot_trends(max_abs_tdrl)
+    # Plot graph
+    plot_massif_name_to_model_name_to_uncertainty_method_to_ordered_dict(altitude_to_visualizer,
+                                                                         massif_names,
+                                                                         non_stationary_models_for_uncertainty,
+                                                                         uncertainty_methods)
+
+
+if __name__ == '__main__':
+    # draw_snow_load_map(altitude=1800)
+    main_results()
diff --git a/experiment/paper_past_snow_loads/method/study_visualizer_for_non_stationary_trends.py b/experiment/paper_past_snow_loads/result_trends_and_return_levels/study_visualizer_for_non_stationary_trends.py
similarity index 62%
rename from experiment/paper_past_snow_loads/method/study_visualizer_for_non_stationary_trends.py
rename to experiment/paper_past_snow_loads/result_trends_and_return_levels/study_visualizer_for_non_stationary_trends.py
index 5905023795e3e18fc885239698eede30af43b5d3..429ef9948930617424fbb280489974ca1026c934 100644
--- a/experiment/paper_past_snow_loads/method/study_visualizer_for_non_stationary_trends.py
+++ b/experiment/paper_past_snow_loads/result_trends_and_return_levels/study_visualizer_for_non_stationary_trends.py
@@ -1,4 +1,7 @@
-from typing import Dict
+from collections import OrderedDict
+import matplotlib.pyplot as plt
+from multiprocessing.pool import Pool
+from typing import Dict, Tuple
 
 import numpy as np
 from cached_property import cached_property
@@ -11,6 +14,10 @@ from experiment.trend_analysis.univariate_test.abstract_gev_trend_test import Ab
 from experiment.trend_analysis.univariate_test.gev_trend_test_one_parameter import GevScaleTrendTest, \
     GevLocationTrendTest
 from experiment.trend_analysis.univariate_test.gev_trend_test_two_parameters import GevLocationAndScaleTrendTest
+from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel
+from extreme_fit.model.result_from_model_fit.result_from_extremes.eurocode_return_level_uncertainties import \
+    compute_eurocode_confidence_interval, EurocodeConfidenceIntervalFromExtremes
+from root_utils import NB_CORES
 
 
 class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
@@ -63,13 +70,23 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
 
     # Part 1 - Trends
 
-    def plot_trends(self):
-        v = max(abs(min(self.massif_name_to_tdrl_value.values())), max(self.massif_name_to_tdrl_value.values()))
-        vmin, vmax = -v, v
-        self.study.visualize_study(massif_name_to_value=self.massif_name_to_tdrl_value, vmin=vmin, vmax=vmax,
+    @property
+    def max_abs_tdrl(self):
+        return max(abs(min(self.massif_name_to_tdrl_value.values())), max(self.massif_name_to_tdrl_value.values()))
+
+    def plot_trends(self, max_abs_tdrl=None):
+        if max_abs_tdrl is None:
+            max_abs_tdrl = self.max_abs_tdrl
+        assert max_abs_tdrl > 0
+        self.study.visualize_study(massif_name_to_value=self.massif_name_to_tdrl_value,
+                                   vmin=-max_abs_tdrl, vmax=max_abs_tdrl,
                                    replace_blue_by_white=False, axis_off=True, show_label=False,
                                    add_colorbar=True,
-                                   massif_name_to_marker_style=self.massif_name_to_marker_style)
+                                   massif_name_to_marker_style=self.massif_name_to_marker_style,
+                                   show=self.show)
+        self.plot_name = 'tdlr_trends'
+        self.show_or_save_to_file(add_classic_title=False, tight_layout=False, no_title=True)
+        plt.close()
 
     @cached_property
     def massif_name_to_tdrl_value(self):
@@ -88,10 +105,29 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
 
     # Part 1 - Uncertainty return level plot
 
-    @property
-    def massif_name_to_minimized_aic_model_class(self):
-        return {m: t.unconstrained_model_class for m, t in
-                self.massif_name_to_minimized_aic_non_stationary_trend_test.items()}
+    def massif_name_to_model_class(self, massif_name, non_stationary_model):
+        if not non_stationary_model:
+            return StationaryTemporalModel
+        else:
+            return self.massif_name_to_minimized_aic_non_stationary_trend_test[massif_name].unconstrained_model_class
 
     def massif_name_to_uncertainty(self):
         pass
+
+    def massif_name_to_altitude_and_eurocode_level_uncertainty_for_minimized_aic_model_class(self, massif_names,
+                                                                                             ci_method,
+                                                                                             effective_temporal_covariate,
+                                                                                             non_stationary_model) \
+            -> Dict[str, Tuple[int, EurocodeConfidenceIntervalFromExtremes]]:
+        arguments = [
+            [self.massif_name_to_non_null_years_and_maxima[m],
+             self.massif_name_to_model_class(m, non_stationary_model),
+             ci_method, effective_temporal_covariate] for m in massif_names]
+        if self.multiprocessing:
+            with Pool(NB_CORES) as p:
+                res = p.starmap(compute_eurocode_confidence_interval, arguments)
+        else:
+            res = [compute_eurocode_confidence_interval(*argument) for argument in arguments]
+        altitudes_and_res = [(self.study.altitude, r) for r in res]
+        massif_name_to_eurocode_return_level_uncertainty = OrderedDict(zip(massif_names, altitudes_and_res))
+        return massif_name_to_eurocode_return_level_uncertainty
diff --git a/extreme_fit/model/result_from_model_fit/result_from_extremes/eurocode_return_level_uncertainties.py b/extreme_fit/model/result_from_model_fit/result_from_extremes/eurocode_return_level_uncertainties.py
index 5868612141c44c6c7fe5426698db1104cdc3ff42..99599dcad12e0d6a85111a6f40a6344069cd2452 100644
--- a/extreme_fit/model/result_from_model_fit/result_from_extremes/eurocode_return_level_uncertainties.py
+++ b/extreme_fit/model/result_from_model_fit/result_from_extremes/eurocode_return_level_uncertainties.py
@@ -11,10 +11,8 @@ from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_int
     ConfidenceIntervalMethodFromExtremes
 
 
-def compute_eurocode_confidence_interval(last_year_for_the_data, smooth_maxima_x_y, model_class, ci_method, temporal_covariate):
+def compute_eurocode_confidence_interval(smooth_maxima_x_y, model_class, ci_method, temporal_covariate):
     years, smooth_maxima = smooth_maxima_x_y
-    idx = years.index(last_year_for_the_data) + 1
-    years, smooth_maxima = years[:idx], smooth_maxima[:idx]
     return EurocodeConfidenceIntervalFromExtremes.from_maxima_years_model_class(smooth_maxima, years, model_class, temporal_covariate, ci_method)