From 3745d411c0112564076a40d2d204be23a9b85e61 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Wed, 18 Mar 2020 23:13:48 +0100
Subject: [PATCH] [refactor] remove trend analysis folder. create
 extreme_trend_test folder

---
 .../visualization/main_study_visualizer.py    |  2 +-
 extreme_trend_test/abstract_gev_trend_test.py |  6 ++-
 .../visualizers}/__init__.py                  |  0
 ...dy_visualizer_for_non_stationary_trends.py | 25 +++++------
 .../study_visualizer_for_shape_repartition.py |  2 +-
 .../visualizers/utils.py                      |  3 +-
 .../__init__.py                               |  0
 .../gelman_convergence_test.py                |  0
 .../main_bayesian_mcmc.py                     |  0
 .../main_gelman_convergence_test.py           |  0
 .../contrasting_snow_loads/main_result.py     | 15 +++----
 .../plot_contrasting_trend_curves.py          |  4 +-
 .../qqplot => checks}/__init__.py             |  0
 .../mixed_distribution_impact.py              |  2 +-
 .../shape => checks/qqplot}/__init__.py       |  0
 .../qqplot/main_qqplot_for_big_shapes.py      |  2 +-
 .../qqplot/plot_qqplot.py                     |  2 +-
 .../uncertainty_interval_size.py              |  4 +-
 .../without_maximum/__init__.py               |  0
 .../main_fit_without_maximum.py               |  0
 ...study_visualizer_for_fit_witout_maximum.py |  2 +-
 .../{data => section_data}/__init__.py        |  0
 .../main_eurocode_plot.py                     |  0
 .../main_example_swe_total_plot.py            |  2 +-
 .../__init__.py                               |  0
 .../crocus_study_comparison_with_eurocode.py  |  0
 .../main_comparison_with_eurocode_examples.py |  4 +-
 .../main_comparison_with_eurocode_global.py   |  4 +-
 ...in_spatio_temporal_density_wrt_altitude.py |  4 +-
 .../__init__.py                               |  0
 .../main_result_trends_and_return_levels.py   | 45 +++----------------
 .../main_shape_repartition.py                 |  5 +--
 .../plot_diagnosis_risk.py                    |  2 +-
 .../plot_selection_curves.py                  |  8 ++--
 .../plot_trend_curves.py                      |  4 +-
 .../plot_uncertainty_curves.py                |  6 +--
 .../plot_uncertainty_histogram.py             |  6 +--
 .../{paper_utils.py => utils.py}              |  8 ----
 test/test_experiment/test_trend_analysis.py   |  2 +-
 39 files changed, 58 insertions(+), 111 deletions(-)
 rename {projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels => extreme_trend_test/visualizers}/__init__.py (100%)
 rename {projects/exceeding_snow_loads => extreme_trend_test/visualizers}/study_visualizer_for_non_stationary_trends.py (96%)
 rename {projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape => extreme_trend_test/visualizers}/study_visualizer_for_shape_repartition.py (92%)
 rename projects/exceeding_snow_loads/paper_main_utils.py => extreme_trend_test/visualizers/utils.py (93%)
 rename projects/{exceeding_snow_loads/check_mle_convergence_for_trends => contrasting_snow_loads/check_mcmc_convergence_for_return_levels}/__init__.py (100%)
 rename projects/{exceeding_snow_loads => contrasting_snow_loads}/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py (100%)
 rename projects/{exceeding_snow_loads => contrasting_snow_loads}/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py (100%)
 rename projects/{exceeding_snow_loads => contrasting_snow_loads}/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py (100%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends/qqplot => checks}/__init__.py (100%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends => checks}/mixed_distribution/mixed_distribution_impact.py (98%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends/shape => checks/qqplot}/__init__.py (100%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends => checks}/qqplot/main_qqplot_for_big_shapes.py (97%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends => checks}/qqplot/plot_qqplot.py (99%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends => checks}/uncertainty_interval_size.py (84%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends => checks}/without_maximum/__init__.py (100%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends => checks}/without_maximum/main_fit_without_maximum.py (100%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends => checks}/without_maximum/study_visualizer_for_fit_witout_maximum.py (95%)
 rename projects/exceeding_snow_loads/{data => section_data}/__init__.py (100%)
 rename projects/exceeding_snow_loads/{data => section_data}/main_eurocode_plot.py (100%)
 rename projects/exceeding_snow_loads/{data => section_data}/main_example_swe_total_plot.py (97%)
 rename projects/exceeding_snow_loads/{discussion_data_comparison_with_eurocode => section_discussion}/__init__.py (100%)
 rename projects/exceeding_snow_loads/{discussion_data_comparison_with_eurocode => section_discussion}/crocus_study_comparison_with_eurocode.py (100%)
 rename projects/exceeding_snow_loads/{discussion_data_comparison_with_eurocode => section_discussion}/main_comparison_with_eurocode_examples.py (94%)
 rename projects/exceeding_snow_loads/{discussion_data_comparison_with_eurocode => section_discussion}/main_comparison_with_eurocode_global.py (94%)
 rename projects/exceeding_snow_loads/{discussion_data_comparison_with_eurocode => section_discussion}/main_spatio_temporal_density_wrt_altitude.py (93%)
 rename projects/exceeding_snow_loads/{result_trends_and_return_levels => section_results}/__init__.py (100%)
 rename projects/exceeding_snow_loads/{result_trends_and_return_levels => section_results}/main_result_trends_and_return_levels.py (55%)
 rename projects/exceeding_snow_loads/{check_mle_convergence_for_trends/shape => section_results}/main_shape_repartition.py (87%)
 rename projects/exceeding_snow_loads/{result_trends_and_return_levels => section_results}/plot_diagnosis_risk.py (92%)
 rename projects/exceeding_snow_loads/{result_trends_and_return_levels => section_results}/plot_selection_curves.py (94%)
 rename projects/exceeding_snow_loads/{result_trends_and_return_levels => section_results}/plot_trend_curves.py (96%)
 rename projects/exceeding_snow_loads/{result_trends_and_return_levels => section_results}/plot_uncertainty_curves.py (98%)
 rename projects/exceeding_snow_loads/{result_trends_and_return_levels => section_results}/plot_uncertainty_histogram.py (93%)
 rename projects/exceeding_snow_loads/{paper_utils.py => utils.py} (88%)

diff --git a/experiment/meteo_france_data/scm_models_data/visualization/main_study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/main_study_visualizer.py
index 079ceeec..0ad748c0 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/main_study_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/main_study_visualizer.py
@@ -12,7 +12,7 @@ from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSno
     SafranTemperature, SafranPrecipitation
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualizer import \
     StudyVisualizer
-from projects.exceeding_snow_loads.discussion_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import \
+from projects.exceeding_snow_loads.section_discussion.crocus_study_comparison_with_eurocode import \
     CrocusDifferenceSnowLoad, \
     CrocusSnowDensityAtMaxofSwe, CrocusDifferenceSnowLoadRescaledAndEurocodeToSeeSynchronization, \
     CrocusSnowDepthDifference, CrocusSnowDepthAtMaxofSwe
diff --git a/extreme_trend_test/abstract_gev_trend_test.py b/extreme_trend_test/abstract_gev_trend_test.py
index e77c563e..d1a6fe6d 100644
--- a/extreme_trend_test/abstract_gev_trend_test.py
+++ b/extreme_trend_test/abstract_gev_trend_test.py
@@ -28,13 +28,15 @@ class AbstractGevTrendTest(object):
                  constrained_model_class=StationaryTemporalModel,
                  quantile_level=EUROCODE_QUANTILE,
                  fit_method=TemporalMarginFitMethod.extremes_fevd_mle):
-        super().__init__(years, maxima, starting_year)
+        self.years = years
+        self.maxima = maxima
+        self.starting_year = starting_year
         self.unconstrained_model_class = unconstrained_model_class
         self.constrained_model_class = constrained_model_class
         self.quantile_level = quantile_level
         self.fit_method = fit_method
         # Load observations, coordinates and datasets
-        self.coordinates, self.dataset = load_temporal_coordinates_and_dataset(maxima, years)
+        self.coordinates, self.dataset = load_temporal_coordinates_and_dataset(self.maxima, self.years)
         # By default crashed boolean is False
         self.crashed = False
         try:
diff --git a/projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py b/extreme_trend_test/visualizers/__init__.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py
rename to extreme_trend_test/visualizers/__init__.py
diff --git a/projects/exceeding_snow_loads/study_visualizer_for_non_stationary_trends.py b/extreme_trend_test/visualizers/study_visualizer_for_non_stationary_trends.py
similarity index 96%
rename from projects/exceeding_snow_loads/study_visualizer_for_non_stationary_trends.py
rename to extreme_trend_test/visualizers/study_visualizer_for_non_stationary_trends.py
index 8b2109f4..bbcc4d5d 100644
--- a/projects/exceeding_snow_loads/study_visualizer_for_non_stationary_trends.py
+++ b/extreme_trend_test/visualizers/study_visualizer_for_non_stationary_trends.py
@@ -1,4 +1,5 @@
 from collections import OrderedDict, Counter
+from enum import Enum
 from multiprocessing.pool import Pool
 from typing import Dict, List, Tuple
 
@@ -15,9 +16,7 @@ from experiment.meteo_france_data.scm_models_data.abstract_extended_study import
 from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualizer import \
     StudyVisualizer
-from projects.exceeding_snow_loads.check_mcmc_convergence_for_return_levels.gelman_convergence_test import \
-    compute_gelman_convergence_value
-from projects.exceeding_snow_loads.paper_utils import ModelSubsetForUncertainty, NON_STATIONARY_TREND_TEST_PAPER
+from projects.exceeding_snow_loads.utils import NON_STATIONARY_TREND_TEST_PAPER
 from extreme_trend_test.abstract_gev_trend_test import AbstractGevTrendTest
 from extreme_trend_test.trend_test_one_parameter.gumbel_trend_test_one_parameter import \
     GumbelLocationTrendTest, GevStationaryVersusGumbel, GumbelScaleTrendTest, GumbelVersusGumbel
@@ -34,6 +33,14 @@ from extreme_fit.model.result_from_model_fit.result_from_extremes.eurocode_retur
 from root_utils import NB_CORES
 
 
+class ModelSubsetForUncertainty(Enum):
+    stationary_gumbel = 0
+    stationary_gumbel_and_gev = 1
+    non_stationary_gumbel = 2
+    non_stationary_gumbel_and_gev = 3
+    stationary_gev = 4
+
+
 class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
 
     def __init__(self, study: AbstractStudy, show=True, save_to_file=False, only_one_graph=False, only_first_row=False,
@@ -368,17 +375,6 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
     def model_name_to_uncertainty_method_to_ratio_above_eurocode(self):
         assert self.uncertainty_massif_names == self.study.study_massif_names
 
-    # Some checks with Gelman convergence diagnosis
-
-    def massif_name_to_gelman_convergence_value(self, mcmc_iterations, model_class, nb_chains):
-        arguments = [(self.massif_name_to_years_and_maxima_for_model_fitting[m], mcmc_iterations, model_class, nb_chains)
-                     for m in self.uncertainty_massif_names]
-        if self.multiprocessing:
-            with Pool(NB_CORES) as p:
-                res = p.starmap(compute_gelman_convergence_value, arguments)
-        else:
-            res = [compute_gelman_convergence_value(*argument) for argument in arguments]
-        return dict(zip(self.uncertainty_massif_names, res))
 
     # Some values for the histogram
 
@@ -505,3 +501,4 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
             psnow_before, psnow_after = [np.count_nonzero(s) / len(s) for s in [maxima_before, maxima_after]]
             return 100 * (psnow_after - psnow_before) / psnow_before
         return {m: compute_relative_change_in_psnow(self.massif_name_to_years_and_maxima[m][1]) for m in self.massifs_names_with_year_without_snow}
+
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape/study_visualizer_for_shape_repartition.py b/extreme_trend_test/visualizers/study_visualizer_for_shape_repartition.py
similarity index 92%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape/study_visualizer_for_shape_repartition.py
rename to extreme_trend_test/visualizers/study_visualizer_for_shape_repartition.py
index c4f0ace3..db6e3f3a 100644
--- a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape/study_visualizer_for_shape_repartition.py
+++ b/extreme_trend_test/visualizers/study_visualizer_for_shape_repartition.py
@@ -3,7 +3,7 @@ from cached_property import cached_property
 
 from experiment.meteo_france_data.scm_models_data.visualization.create_shifted_cmap import get_shifted_map
 from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/exceeding_snow_loads/paper_main_utils.py b/extreme_trend_test/visualizers/utils.py
similarity index 93%
rename from projects/exceeding_snow_loads/paper_main_utils.py
rename to extreme_trend_test/visualizers/utils.py
index 3bdc0c39..575c1424 100644
--- a/projects/exceeding_snow_loads/paper_main_utils.py
+++ b/extreme_trend_test/visualizers/utils.py
@@ -2,10 +2,9 @@ from collections import OrderedDict
 
 from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \
     TemporalMarginFitMethod
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 
-
 def load_altitude_to_visualizer(altitudes, massif_names, model_subsets_for_uncertainty, study_class,
                                 uncertainty_methods,
                                 study_visualizer_class=StudyVisualizerForNonStationaryTrends,
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/__init__.py b/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/__init__.py
rename to projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py
diff --git a/projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py b/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py
rename to projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py
diff --git a/projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py b/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py
rename to projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py
diff --git a/projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py b/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py
rename to projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py
diff --git a/projects/contrasting_snow_loads/main_result.py b/projects/contrasting_snow_loads/main_result.py
index 61a9a827..1a810958 100644
--- a/projects/contrasting_snow_loads/main_result.py
+++ b/projects/contrasting_snow_loads/main_result.py
@@ -1,6 +1,9 @@
 from multiprocessing.pool import Pool
 
 import matplotlib as mpl
+
+from extreme_trend_test.visualizers.utils import load_altitude_to_visualizer
+
 mpl.use('Agg')
 mpl.rcParams['text.usetex'] = True
 mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
@@ -11,21 +14,13 @@ from experiment.meteo_france_data.scm_models_data.safran.safran import SafranPre
     SafranSnowfall5Days, SafranSnowfall3Days, SafranSnowfall7Days, SafranRainfall1Day, SafranRainfall3Days, \
     SafranRainfall5Days, SafranRainfall7Days
 
-from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal, CrocusSnowLoad3Days, \
+from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoad3Days, \
     CrocusSnowLoad5Days, CrocusSnowLoad7Days, CrocusSnowLoad1Day
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
 from projects.contrasting_snow_loads.plot_contrasting_trend_curves import plot_contrasting_trend_curves
-from projects.exceeding_snow_loads.paper_main_utils import load_altitude_to_visualizer
-from projects.exceeding_snow_loads.paper_utils import paper_study_classes, paper_altitudes
-from projects.exceeding_snow_loads.result_trends_and_return_levels.main_result_trends_and_return_levels import \
+from projects.exceeding_snow_loads.section_results.main_result_trends_and_return_levels import \
     compute_minimized_aic
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_selection_curves import plot_selection_curves
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_trend_curves import plot_trend_curves, \
-    plot_trend_map
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_uncertainty_curves import plot_uncertainty_massifs
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_uncertainty_histogram import \
-    plot_uncertainty_histogram
 from root_utils import NB_CORES
 
 
diff --git a/projects/contrasting_snow_loads/plot_contrasting_trend_curves.py b/projects/contrasting_snow_loads/plot_contrasting_trend_curves.py
index 09790199..5e06210f 100644
--- a/projects/contrasting_snow_loads/plot_contrasting_trend_curves.py
+++ b/projects/contrasting_snow_loads/plot_contrasting_trend_curves.py
@@ -3,8 +3,8 @@ import matplotlib.pyplot as plt
 
 from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy
 from experiment.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes
-from projects.exceeding_snow_loads.paper_utils import dpi_paper1_figure
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/__init__.py b/projects/exceeding_snow_loads/checks/__init__.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/__init__.py
rename to projects/exceeding_snow_loads/checks/__init__.py
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/mixed_distribution/mixed_distribution_impact.py b/projects/exceeding_snow_loads/checks/mixed_distribution/mixed_distribution_impact.py
similarity index 98%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/mixed_distribution/mixed_distribution_impact.py
rename to projects/exceeding_snow_loads/checks/mixed_distribution/mixed_distribution_impact.py
index 3f4927b6..485e72aa 100644
--- a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/mixed_distribution/mixed_distribution_impact.py
+++ b/projects/exceeding_snow_loads/checks/mixed_distribution/mixed_distribution_impact.py
@@ -1,7 +1,7 @@
 import pandas as pd
 
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import StudyVisualizerForNonStationaryTrends
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import StudyVisualizerForNonStationaryTrends
 
 
 def mix_dsitrbution_impact():
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape/__init__.py b/projects/exceeding_snow_loads/checks/qqplot/__init__.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape/__init__.py
rename to projects/exceeding_snow_loads/checks/qqplot/__init__.py
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/main_qqplot_for_big_shapes.py b/projects/exceeding_snow_loads/checks/qqplot/main_qqplot_for_big_shapes.py
similarity index 97%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/main_qqplot_for_big_shapes.py
rename to projects/exceeding_snow_loads/checks/qqplot/main_qqplot_for_big_shapes.py
index de2dbae6..0c9c44e9 100644
--- a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/main_qqplot_for_big_shapes.py
+++ b/projects/exceeding_snow_loads/checks/qqplot/main_qqplot_for_big_shapes.py
@@ -3,7 +3,7 @@ import matplotlib.pyplot as plt
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
 from experiment.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
     ALL_ALTITUDES_WITHOUT_NAN
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/plot_qqplot.py b/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
similarity index 99%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/plot_qqplot.py
rename to projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
index 8dc0206f..6c215564 100644
--- a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/plot_qqplot.py
+++ b/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
@@ -12,7 +12,7 @@ from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear
 from extreme_fit.model.result_from_model_fit.result_from_extremes.abstract_extract_eurocode_return_level import \
     AbstractExtractEurocodeReturnLevel
 from projects.exceeding_snow_loads.data.main_example_swe_total_plot import tuples_for_examples_paper1
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 from extreme_fit.distribution.gev.gev_params import GevParams
 
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/uncertainty_interval_size.py b/projects/exceeding_snow_loads/checks/uncertainty_interval_size.py
similarity index 84%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/uncertainty_interval_size.py
rename to projects/exceeding_snow_loads/checks/uncertainty_interval_size.py
index 5d73a753..2be62ddc 100644
--- a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/uncertainty_interval_size.py
+++ b/projects/exceeding_snow_loads/checks/uncertainty_interval_size.py
@@ -3,8 +3,8 @@ from typing import Dict
 import pandas as pd
 
 from experiment.eurocode_data.utils import EUROCODE_ALTITUDES
-from projects.exceeding_snow_loads.paper_utils import ModelSubsetForUncertainty
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import StudyVisualizerForNonStationaryTrends
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
+    StudyVisualizerForNonStationaryTrends, ModelSubsetForUncertainty
 
 
 def uncertainty_interval_size(altitude_to_visualizer: Dict[int, StudyVisualizerForNonStationaryTrends]):
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/without_maximum/__init__.py b/projects/exceeding_snow_loads/checks/without_maximum/__init__.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/without_maximum/__init__.py
rename to projects/exceeding_snow_loads/checks/without_maximum/__init__.py
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/without_maximum/main_fit_without_maximum.py b/projects/exceeding_snow_loads/checks/without_maximum/main_fit_without_maximum.py
similarity index 100%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/without_maximum/main_fit_without_maximum.py
rename to projects/exceeding_snow_loads/checks/without_maximum/main_fit_without_maximum.py
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/without_maximum/study_visualizer_for_fit_witout_maximum.py b/projects/exceeding_snow_loads/checks/without_maximum/study_visualizer_for_fit_witout_maximum.py
similarity index 95%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/without_maximum/study_visualizer_for_fit_witout_maximum.py
rename to projects/exceeding_snow_loads/checks/without_maximum/study_visualizer_for_fit_witout_maximum.py
index 111d50eb..633ceaeb 100644
--- a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/without_maximum/study_visualizer_for_fit_witout_maximum.py
+++ b/projects/exceeding_snow_loads/checks/without_maximum/study_visualizer_for_fit_witout_maximum.py
@@ -4,7 +4,7 @@ import numpy as np
 from cached_property import cached_property
 
 from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/exceeding_snow_loads/data/__init__.py b/projects/exceeding_snow_loads/section_data/__init__.py
similarity index 100%
rename from projects/exceeding_snow_loads/data/__init__.py
rename to projects/exceeding_snow_loads/section_data/__init__.py
diff --git a/projects/exceeding_snow_loads/data/main_eurocode_plot.py b/projects/exceeding_snow_loads/section_data/main_eurocode_plot.py
similarity index 100%
rename from projects/exceeding_snow_loads/data/main_eurocode_plot.py
rename to projects/exceeding_snow_loads/section_data/main_eurocode_plot.py
diff --git a/projects/exceeding_snow_loads/data/main_example_swe_total_plot.py b/projects/exceeding_snow_loads/section_data/main_example_swe_total_plot.py
similarity index 97%
rename from projects/exceeding_snow_loads/data/main_example_swe_total_plot.py
rename to projects/exceeding_snow_loads/section_data/main_example_swe_total_plot.py
index 94f8aee6..ed5fc29b 100644
--- a/projects/exceeding_snow_loads/data/main_example_swe_total_plot.py
+++ b/projects/exceeding_snow_loads/section_data/main_example_swe_total_plot.py
@@ -5,7 +5,7 @@ from experiment.meteo_france_data.scm_models_data.visualization.main_study_visua
     study_iterator_global, SCM_STUDY_CLASS_TO_ABBREVIATION
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualizer import \
     StudyVisualizer
-from projects.exceeding_snow_loads.paper_utils import dpi_paper1_figure
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
 
 
 def tuples_for_examples_paper1(examples_for_the_paper=True):
diff --git a/projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/__init__.py b/projects/exceeding_snow_loads/section_discussion/__init__.py
similarity index 100%
rename from projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/__init__.py
rename to projects/exceeding_snow_loads/section_discussion/__init__.py
diff --git a/projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/crocus_study_comparison_with_eurocode.py b/projects/exceeding_snow_loads/section_discussion/crocus_study_comparison_with_eurocode.py
similarity index 100%
rename from projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/crocus_study_comparison_with_eurocode.py
rename to projects/exceeding_snow_loads/section_discussion/crocus_study_comparison_with_eurocode.py
diff --git a/projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_examples.py b/projects/exceeding_snow_loads/section_discussion/main_comparison_with_eurocode_examples.py
similarity index 94%
rename from projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_examples.py
rename to projects/exceeding_snow_loads/section_discussion/main_comparison_with_eurocode_examples.py
index 0abf3517..0adf4b01 100644
--- a/projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_examples.py
+++ b/projects/exceeding_snow_loads/section_discussion/main_comparison_with_eurocode_examples.py
@@ -7,10 +7,10 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizer
     StudyVisualizer
 import matplotlib.pyplot as plt
 
-from projects.exceeding_snow_loads.discussion_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import \
+from projects.exceeding_snow_loads.section_discussion.crocus_study_comparison_with_eurocode import \
     CrocusDifferenceSnowLoad, \
     CrocusSnowDensityAtMaxofSwe, CrocusSnowDepthDifference
-from projects.exceeding_snow_loads.paper_utils import dpi_paper1_figure
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
 
 
 def max_graph_annual_maxima_comparison():
diff --git a/projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_global.py b/projects/exceeding_snow_loads/section_discussion/main_comparison_with_eurocode_global.py
similarity index 94%
rename from projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_global.py
rename to projects/exceeding_snow_loads/section_discussion/main_comparison_with_eurocode_global.py
index 07069c5f..454cadcb 100644
--- a/projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_global.py
+++ b/projects/exceeding_snow_loads/section_discussion/main_comparison_with_eurocode_global.py
@@ -4,10 +4,10 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizer
     StudyVisualizer
 import matplotlib.pyplot as plt
 
-from experiment.exceeding_snow_loads.discussion_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import \
+from projects.exceeding_snow_loads.section_discussion.crocus_study_comparison_with_eurocode import \
     CrocusDifferenceSnowLoad, \
     CrocusSnowDensityAtMaxofSwe, CrocusSnowDepthDifference
-from experiment.exceeding_snow_loads.paper_utils import dpi_paper1_figure
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
 
 
 def max_graph_annual_maxima_comparison():
diff --git a/projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_spatio_temporal_density_wrt_altitude.py b/projects/exceeding_snow_loads/section_discussion/main_spatio_temporal_density_wrt_altitude.py
similarity index 93%
rename from projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_spatio_temporal_density_wrt_altitude.py
rename to projects/exceeding_snow_loads/section_discussion/main_spatio_temporal_density_wrt_altitude.py
index 96c796f2..4e6ce1fc 100644
--- a/projects/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_spatio_temporal_density_wrt_altitude.py
+++ b/projects/exceeding_snow_loads/section_discussion/main_spatio_temporal_density_wrt_altitude.py
@@ -4,9 +4,9 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizer
     StudyVisualizer
 import matplotlib.pyplot as plt
 
-from experiment.exceeding_snow_loads.discussion_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import \
+from projects.exceeding_snow_loads.section_discussion.crocus_study_comparison_with_eurocode import \
     CrocusSnowDensityAtMaxofSwe
-from experiment.exceeding_snow_loads.paper_utils import dpi_paper1_figure
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
 
 
 def density_wrt_altitude():
diff --git a/projects/exceeding_snow_loads/result_trends_and_return_levels/__init__.py b/projects/exceeding_snow_loads/section_results/__init__.py
similarity index 100%
rename from projects/exceeding_snow_loads/result_trends_and_return_levels/__init__.py
rename to projects/exceeding_snow_loads/section_results/__init__.py
diff --git a/projects/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py b/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
similarity index 55%
rename from projects/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
rename to projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
index c1ca9ea7..edffbfd8 100644
--- a/projects/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
+++ b/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
@@ -2,20 +2,11 @@ from multiprocessing.pool import Pool
 
 import matplotlib as mpl
 
-from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal, CrocusSnowLoad3Days, \
-    CrocusSnowLoad5Days, CrocusSnowLoad7Days
-from projects.exceeding_snow_loads.check_mle_convergence_for_trends.uncertainty_interval_size import \
-    uncertainty_interval_size
-from projects.exceeding_snow_loads.paper_main_utils import load_altitude_to_visualizer
-from projects.exceeding_snow_loads.paper_utils import paper_study_classes, paper_altitudes
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_diagnosis_risk import plot_diagnosis_risk
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_selection_curves import plot_selection_curves
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_trend_curves import plot_trend_curves, \
-    plot_trend_map
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_uncertainty_curves import plot_uncertainty_massifs
-from projects.exceeding_snow_loads.result_trends_and_return_levels.plot_uncertainty_histogram import \
-    plot_uncertainty_histogram
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
+from extreme_trend_test.visualizers.utils import load_altitude_to_visualizer
+from projects.exceeding_snow_loads.utils import paper_study_classes, paper_altitudes
+from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
@@ -99,29 +90,3 @@ if __name__ == '__main__':
     #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes,
     #                                          ConfidenceIntervalMethodFromExtremes.ci_mle][1:],
     #                     multiprocessing=True)
-    # intermediate_result(altitudes=[900, 1200], massif_names=['Maurienne'],
-    #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes,
-    #                                          ConfidenceIntervalMethodFromExtremes.ci_mle][1:],
-    #                     non_stationary_uncertainty=[False, True][:],
-    #                     multiprocessing=True)
-    # intermediate_result(altitudes=[900, 1200], massif_names=None)
-    # intermediate_result(ALL_ALTITUDES_WITHOUT_NAN)
-    # intermediate_result(paper_altitudes)
-    # minor_result(altitude=900)
-    # intermediate_result(altitudes=[1500, 1800], massif_names=['Chartreuse'],
-    #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.ci_mle,
-    #                                          ConfidenceIntervalMethodFromExtremes.ci_bayes],
-    #                     non_stationary_uncertainty=[True])
-    # intermediate_result(altitudes=[1500, 1800], massif_names=None,
-    #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.ci_mle],
-    #                     non_stationary_uncertainty=[False])
-    # intermediate_result(altitudes=[300, 600, 900, 1200, 1500, 1800], massif_names=None,
-    #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.ci_mle],
-    #                     non_stationary_uncertainty=[False])
-    # intermediate_result(altitudes=[300, 600, 900, 1200, 1500, 1800, 2100, 2400, 2700], massif_names=None,
-    #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.ci_mle,
-    #                                          ConfidenceIntervalMethodFromExtremes.ci_bayes],
-    #                     non_stationary_uncertainty=[False, True])
-    # intermediate_result(altitudes=[300, 600, 900], massif_names=None,
-    #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.ci_mle],
-    #                     non_stationary_uncertainty=[False, True])
diff --git a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape/main_shape_repartition.py b/projects/exceeding_snow_loads/section_results/main_shape_repartition.py
similarity index 87%
rename from projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape/main_shape_repartition.py
rename to projects/exceeding_snow_loads/section_results/main_shape_repartition.py
index 90c2cb7c..0582eb32 100644
--- a/projects/exceeding_snow_loads/check_mle_convergence_for_trends/shape/main_shape_repartition.py
+++ b/projects/exceeding_snow_loads/section_results/main_shape_repartition.py
@@ -1,8 +1,7 @@
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
-from projects.exceeding_snow_loads.check_mle_convergence_for_trends.shape.study_visualizer_for_shape_repartition import \
+from extreme_trend_test.visualizers.study_visualizer_for_shape_repartition import \
     StudyVisualizerForShape
-from projects.exceeding_snow_loads.paper_main_utils import load_altitude_to_visualizer
-from projects.exceeding_snow_loads.paper_utils import paper_altitudes
+from extreme_trend_test.visualizers.utils import load_altitude_to_visualizer
 
 
 def main_shape_repartition(altitudes, massif_names=None,
diff --git a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_diagnosis_risk.py b/projects/exceeding_snow_loads/section_results/plot_diagnosis_risk.py
similarity index 92%
rename from projects/exceeding_snow_loads/result_trends_and_return_levels/plot_diagnosis_risk.py
rename to projects/exceeding_snow_loads/section_results/plot_diagnosis_risk.py
index ade84a5f..daf93d71 100644
--- a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_diagnosis_risk.py
+++ b/projects/exceeding_snow_loads/section_results/plot_diagnosis_risk.py
@@ -1,8 +1,8 @@
 import matplotlib.pyplot as plt
 
-from projects.exceeding_snow_loads.paper_utils import ModelSubsetForUncertainty, dpi_paper1_figure
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import ModelSubsetForUncertainty
 
 
 def plot_diagnosis_risk(altitude_to_visualizer):
diff --git a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_selection_curves.py b/projects/exceeding_snow_loads/section_results/plot_selection_curves.py
similarity index 94%
rename from projects/exceeding_snow_loads/result_trends_and_return_levels/plot_selection_curves.py
rename to projects/exceeding_snow_loads/section_results/plot_selection_curves.py
index 0a47f45e..6f1f45cc 100644
--- a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_selection_curves.py
+++ b/projects/exceeding_snow_loads/section_results/plot_selection_curves.py
@@ -1,12 +1,10 @@
 from typing import Dict
-from collections import Counter
 import matplotlib.pyplot as plt
 
-from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy
 from experiment.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes
-from projects.exceeding_snow_loads.paper_utils import dpi_paper1_figure
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import StudyVisualizerForNonStationaryTrends
-from itertools import chain
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import StudyVisualizerForNonStationaryTrends
+
 
 def permute(l, permutation):
     # permutation = [i//2  if i % 2 == 0 else 4 + i //2 for i in range(8)]
diff --git a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_trend_curves.py b/projects/exceeding_snow_loads/section_results/plot_trend_curves.py
similarity index 96%
rename from projects/exceeding_snow_loads/result_trends_and_return_levels/plot_trend_curves.py
rename to projects/exceeding_snow_loads/section_results/plot_trend_curves.py
index e2a14d70..0410a4fe 100644
--- a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_trend_curves.py
+++ b/projects/exceeding_snow_loads/section_results/plot_trend_curves.py
@@ -3,8 +3,8 @@ import matplotlib.pyplot as plt
 
 from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy
 from experiment.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes
-from projects.exceeding_snow_loads.paper_utils import dpi_paper1_figure
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_curves.py b/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
similarity index 98%
rename from projects/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_curves.py
rename to projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
index 8f4d4caa..76666e3d 100644
--- a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_curves.py
+++ b/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
@@ -6,9 +6,9 @@ import numpy as np
 from experiment.eurocode_data.utils import EUROCODE_RETURN_LEVEL_STR, EUROCODE_ALTITUDES, \
     YEAR_OF_INTEREST_FOR_RETURN_LEVEL
 from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy, filled_marker_legend_list2
-from projects.exceeding_snow_loads.paper_utils import dpi_paper1_figure, ModelSubsetForUncertainty
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
-    StudyVisualizerForNonStationaryTrends
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
+    StudyVisualizerForNonStationaryTrends, ModelSubsetForUncertainty
 from extreme_fit.model.result_from_model_fit.result_from_extremes.abstract_extract_eurocode_return_level import \
     AbstractExtractEurocodeReturnLevel
 from experiment.eurocode_data.massif_name_to_departement import massif_name_to_eurocode_region
diff --git a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py b/projects/exceeding_snow_loads/section_results/plot_uncertainty_histogram.py
similarity index 93%
rename from projects/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py
rename to projects/exceeding_snow_loads/section_results/plot_uncertainty_histogram.py
index 15eb60fc..26e73132 100644
--- a/projects/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py
+++ b/projects/exceeding_snow_loads/section_results/plot_uncertainty_histogram.py
@@ -2,9 +2,9 @@ from typing import Dict
 import matplotlib.pyplot as plt
 import numpy as np
 
-from experiment.eurocode_data.utils import EUROCODE_RETURN_LEVEL_STR, EUROCODE_ALTITUDES
-from projects.exceeding_snow_loads.paper_utils import dpi_paper1_figure, ModelSubsetForUncertainty
-from projects.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from experiment.eurocode_data.utils import EUROCODE_ALTITUDES
+from projects.exceeding_snow_loads.utils import dpi_paper1_figure
+from extreme_trend_test.visualizers.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import ci_method_to_color, \
     ci_method_to_label, ConfidenceIntervalMethodFromExtremes
diff --git a/projects/exceeding_snow_loads/paper_utils.py b/projects/exceeding_snow_loads/utils.py
similarity index 88%
rename from projects/exceeding_snow_loads/paper_utils.py
rename to projects/exceeding_snow_loads/utils.py
index a3dc7eff..1a560af5 100644
--- a/projects/exceeding_snow_loads/paper_utils.py
+++ b/projects/exceeding_snow_loads/utils.py
@@ -24,11 +24,3 @@ NON_STATIONARY_TREND_TEST_PAPER = [GumbelVersusGumbel,
                                    GevLocationAgainstGumbel, GevScaleAgainstGumbel,
                                    GevLocationAndScaleTrendTestAgainstGumbel]
 
-
-
-class ModelSubsetForUncertainty(Enum):
-    stationary_gumbel = 0
-    stationary_gumbel_and_gev = 1
-    non_stationary_gumbel = 2
-    non_stationary_gumbel_and_gev = 3
-    stationary_gev = 4
diff --git a/test/test_experiment/test_trend_analysis.py b/test/test_experiment/test_trend_analysis.py
index 4b494bd0..e5bf0416 100644
--- a/test/test_experiment/test_trend_analysis.py
+++ b/test/test_experiment/test_trend_analysis.py
@@ -1,6 +1,6 @@
 import unittest
 
-from projects.exceeding_snow_loads.paper_utils import NON_STATIONARY_TREND_TEST_PAPER
+from projects.exceeding_snow_loads.utils import NON_STATIONARY_TREND_TEST_PAPER
 
 
 class TestTrendAnalysis(unittest.TestCase):
-- 
GitLab