From 28c9d300340c7ec6a96ac388470311b92635c4bc Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Thu, 25 Feb 2021 11:52:30 +0100
Subject: [PATCH] [refactor] move altitudes_studies.py. create trend test
 folder inside extreme_trend.

---
 .../adamont_data/adamont/adamont_snowfall.py  |  8 +-
 .../deprecated/ensemble_simulation.py         | 95 -------------------
 .../deprecated/single_simulation.py           | 86 -----------------
 .../scm_models_data}/altitudes_studies.py     |  0
 .../ribatet/day_for_the_maxima_v1.py          | 11 +--
 .../ribatet/day_for_the_maxima_v2.py          | 10 +-
 .../trend_test}/__init__.py                   |  0
 .../abstract_gev_trend_test.py                |  0
 .../trend_test_one_parameter/__init__.py      |  0
 ...bstract_comparison_non_stationary_model.py |  5 +-
 .../gev_trend_test_one_parameter.py           |  2 +-
 .../gumbel_trend_test_one_parameter.py        |  2 +-
 .../trend_test_three_parameters/__init__.py   |  0
 .../gev_trend_test_three_parameters.py        |  2 +-
 .../trend_test_two_parameters/__init__.py     |  0
 .../gev_trend_test_two_parameters.py          |  4 +-
 .../gumbel_test_two_parameters.py             |  3 +-
 .../{ => trend_test}/visualizers/__init__.py  |  0
 ...dy_visualizer_for_non_stationary_trends.py | 11 +--
 .../study_visualizer_for_shape_repartition.py |  2 +-
 .../{ => trend_test}/visualizers/utils.py     |  2 +-
 .../altitudes_fit/main_altitudes_studies.py   |  7 +-
 ...es_visualizer_for_non_stationary_models.py | 16 +---
 .../{ => one_fold_analysis}/plots/__init__.py |  0
 ...pute_histogram_change_in_total_snowfall.py |  0
 .../plots/plot_coherence_curves.py            |  0
 .../plots/plot_histogram_altitude_studies.py  | 42 +-------
 .../utils_altitude_studies_visualizer.py      |  2 +-
 .../two_fold_datasets_generator.py            |  2 +-
 .../preliminary_analysis.py                   |  2 +-
 .../main_gap_altitudes_studies.py             |  2 +-
 .../main_season_repartition_of_maxima.py      |  3 +-
 .../mixed_distribution_impact.py              |  2 +-
 .../qqplot/main_qqplot_for_big_shapes.py      |  2 +-
 .../checks/qqplot/plot_qqplot.py              |  2 +-
 .../checks/uncertainty_interval_size.py       |  2 +-
 ...study_visualizer_for_fit_witout_maximum.py |  2 +-
 .../main_result_trends_and_return_levels.py   |  8 +-
 .../section_results/main_shape_repartition.py |  4 +-
 .../section_results/plot_diagnosis_risk.py    |  2 +-
 .../section_results/plot_selection_curves.py  |  2 +-
 .../section_results/plot_trend_curves.py      |  2 +-
 .../plot_uncertainty_curves.py                |  4 +-
 .../plot_uncertainty_histogram.py             |  2 +-
 projects/exceeding_snow_loads/utils.py        | 49 ++--------
 .../abstract_ensemble_fit.py                  |  5 +-
 .../visualizer_for_projection_ensemble.py     |  8 +-
 .../visualizer_for_sensitivity.py             |  6 +-
 .../comparison_historical_visualizer.py       |  3 +-
 .../main_comparison_on_quantile_period.py     |  9 +-
 .../evaluation/main_comparison_reanalysis.py  |  2 +-
 .../main_inquiry_weird_pattern.py             |  2 +-
 .../test_gev_spatio_temporal_extremes_mle.py  | 11 +--
 ...spatio_temporal_polynomial_extremes_mle.py | 14 ---
 .../test_gev_temporal_extremes_bayesian.py    |  2 +-
 .../test_gev_temporal_extremes_gumbel.py      |  2 +-
 .../test_gev_temporal_extremes_l_moments.py   |  4 +-
 .../test_gev_temporal_extremes_mle.py         |  2 +-
 ...st_gev_temporal_polynomial_extremes_mle.py |  2 +-
 ...st_extreme_trend.py => test_trend_test.py} | 12 +--
 .../test_one_fold_fit.py                      |  3 +-
 .../test_altitudes_studies.py                 |  2 +-
 .../test_two_fold_datasets_generator.py       |  2 +-
 .../test_contrasting/test_two_fold_fit.py     |  2 +-
 .../test_exceeding_snow_loads/test_results.py |  9 --
 65 files changed, 84 insertions(+), 420 deletions(-)
 delete mode 100644 extreme_data/meteo_france_data/adamont_data/deprecated/ensemble_simulation.py
 delete mode 100644 extreme_data/meteo_france_data/adamont_data/deprecated/single_simulation.py
 rename {projects/altitude_spatial_model/altitudes_fit => extreme_data/meteo_france_data/scm_models_data}/altitudes_studies.py (100%)
 rename {extreme_data/meteo_france_data/adamont_data/deprecated => extreme_trend/trend_test}/__init__.py (100%)
 rename extreme_trend/{ => trend_test}/abstract_gev_trend_test.py (100%)
 rename extreme_trend/{ => trend_test}/trend_test_one_parameter/__init__.py (100%)
 rename extreme_trend/{ => trend_test}/trend_test_one_parameter/abstract_comparison_non_stationary_model.py (86%)
 rename extreme_trend/{ => trend_test}/trend_test_one_parameter/gev_trend_test_one_parameter.py (98%)
 rename extreme_trend/{ => trend_test}/trend_test_one_parameter/gumbel_trend_test_one_parameter.py (97%)
 rename extreme_trend/{ => trend_test}/trend_test_three_parameters/__init__.py (100%)
 rename extreme_trend/{ => trend_test}/trend_test_three_parameters/gev_trend_test_three_parameters.py (97%)
 rename extreme_trend/{ => trend_test}/trend_test_two_parameters/__init__.py (100%)
 rename extreme_trend/{ => trend_test}/trend_test_two_parameters/gev_trend_test_two_parameters.py (97%)
 rename extreme_trend/{ => trend_test}/trend_test_two_parameters/gumbel_test_two_parameters.py (96%)
 rename extreme_trend/{ => trend_test}/visualizers/__init__.py (100%)
 rename extreme_trend/{ => trend_test}/visualizers/study_visualizer_for_non_stationary_trends.py (98%)
 rename extreme_trend/{ => trend_test}/visualizers/study_visualizer_for_shape_repartition.py (93%)
 rename extreme_trend/{ => trend_test}/visualizers/utils.py (95%)
 rename projects/altitude_spatial_model/altitudes_fit/{ => one_fold_analysis}/plots/__init__.py (100%)
 rename projects/altitude_spatial_model/altitudes_fit/{ => one_fold_analysis}/plots/compute_histogram_change_in_total_snowfall.py (100%)
 rename projects/altitude_spatial_model/altitudes_fit/{ => one_fold_analysis}/plots/plot_coherence_curves.py (100%)
 rename projects/altitude_spatial_model/altitudes_fit/{ => one_fold_analysis}/plots/plot_histogram_altitude_studies.py (84%)
 rename projects/altitude_spatial_model/altitudes_fit/{ => one_fold_analysis}/utils_altitude_studies_visualizer.py (96%)
 rename test/test_extreme_trend/{test_extreme_trend.py => test_trend_test.py} (60%)

diff --git a/extreme_data/meteo_france_data/adamont_data/adamont/adamont_snowfall.py b/extreme_data/meteo_france_data/adamont_data/adamont/adamont_snowfall.py
index 6f24a261..822136ea 100644
--- a/extreme_data/meteo_france_data/adamont_data/adamont/adamont_snowfall.py
+++ b/extreme_data/meteo_france_data/adamont_data/adamont/adamont_snowfall.py
@@ -1,13 +1,7 @@
-import numpy as np
-
 from extreme_data.meteo_france_data.adamont_data.abstract_adamont_study import AbstractAdamontStudy
-from extreme_data.meteo_france_data.adamont_data.adamont_scenario import AdamontScenario
 from extreme_data.meteo_france_data.adamont_data.adamont.adamont_variables import \
     SafranSnowfallSimulationVariable
-from extreme_data.meteo_france_data.scm_models_data.abstract_study import YEAR_MIN, YEAR_MAX
-from extreme_data.meteo_france_data.scm_models_data.abstract_variable import AbstractVariable
-from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
-from extreme_data.meteo_france_data.scm_models_data.safran.safran_variable import SafranSnowfallVariable
+from extreme_data.meteo_france_data.adamont_data.adamont_scenario import AdamontScenario
 from extreme_data.meteo_france_data.scm_models_data.utils import Season, FrenchRegion
 
 
diff --git a/extreme_data/meteo_france_data/adamont_data/deprecated/ensemble_simulation.py b/extreme_data/meteo_france_data/adamont_data/deprecated/ensemble_simulation.py
deleted file mode 100644
index bde64857..00000000
--- a/extreme_data/meteo_france_data/adamont_data/deprecated/ensemble_simulation.py
+++ /dev/null
@@ -1,95 +0,0 @@
-import os
-from typing import List
-import os.path as op
-
-import numpy as np
-from cached_property import cached_property
-
-from extreme_data.meteo_france_data.adamont_data.deprecated.single_simulation import SingleSimulation
-
-ADAMONT_PATH = r"/home/erwan/Documents/projects/spatiotemporalextremes/local/spatio_temporal_datasets/ADAMONT"
-
-
-class EnsembleSimulation(object):
-
-    def __init__(self, scenario='HISTO', parameter='SNOWSWE',
-                 first_winter_required_for_histo=1958, last_winter_for_histo=2004):
-        assert False, 'RE-read the code to take into the new dates'
-        self.scenario = scenario
-        self.parameter = parameter
-        self.first_winter_required_for_histo = first_winter_required_for_histo
-        self.last_year_for_histo = last_winter_for_histo
-
-        # Assert value for the parameter
-        assert scenario in ['HISTO', 'RCP45']
-        assert parameter in ['SNOWSWE']
-        assert first_winter_required_for_histo >= 1950
-        assert first_winter_required_for_histo <= 2004
-
-        # Load simulations
-        # todo: so far i am using one ensemble member
-        print('single ensemble member', self.nc_files[0])
-        self.simulations = [SingleSimulation(nc_path, self.parameter,
-                                             self.first_winter_required_for_histo,
-                                             self.last_year_for_histo) for nc_path in self.nc_paths][:1]
-
-    @cached_property
-    def simulations_path(self):
-        return op.join(ADAMONT_PATH, self.parameter, self.scenario)
-
-    @cached_property
-    def nc_paths(self):
-        return [op.join(ADAMONT_PATH, self.parameter, self.scenario, nc_file) for nc_file in self.nc_files]
-
-    @cached_property
-    def nc_files(self) -> List[str]:
-        nc_files = []
-        for file in os.listdir(self.simulations_path):
-            first_year = int(file.split('_')[-3][:4])
-            if first_year <= self.first_winter_required_for_histo:
-                # Also remove the historical simulations that contain "CNRM-CM5"
-                # Problem reported in "limitations" on their website
-                # Ce problème affecte toutes lessimulations HISTORIQUE CORDEX
-                # réalisées en utilisant le forçage CNRM-CM5: CCLM4-8-17: ALADIN53 et RCA4
-                if self.scenario == 'HISTO' and 'CNRM-CM5' in file:
-                    print('here', file)
-                    continue
-                nc_files.append(file)
-        assert len(nc_files) > 0
-        return nc_files
-
-    @cached_property
-    def simulations_names(self):
-        return [' + '.join(file.split('_')[2:-5]) for file in self.nc_files]
-
-    def massif_name_and_altitude_to_mean_return_level(self):
-        return {}
-
-    @property
-    def first_simulation(self):
-        return self.simulations[0]
-
-    @property
-    def massif_name_and_altitude(self):
-        pass
-
-    @cached_property
-    def massif_name_and_altitude_to_mean_average_annual_maxima(self):
-        d = {}
-        for m, a in self.first_simulation.massif_name_and_altitude_to_average_maxima.keys():
-            d[(m, a)] = np.mean([s.massif_name_and_altitude_to_average_maxima[(m, a)] for s in self.simulations])
-        return d
-
-
-if __name__ == '__main__':
-    # np.array(d.variables['SNOWSWE'])
-    ensemble = EnsembleSimulation(first_winter_required_for_histo=1958)
-    print(len(ensemble.simulations))
-    print(ensemble.simulations_names)
-    s = ensemble.first_simulation
-    d = s.dataset
-    # print(s.massif_name_and_altitude_to_annual_maxima_time_series)
-    # print(s.massif_name_and_altitude_to_average_maxima)
-    print(ensemble.massif_name_and_altitude_to_mean_average_annual_maxima)
-    print(s.years)
-    # print(d)
diff --git a/extreme_data/meteo_france_data/adamont_data/deprecated/single_simulation.py b/extreme_data/meteo_france_data/adamont_data/deprecated/single_simulation.py
deleted file mode 100644
index 7ba82ed8..00000000
--- a/extreme_data/meteo_france_data/adamont_data/deprecated/single_simulation.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from datetime import datetime
-
-import numpy as np
-import os.path as op
-from cached_property import cached_property
-from netCDF4._netCDF4 import Dataset
-from datetime import timedelta
-
-from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
-
-
-class SingleSimulation(object):
-
-    def __init__(self, nc_path, parameter, fist_year, last_year):
-        self.fist_year = fist_year
-        self.last_year = last_year
-        self.parameter = parameter
-        self.nc_path = nc_path
-
-    @cached_property
-    def dataset(self):
-        return Dataset(self.nc_path)
-
-    @cached_property
-    def winter_year(self):
-        start = datetime(year=1900, month=1, day=1, hour=0, minute=0, second=0)
-        seconds_after_start = np.array(self.dataset.variables['TIME'])
-        dates = [start + timedelta(seconds=s) for s in seconds_after_start]
-        winter_year = [date.year - 1 if date.month < 8 else date.year for date in dates]
-        return np.array(winter_year)
-
-    @cached_property
-    def years(self):
-        return sorted([year for year in set(self.winter_year) if self.fist_year <= year <= self.last_year])
-
-    def massif_name_and_altitude_to_return_level(self):
-        return {}
-
-    @property
-    def massif_number_to_massif_name(self):
-        # from adamont_data metadata
-        s = """1	Chablais
-        2	Aravis
-        3	Mont-Blanc
-        4	Bauges
-        5	Beaufortain
-        6	Haute-Tarentaise
-        7	Chartreuse
-        8	Belledonne
-        9	Maurienne
-        10	Vanoise
-        11	Haute-Maurienne
-        12	Grandes-Rousses
-        13	Thabor
-        14	Vercors
-        15	Oisans
-        16	Pelvoux
-        17	Queyras
-        18	Devoluy
-        19	Champsaur
-        20	Parpaillon
-        21	Ubaye
-        22	Haut_Var-Haut_Verdon
-        23	Mercantour"""
-        l = s.split('\n')
-        return dict([e.split() for e in l])
-
-    @cached_property
-    def massif_name_and_altitude_to_annual_maxima_time_series(self):
-        all_values = np.array(self.dataset.variables[self.parameter])
-        zs_list = [int(e) for e in np.array(self.dataset.variables['ZS'])]
-        massif_number_list = np.array(self.dataset.variables['MASSIF_NUMBER'])
-        massif_name_list = [self.massif_number_to_massif_name[str(n)] for n in massif_number_list]
-        d = {}
-        for year in self.years:
-            indexes = np.where(self.winter_year == year)[0]
-            winter_values = all_values[indexes, 0, :]
-            assert len(winter_values) in [365, 366]
-            for time_serie, zs, massif_name in zip(winter_values.transpose(), zs_list, massif_name_list):
-                # print(zs, massif_name, len(time_serie))
-                d[(massif_name, zs)] = time_serie
-        return d
-
-    @cached_property
-    def massif_name_and_altitude_to_average_maxima(self):
-        return {t: np.mean(s) for t, s in self.massif_name_and_altitude_to_annual_maxima_time_series.items()}
diff --git a/projects/altitude_spatial_model/altitudes_fit/altitudes_studies.py b/extreme_data/meteo_france_data/scm_models_data/altitudes_studies.py
similarity index 100%
rename from projects/altitude_spatial_model/altitudes_fit/altitudes_studies.py
rename to extreme_data/meteo_france_data/scm_models_data/altitudes_studies.py
diff --git a/extreme_data/meteo_france_data/scm_models_data/case_studies/ribatet/day_for_the_maxima_v1.py b/extreme_data/meteo_france_data/scm_models_data/case_studies/ribatet/day_for_the_maxima_v1.py
index f11d41fe..a19f68f7 100644
--- a/extreme_data/meteo_france_data/scm_models_data/case_studies/ribatet/day_for_the_maxima_v1.py
+++ b/extreme_data/meteo_france_data/scm_models_data/case_studies/ribatet/day_for_the_maxima_v1.py
@@ -1,16 +1,9 @@
 import pandas as pd
-import numpy as np
-import xlsxwriter
 
-
-from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
-from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusSwe3Days
-from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day, SafranSnowfall3Days
-from extreme_data.meteo_france_data.scm_models_data.utils import FrenchRegion
+from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
 from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
     SCM_STUDY_CLASS_TO_ABBREVIATION
-from extreme_fit.estimator.margin_estimator.utils import fitted_stationary_gev
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 
 
 def generate_excel_with_annual_maxima(fast=True, maxima_dates=False):
diff --git a/extreme_data/meteo_france_data/scm_models_data/case_studies/ribatet/day_for_the_maxima_v2.py b/extreme_data/meteo_france_data/scm_models_data/case_studies/ribatet/day_for_the_maxima_v2.py
index 89bc87c4..6b9359d6 100644
--- a/extreme_data/meteo_france_data/scm_models_data/case_studies/ribatet/day_for_the_maxima_v2.py
+++ b/extreme_data/meteo_france_data/scm_models_data/case_studies/ribatet/day_for_the_maxima_v2.py
@@ -1,16 +1,10 @@
 import pandas as pd
 import numpy as np
-import xlsxwriter
 
-
-from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
-from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusSwe3Days
-from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day, SafranSnowfall3Days
-from extreme_data.meteo_france_data.scm_models_data.utils import FrenchRegion
+from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
 from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
     SCM_STUDY_CLASS_TO_ABBREVIATION
-from extreme_fit.estimator.margin_estimator.utils import fitted_stationary_gev
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 
 
 def generate_excel_with_annual_maxima(fast=True, maxima_dates=False):
diff --git a/extreme_data/meteo_france_data/adamont_data/deprecated/__init__.py b/extreme_trend/trend_test/__init__.py
similarity index 100%
rename from extreme_data/meteo_france_data/adamont_data/deprecated/__init__.py
rename to extreme_trend/trend_test/__init__.py
diff --git a/extreme_trend/abstract_gev_trend_test.py b/extreme_trend/trend_test/abstract_gev_trend_test.py
similarity index 100%
rename from extreme_trend/abstract_gev_trend_test.py
rename to extreme_trend/trend_test/abstract_gev_trend_test.py
diff --git a/extreme_trend/trend_test_one_parameter/__init__.py b/extreme_trend/trend_test/trend_test_one_parameter/__init__.py
similarity index 100%
rename from extreme_trend/trend_test_one_parameter/__init__.py
rename to extreme_trend/trend_test/trend_test_one_parameter/__init__.py
diff --git a/extreme_trend/trend_test_one_parameter/abstract_comparison_non_stationary_model.py b/extreme_trend/trend_test/trend_test_one_parameter/abstract_comparison_non_stationary_model.py
similarity index 86%
rename from extreme_trend/trend_test_one_parameter/abstract_comparison_non_stationary_model.py
rename to extreme_trend/trend_test/trend_test_one_parameter/abstract_comparison_non_stationary_model.py
index cbf6789a..d73123f3 100644
--- a/extreme_trend/trend_test_one_parameter/abstract_comparison_non_stationary_model.py
+++ b/extreme_trend/trend_test/trend_test_one_parameter/abstract_comparison_non_stationary_model.py
@@ -1,12 +1,11 @@
 from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE
-from extreme_trend.trend_test_one_parameter.gev_trend_test_one_parameter import \
+from extreme_trend.trend_test.trend_test_one_parameter.gev_trend_test_one_parameter import \
     GevTrendTestOneParameter
-from extreme_trend.trend_test_two_parameters.gev_trend_test_two_parameters import GevLocationAndScaleTrendTest
+from extreme_trend.trend_test.trend_test_two_parameters import GevLocationAndScaleTrendTest
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import \
     NonStationaryLocationTemporalModel, NonStationaryScaleTemporalModel
-import numpy as np
 
 
 class AbstractComparisonNonStationaryModelOneParameter(GevTrendTestOneParameter):
diff --git a/extreme_trend/trend_test_one_parameter/gev_trend_test_one_parameter.py b/extreme_trend/trend_test/trend_test_one_parameter/gev_trend_test_one_parameter.py
similarity index 98%
rename from extreme_trend/trend_test_one_parameter/gev_trend_test_one_parameter.py
rename to extreme_trend/trend_test/trend_test_one_parameter/gev_trend_test_one_parameter.py
index 41224214..775c406c 100644
--- a/extreme_trend/trend_test_one_parameter/gev_trend_test_one_parameter.py
+++ b/extreme_trend/trend_test/trend_test_one_parameter/gev_trend_test_one_parameter.py
@@ -1,5 +1,5 @@
 from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE
-from extreme_trend.abstract_gev_trend_test import AbstractGevTrendTest
+from extreme_trend.trend_test.abstract_gev_trend_test import AbstractGevTrendTest
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import \
diff --git a/extreme_trend/trend_test_one_parameter/gumbel_trend_test_one_parameter.py b/extreme_trend/trend_test/trend_test_one_parameter/gumbel_trend_test_one_parameter.py
similarity index 97%
rename from extreme_trend/trend_test_one_parameter/gumbel_trend_test_one_parameter.py
rename to extreme_trend/trend_test/trend_test_one_parameter/gumbel_trend_test_one_parameter.py
index b9a06606..3186a3b9 100644
--- a/extreme_trend/trend_test_one_parameter/gumbel_trend_test_one_parameter.py
+++ b/extreme_trend/trend_test/trend_test_one_parameter/gumbel_trend_test_one_parameter.py
@@ -1,6 +1,6 @@
 # Comparison with the Gumbel model
 from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE
-from extreme_trend.trend_test_one_parameter.gev_trend_test_one_parameter import \
+from extreme_trend.trend_test.trend_test_one_parameter.gev_trend_test_one_parameter import \
     GevTrendTestOneParameter, GevTrendTestOneParameterAgainstStationary
 from extreme_fit.distribution.gev.gev_params import GevParams
 from extreme_fit.model.margin_model.utils import \
diff --git a/extreme_trend/trend_test_three_parameters/__init__.py b/extreme_trend/trend_test/trend_test_three_parameters/__init__.py
similarity index 100%
rename from extreme_trend/trend_test_three_parameters/__init__.py
rename to extreme_trend/trend_test/trend_test_three_parameters/__init__.py
diff --git a/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py b/extreme_trend/trend_test/trend_test_three_parameters/gev_trend_test_three_parameters.py
similarity index 97%
rename from extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py
rename to extreme_trend/trend_test/trend_test_three_parameters/gev_trend_test_three_parameters.py
index 6e0ac523..2f35f13b 100644
--- a/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py
+++ b/extreme_trend/trend_test/trend_test_three_parameters/gev_trend_test_three_parameters.py
@@ -3,7 +3,7 @@ from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_mo
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE
-from extreme_trend.abstract_gev_trend_test import AbstractGevTrendTest
+from extreme_trend.trend_test.abstract_gev_trend_test import AbstractGevTrendTest
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import \
     NonStationaryLocationAndScaleTemporalModel, GumbelTemporalModel, StationaryTemporalModel, \
     NonStationaryLocationAndScaleAndShapeTemporalModel
diff --git a/extreme_trend/trend_test_two_parameters/__init__.py b/extreme_trend/trend_test/trend_test_two_parameters/__init__.py
similarity index 100%
rename from extreme_trend/trend_test_two_parameters/__init__.py
rename to extreme_trend/trend_test/trend_test_two_parameters/__init__.py
diff --git a/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py b/extreme_trend/trend_test/trend_test_two_parameters/gev_trend_test_two_parameters.py
similarity index 97%
rename from extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py
rename to extreme_trend/trend_test/trend_test_two_parameters/gev_trend_test_two_parameters.py
index ee2d0a83..96d765c1 100644
--- a/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py
+++ b/extreme_trend/trend_test/trend_test_two_parameters/gev_trend_test_two_parameters.py
@@ -1,8 +1,8 @@
 from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE
 from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
     NonStationaryQuadraticScaleModel
-from extreme_trend.abstract_gev_trend_test import AbstractGevTrendTest
-from extreme_trend.trend_test_one_parameter.gev_trend_test_one_parameter import \
+from extreme_trend.trend_test.abstract_gev_trend_test import AbstractGevTrendTest
+from extreme_trend.trend_test.trend_test_one_parameter.gev_trend_test_one_parameter import \
     GevLocationTrendTest, GevScaleTrendTest
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
diff --git a/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py b/extreme_trend/trend_test/trend_test_two_parameters/gumbel_test_two_parameters.py
similarity index 96%
rename from extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py
rename to extreme_trend/trend_test/trend_test_two_parameters/gumbel_test_two_parameters.py
index e62ccdac..4a78adeb 100644
--- a/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py
+++ b/extreme_trend/trend_test/trend_test_two_parameters/gumbel_test_two_parameters.py
@@ -1,13 +1,12 @@
 from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE
 from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import \
     NonStationaryQuadraticLocationGumbelModel, NonStationaryQuadraticScaleGumbelModel
-from extreme_trend.trend_test_two_parameters.gev_trend_test_two_parameters import \
-    GevTrendTestTwoParameters
 from extreme_fit.distribution.gev.gev_params import GevParams
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import \
     NonStationaryLocationAndScaleGumbelModel, GumbelTemporalModel
+from extreme_trend.trend_test.trend_test_two_parameters.gev_trend_test_two_parameters import GevTrendTestTwoParameters
 from root_utils import classproperty
 
 
diff --git a/extreme_trend/visualizers/__init__.py b/extreme_trend/trend_test/visualizers/__init__.py
similarity index 100%
rename from extreme_trend/visualizers/__init__.py
rename to extreme_trend/trend_test/visualizers/__init__.py
diff --git a/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py b/extreme_trend/trend_test/visualizers/study_visualizer_for_non_stationary_trends.py
similarity index 98%
rename from extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py
rename to extreme_trend/trend_test/visualizers/study_visualizer_for_non_stationary_trends.py
index 683a73bd..0222959b 100644
--- a/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py
+++ b/extreme_trend/trend_test/visualizers/study_visualizer_for_non_stationary_trends.py
@@ -1,7 +1,7 @@
 from collections import OrderedDict, Counter
 from enum import Enum
 from multiprocessing.pool import Pool
-from typing import Dict, List, Tuple
+from typing import Dict, List
 
 import matplotlib.pyplot as plt
 import numpy as np
@@ -18,15 +18,10 @@ from extreme_data.meteo_france_data.scm_models_data.abstract_study import Abstra
 from extreme_data.meteo_france_data.scm_models_data.visualization.study_visualizer import \
     StudyVisualizer
 from projects.exceeding_snow_loads.utils import NON_STATIONARY_TREND_TEST_PAPER_1, ALTITUDE_TO_GREY_MASSIF
-from extreme_trend.abstract_gev_trend_test import AbstractGevTrendTest
-from extreme_trend.trend_test_one_parameter.gumbel_trend_test_one_parameter import \
-    GumbelLocationTrendTest, GevStationaryVersusGumbel, GumbelScaleTrendTest, GumbelVersusGumbel
-from extreme_trend.trend_test_two_parameters.gumbel_test_two_parameters import \
-    GumbelLocationAndScaleTrendTest
+from extreme_trend.trend_test.abstract_gev_trend_test import AbstractGevTrendTest
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
-from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import GumbelTemporalModel, \
-    StationaryTemporalModel
+from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import GumbelTemporalModel
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
 from extreme_fit.model.result_from_model_fit.result_from_extremes.eurocode_return_level_uncertainties import \
diff --git a/extreme_trend/visualizers/study_visualizer_for_shape_repartition.py b/extreme_trend/trend_test/visualizers/study_visualizer_for_shape_repartition.py
similarity index 93%
rename from extreme_trend/visualizers/study_visualizer_for_shape_repartition.py
rename to extreme_trend/trend_test/visualizers/study_visualizer_for_shape_repartition.py
index 901754e8..b4f4113a 100644
--- a/extreme_trend/visualizers/study_visualizer_for_shape_repartition.py
+++ b/extreme_trend/trend_test/visualizers/study_visualizer_for_shape_repartition.py
@@ -3,7 +3,7 @@ from cached_property import cached_property
 
 from extreme_data.meteo_france_data.scm_models_data.visualization.create_shifted_cmap import get_shifted_map
 from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/extreme_trend/visualizers/utils.py b/extreme_trend/trend_test/visualizers/utils.py
similarity index 95%
rename from extreme_trend/visualizers/utils.py
rename to extreme_trend/trend_test/visualizers/utils.py
index 01c1b76b..62a4a85f 100644
--- a/extreme_trend/visualizers/utils.py
+++ b/extreme_trend/trend_test/visualizers/utils.py
@@ -3,7 +3,7 @@ from collections import OrderedDict
 from extreme_data.meteo_france_data.scm_models_data.utils import Season, FrenchRegion
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/altitude_spatial_model/altitudes_fit/main_altitudes_studies.py b/projects/altitude_spatial_model/altitudes_fit/main_altitudes_studies.py
index 2209091f..accae7e1 100644
--- a/projects/altitude_spatial_model/altitudes_fit/main_altitudes_studies.py
+++ b/projects/altitude_spatial_model/altitudes_fit/main_altitudes_studies.py
@@ -10,7 +10,7 @@ mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
 import matplotlib
 matplotlib.use('Agg')
 
-from projects.altitude_spatial_model.altitudes_fit.plots.plot_histogram_altitude_studies import \
+from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.plots.plot_histogram_altitude_studies import \
     plot_shoe_plot_changes_against_altitude, plot_histogram_all_trends_against_altitudes, \
     plot_histogram_all_models_against_altitudes
 
@@ -20,11 +20,11 @@ from extreme_fit.model.result_from_model_fit.result_from_extremes.abstract_extra
 
 
 from extreme_fit.model.utils import set_seed_for_test
-from projects.altitude_spatial_model.altitudes_fit.plots.plot_coherence_curves import plot_coherence_curves
+from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.plots.plot_coherence_curves import plot_coherence_curves
 
 
 
-from projects.altitude_spatial_model.altitudes_fit.utils_altitude_studies_visualizer import load_visualizer_list
+from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.utils_altitude_studies_visualizer import load_visualizer_list
 
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import altitudes_for_groups
 
@@ -85,7 +85,6 @@ def plot_visualizers(massif_names, visualizer_list):
     # plot_shoe_plot_ratio_interval_size_against_altitude(massif_names, visualizer_list)
     for relative in [True, False]:
         plot_shoe_plot_changes_against_altitude(massif_names, visualizer_list, relative=relative)
-    # plot_coherence_curves(massif_names, visualizer_list)
     plot_coherence_curves(['Vanoise'], visualizer_list)
     pass
 
diff --git a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
index ffe76956..9e06b14b 100644
--- a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
+++ b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
@@ -1,20 +1,16 @@
 from collections import Counter
 from math import ceil, floor
-from multiprocessing import Pool
 from typing import List, Dict
 
 import matplotlib
 import matplotlib.pyplot as plt
 
 import numpy as np
-from cached_property import cached_property
 
-from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
-from extreme_data.meteo_france_data.scm_models_data.visualization.create_shifted_cmap import get_shifted_map, \
-    get_colors, ticks_values_and_labels_for_percentages, get_half_colormap, ticks_values_and_labels_for_positive_value, \
-    get_inverse_colormap, get_cmap_with_inverted_blue_and_green_channels, remove_the_extreme_colors
+from extreme_data.meteo_france_data.scm_models_data.visualization.create_shifted_cmap import get_inverse_colormap, \
+    remove_the_extreme_colors
 from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
-    SCM_STUDY_CLASS_TO_ABBREVIATION, ALL_ALTITUDES_WITHOUT_NAN
+    SCM_STUDY_CLASS_TO_ABBREVIATION
 from extreme_data.meteo_france_data.scm_models_data.visualization.plot_utils import plot_against_altitude
 from extreme_data.meteo_france_data.scm_models_data.visualization.study_visualizer import StudyVisualizer
 from extreme_fit.distribution.gev.gev_params import GevParams
@@ -23,16 +19,14 @@ from extreme_fit.function.param_function.linear_coef import LinearCoef
 from extreme_fit.model.margin_model.polynomial_margin_model.spatio_temporal_polynomial_model import \
     AbstractSpatioTemporalPolynomialModel
 from extreme_fit.model.margin_model.utils import MarginFitMethod
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import \
-    get_altitude_group_from_altitudes, HighAltitudeGroup, VeyHighAltitudeGroup, MidAltitudeGroup
+    get_altitude_group_from_altitudes, VeyHighAltitudeGroup, MidAltitudeGroup
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.one_fold_fit import \
     OneFoldFit
-from root_utils import NB_CORES
 from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
 from spatio_temporal_dataset.coordinates.temporal_coordinates.abstract_temporal_covariate_for_fit import \
     AnomalyTemperatureTemporalCovariate
-from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
 
 
 class AltitudesStudiesVisualizerForNonStationaryModels(StudyVisualizer):
diff --git a/projects/altitude_spatial_model/altitudes_fit/plots/__init__.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/__init__.py
similarity index 100%
rename from projects/altitude_spatial_model/altitudes_fit/plots/__init__.py
rename to projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/__init__.py
diff --git a/projects/altitude_spatial_model/altitudes_fit/plots/compute_histogram_change_in_total_snowfall.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/compute_histogram_change_in_total_snowfall.py
similarity index 100%
rename from projects/altitude_spatial_model/altitudes_fit/plots/compute_histogram_change_in_total_snowfall.py
rename to projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/compute_histogram_change_in_total_snowfall.py
diff --git a/projects/altitude_spatial_model/altitudes_fit/plots/plot_coherence_curves.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/plot_coherence_curves.py
similarity index 100%
rename from projects/altitude_spatial_model/altitudes_fit/plots/plot_coherence_curves.py
rename to projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/plot_coherence_curves.py
diff --git a/projects/altitude_spatial_model/altitudes_fit/plots/plot_histogram_altitude_studies.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/plot_histogram_altitude_studies.py
similarity index 84%
rename from projects/altitude_spatial_model/altitudes_fit/plots/plot_histogram_altitude_studies.py
rename to projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/plot_histogram_altitude_studies.py
index 394d25f7..98f4949f 100644
--- a/projects/altitude_spatial_model/altitudes_fit/plots/plot_histogram_altitude_studies.py
+++ b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plots/plot_histogram_altitude_studies.py
@@ -1,4 +1,3 @@
-import math
 from typing import List
 
 import numpy as np
@@ -17,7 +16,7 @@ from extreme_fit.model.result_from_model_fit.result_from_extremes.abstract_extra
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitudes_studies_visualizer_for_non_stationary_models import \
     AltitudesStudiesVisualizerForNonStationaryModels
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.one_fold_fit import OneFoldFit
-from projects.altitude_spatial_model.altitudes_fit.plots.compute_histogram_change_in_total_snowfall import \
+from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.plots.compute_histogram_change_in_total_snowfall import \
     compute_changes_in_total_snowfall
 
 
@@ -43,45 +42,6 @@ def plot_histogram_all_models_against_altitudes(massif_names, visualizer_list: L
         print(model_name_to_mean_percentage[model_name], model_name_to_mean_percentage_significant[model_name],
               model_name)
 
-    # # Plot part
-    # ax = plt.gca()
-    # width = 5
-    # size = 8
-    # legend_fontsize = 10
-    # labelsize = 10
-    # linewidth = 1
-    # tick_list = np.array([((len(visualizer_list) + 2) * i + (1 + len(visualizer_list) / 2)) * width
-    #                       for i in range(len(sorted_model_names))])
-    # for tick_middle, model_name in zip(tick_list, sorted_model_names):
-    #     x_shifted = [tick_middle + width * shift / 2 for shift in range(-3, 5, 2)]
-    #     percentages = model_name_to_percentages[model_name]
-    #     percentages_significant = model_name_to_percentages_significant[model_name]
-    #     colors = ['white', 'yellow', 'orange', 'red']
-    #     labels = ['{} m - {} m (\% out of {} massifs)'.format(1000 * i, 1000 * (i + 1),
-    #                                                           len(v.get_valid_names(massif_names))) for i, v in
-    #               enumerate(visualizer_list)]
-    #     for x, color, percentage, label, percentage_significant in zip(x_shifted, colors, percentages, labels,
-    #                                                                    percentages_significant):
-    #         ax.bar([x], [percentage], width=width, label=label,
-    #                linewidth=2 * linewidth, edgecolor='black', color=color)
-    #         heights = list(range(0, math.ceil(percentage_significant), 1))[::-1]
-    #         for height in heights:
-    #             ax.bar([x], [height], width=width, linewidth=linewidth, edgecolor='black', color=color)
-    #
-    # handles, labels = ax.get_legend_handles_labels()
-    # ax.legend(handles[:len(visualizer_list)], labels[:len(visualizer_list)], prop={'size': size})
-    # ax.set_xticklabels(sorted_model_names)
-    # ax.set_xticks(tick_list)
-    # ax.set_ylabel('Percentage of massifs (\%) ', fontsize=legend_fontsize)
-    # ax.set_xlabel('Models', fontsize=legend_fontsize)
-    # ax.set_ylim(bottom=0)
-    # ax.yaxis.grid()
-    # ax.tick_params(axis='both', which='major', labelsize=labelsize)
-    #
-    # visualizer.plot_name = 'All models'
-    # visualizer.show_or_save_to_file(add_classic_title=False, no_title=True)
-    # plt.close()
-
 
 def plot_histogram_all_trends_against_altitudes(massif_names, visualizer_list: List[
     AltitudesStudiesVisualizerForNonStationaryModels], with_significance=True):
diff --git a/projects/altitude_spatial_model/altitudes_fit/utils_altitude_studies_visualizer.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/utils_altitude_studies_visualizer.py
similarity index 96%
rename from projects/altitude_spatial_model/altitudes_fit/utils_altitude_studies_visualizer.py
rename to projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/utils_altitude_studies_visualizer.py
index 48463452..526f486b 100644
--- a/projects/altitude_spatial_model/altitudes_fit/utils_altitude_studies_visualizer.py
+++ b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/utils_altitude_studies_visualizer.py
@@ -1,6 +1,6 @@
 from extreme_fit.model.margin_model.polynomial_margin_model.utils import \
     ALTITUDINAL_GEV_MODELS_BASED_ON_POINTWISE_ANALYSIS
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitudes_studies_visualizer_for_non_stationary_models import \
     AltitudesStudiesVisualizerForNonStationaryModels
 
diff --git a/projects/altitude_spatial_model/altitudes_fit/two_fold_analysis/two_fold_datasets_generator.py b/projects/altitude_spatial_model/altitudes_fit/two_fold_analysis/two_fold_datasets_generator.py
index 024adfce..7864f6f9 100644
--- a/projects/altitude_spatial_model/altitudes_fit/two_fold_analysis/two_fold_datasets_generator.py
+++ b/projects/altitude_spatial_model/altitudes_fit/two_fold_analysis/two_fold_datasets_generator.py
@@ -2,7 +2,7 @@ from typing import Tuple, Dict, List
 
 from cached_property import cached_property
 
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
 from spatio_temporal_dataset.slicer.split import invert_s_split
 
diff --git a/projects/altitude_spatial_model/preliminary_analysis.py b/projects/altitude_spatial_model/preliminary_analysis.py
index 62987291..c0fb5408 100644
--- a/projects/altitude_spatial_model/preliminary_analysis.py
+++ b/projects/altitude_spatial_model/preliminary_analysis.py
@@ -13,7 +13,7 @@ from extreme_data.meteo_france_data.scm_models_data.visualization.plot_utils imp
 from extreme_data.meteo_france_data.scm_models_data.visualization.study_visualizer import StudyVisualizer
 from extreme_fit.distribution.gev.gev_params import GevParams
 from extreme_fit.utils import fit_linear_regression
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import altitudes_for_groups
 
 
diff --git a/projects/archive/gap_between_my_safran2019_and_safran_2019/main_gap_altitudes_studies.py b/projects/archive/gap_between_my_safran2019_and_safran_2019/main_gap_altitudes_studies.py
index 1341d0ce..add2d229 100644
--- a/projects/archive/gap_between_my_safran2019_and_safran_2019/main_gap_altitudes_studies.py
+++ b/projects/archive/gap_between_my_safran2019_and_safran_2019/main_gap_altitudes_studies.py
@@ -7,7 +7,7 @@ import matplotlib
 from extreme_data.meteo_france_data.scm_models_data.safran.gap_between_study import GapBetweenSafranSnowfall2019And2020, \
     GapBetweenSafranSnowfall2019AndMySafranSnowfall2019Recentered, \
     GapBetweenSafranSnowfall2019AndMySafranSnowfall2019NotRecentered
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 
 matplotlib.use('Agg')
 
diff --git a/projects/archive/seasonal_analysis/main_season_repartition_of_maxima.py b/projects/archive/seasonal_analysis/main_season_repartition_of_maxima.py
index c56e7e67..36521cdc 100644
--- a/projects/archive/seasonal_analysis/main_season_repartition_of_maxima.py
+++ b/projects/archive/seasonal_analysis/main_season_repartition_of_maxima.py
@@ -5,8 +5,7 @@ import calendar
 import numpy as np
 
 from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
-from extreme_data.meteo_france_data.scm_models_data.visualization.study_visualizer import StudyVisualizer
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import altitudes_for_groups, \
     get_altitude_group_from_altitudes
 
diff --git a/projects/exceeding_snow_loads/checks/mixed_distribution/mixed_distribution_impact.py b/projects/exceeding_snow_loads/checks/mixed_distribution/mixed_distribution_impact.py
index 1eeb3851..0878ab8b 100644
--- a/projects/exceeding_snow_loads/checks/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 extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import StudyVisualizerForNonStationaryTrends
+from extreme_trend.trend_test.visualizers import StudyVisualizerForNonStationaryTrends
 
 
 def mix_dsitrbution_impact():
diff --git a/projects/exceeding_snow_loads/checks/qqplot/main_qqplot_for_big_shapes.py b/projects/exceeding_snow_loads/checks/qqplot/main_qqplot_for_big_shapes.py
index 459b93eb..72c332a8 100644
--- a/projects/exceeding_snow_loads/checks/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 extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
 from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
     ALL_ALTITUDES_WITHOUT_NAN
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py b/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
index 762f45f5..0d5edcd0 100644
--- a/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
+++ b/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
@@ -11,7 +11,7 @@ from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.result_from_model_fit.result_from_extremes.abstract_extract_eurocode_return_level import \
     AbstractExtractEurocodeReturnLevel
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends
 from extreme_fit.distribution.gev.gev_params import GevParams
 from projects.exceeding_snow_loads.section_data.main_example_swe_total_plot import tuples_for_examples_paper1
diff --git a/projects/exceeding_snow_loads/checks/uncertainty_interval_size.py b/projects/exceeding_snow_loads/checks/uncertainty_interval_size.py
index 05cd8c07..350a13c6 100644
--- a/projects/exceeding_snow_loads/checks/uncertainty_interval_size.py
+++ b/projects/exceeding_snow_loads/checks/uncertainty_interval_size.py
@@ -3,7 +3,7 @@ from typing import Dict
 import pandas as pd
 
 from extreme_data.eurocode_data.utils import EUROCODE_ALTITUDES
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends, ModelSubsetForUncertainty
 
 
diff --git a/projects/exceeding_snow_loads/checks/without_maximum/study_visualizer_for_fit_witout_maximum.py b/projects/exceeding_snow_loads/checks/without_maximum/study_visualizer_for_fit_witout_maximum.py
index c33fb52e..ee5dc723 100644
--- a/projects/exceeding_snow_loads/checks/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 extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py b/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
index cf18102b..74e3698c 100644
--- a/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
+++ b/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
@@ -2,9 +2,6 @@ from multiprocessing.pool import Pool
 
 import matplotlib as mpl
 
-from projects.exceeding_snow_loads.checks.qqplot.plot_qqplot import \
-    plot_intensity_against_gumbel_quantile_for_3_examples, plot_full_diagnostic
-from projects.exceeding_snow_loads.section_results.plot_selection_curves import plot_selection_curves
 from projects.exceeding_snow_loads.section_results.plot_trend_curves import plot_trend_map, plot_trend_curves
 from projects.exceeding_snow_loads.section_results.plot_uncertainty_histogram import plot_uncertainty_histogram
 
@@ -14,10 +11,9 @@ mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
 from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal, CrocusSnowLoadEurocode
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends, ModelSubsetForUncertainty
-from extreme_trend.visualizers.utils import load_altitude_to_visualizer
-from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs
+from extreme_trend.trend_test.visualizers import load_altitude_to_visualizer
 from projects.exceeding_snow_loads.utils import paper_study_classes, paper_altitudes
 from root_utils import NB_CORES
 
diff --git a/projects/exceeding_snow_loads/section_results/main_shape_repartition.py b/projects/exceeding_snow_loads/section_results/main_shape_repartition.py
index 9416c10c..4a0592b3 100644
--- a/projects/exceeding_snow_loads/section_results/main_shape_repartition.py
+++ b/projects/exceeding_snow_loads/section_results/main_shape_repartition.py
@@ -1,7 +1,7 @@
 from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
-from extreme_trend.visualizers.study_visualizer_for_shape_repartition import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForShape
-from extreme_trend.visualizers.utils import load_altitude_to_visualizer
+from extreme_trend.trend_test.visualizers import load_altitude_to_visualizer
 
 
 def main_shape_repartition(altitudes, massif_names=None,
diff --git a/projects/exceeding_snow_loads/section_results/plot_diagnosis_risk.py b/projects/exceeding_snow_loads/section_results/plot_diagnosis_risk.py
index f15a554d..72983ab4 100644
--- a/projects/exceeding_snow_loads/section_results/plot_diagnosis_risk.py
+++ b/projects/exceeding_snow_loads/section_results/plot_diagnosis_risk.py
@@ -2,7 +2,7 @@ import matplotlib.pyplot as plt
 
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import ModelSubsetForUncertainty
+from extreme_trend.trend_test.visualizers import ModelSubsetForUncertainty
 
 
 def plot_diagnosis_risk(altitude_to_visualizer):
diff --git a/projects/exceeding_snow_loads/section_results/plot_selection_curves.py b/projects/exceeding_snow_loads/section_results/plot_selection_curves.py
index b31ed895..7800af22 100644
--- a/projects/exceeding_snow_loads/section_results/plot_selection_curves.py
+++ b/projects/exceeding_snow_loads/section_results/plot_selection_curves.py
@@ -3,7 +3,7 @@ import matplotlib.pyplot as plt
 
 from extreme_data.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes
 from projects.exceeding_snow_loads.utils import dpi_paper1_figure, get_trend_test_name
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import StudyVisualizerForNonStationaryTrends
+from extreme_trend.trend_test.visualizers import StudyVisualizerForNonStationaryTrends
 
 
 def permute(l, permutation):
diff --git a/projects/exceeding_snow_loads/section_results/plot_trend_curves.py b/projects/exceeding_snow_loads/section_results/plot_trend_curves.py
index 4ab2b89d..d205aff0 100644
--- a/projects/exceeding_snow_loads/section_results/plot_trend_curves.py
+++ b/projects/exceeding_snow_loads/section_results/plot_trend_curves.py
@@ -4,7 +4,7 @@ import matplotlib.pyplot as plt
 from extreme_data.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy
 from extreme_data.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes
 from projects.exceeding_snow_loads.utils import dpi_paper1_figure
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends
 
 
diff --git a/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py b/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
index 74767c33..66677150 100644
--- a/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
+++ b/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
@@ -10,9 +10,9 @@ import numpy as np
 
 from extreme_data.eurocode_data.utils import EUROCODE_RETURN_LEVEL_STR, EUROCODE_ALTITUDES, \
     YEAR_OF_INTEREST_FOR_RETURN_LEVEL
-from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy, filled_marker_legend_list2
+from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
 from projects.exceeding_snow_loads.utils import dpi_paper1_figure
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers import \
     StudyVisualizerForNonStationaryTrends, ModelSubsetForUncertainty
 from extreme_fit.model.result_from_model_fit.result_from_extremes.abstract_extract_eurocode_return_level import \
     AbstractExtractEurocodeReturnLevel
diff --git a/projects/exceeding_snow_loads/section_results/plot_uncertainty_histogram.py b/projects/exceeding_snow_loads/section_results/plot_uncertainty_histogram.py
index b5772fa1..4dd896b3 100644
--- a/projects/exceeding_snow_loads/section_results/plot_uncertainty_histogram.py
+++ b/projects/exceeding_snow_loads/section_results/plot_uncertainty_histogram.py
@@ -6,7 +6,7 @@ from extreme_data.eurocode_data.utils import EUROCODE_ALTITUDES
 from extreme_fit.model.result_from_model_fit.result_from_extremes.abstract_extract_eurocode_return_level import \
     AbstractExtractEurocodeReturnLevel
 from projects.exceeding_snow_loads.utils import dpi_paper1_figure
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+from extreme_trend.trend_test.visualizers 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/utils.py b/projects/exceeding_snow_loads/utils.py
index e63910e0..c016a7ae 100644
--- a/projects/exceeding_snow_loads/utils.py
+++ b/projects/exceeding_snow_loads/utils.py
@@ -1,21 +1,15 @@
-from enum import Enum
-
-from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal, CrocusSnowLoadEurocode, \
-    CrocusSnowLoad3Days
+from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal, CrocusSnowLoadEurocode
 from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
     ALL_ALTITUDES_WITHOUT_NAN
-from extreme_trend.trend_test_one_parameter.gev_trend_test_one_parameter import GevVersusGev, GevScaleTrendTest, \
-    GevLocationTrendTest, GevShapeTrendTest
-from extreme_trend.trend_test_one_parameter.gumbel_trend_test_one_parameter import \
-    GumbelVersusGumbel, GumbelLocationTrendTest, GumbelScaleTrendTest, GevStationaryVersusGumbel
-from extreme_trend.trend_test_three_parameters.gev_trend_test_three_parameters import \
-    GevLocationAndScaleTrendTestAgainstGumbel, GevLocationAndScaleAndShapeTrendTest, \
-    GevLocationQuadraticTrendTestAgainstGumbel, \
-    GevScaleQuadraticTrendTestAgainstGumbel
-from extreme_trend.trend_test_two_parameters.gev_trend_test_two_parameters import \
-    GevLocationAgainstGumbel, GevScaleAgainstGumbel, GevLocationAndScaleTrendTest, GevScaleAndShapeTrendTest, \
-    GevLocationAndShapeTrendTest, GevQuadraticLocationTrendTest, GevQuadraticScaleTrendTest
-from extreme_trend.trend_test_two_parameters.gumbel_test_two_parameters import \
+from extreme_trend.trend_test.trend_test_one_parameter.gev_trend_test_one_parameter import GevVersusGev, GevScaleTrendTest, \
+    GevLocationTrendTest
+from extreme_trend.trend_test.trend_test_one_parameter.gumbel_trend_test_one_parameter import GumbelVersusGumbel, \
+    GevStationaryVersusGumbel, GumbelLocationTrendTest, GumbelScaleTrendTest
+from extreme_trend.trend_test.trend_test_three_parameters.gev_trend_test_three_parameters import \
+    GevLocationAndScaleTrendTestAgainstGumbel
+from extreme_trend.trend_test.trend_test_two_parameters.gev_trend_test_two_parameters import GevLocationAgainstGumbel, \
+    GevScaleAgainstGumbel, GevLocationAndScaleTrendTest, GevQuadraticLocationTrendTest, GevQuadraticScaleTrendTest
+from extreme_trend.trend_test.trend_test_two_parameters.gumbel_test_two_parameters import \
     GumbelLocationAndScaleTrendTest, GumbelLocationQuadraticTrendTest, GumbelScaleQuadraticTrendTest
 
 paper_altitudes = ALL_ALTITUDES_WITHOUT_NAN
@@ -45,31 +39,8 @@ ALTITUDE_TO_GREY_MASSIF = {
     1800: [],
 }
 
-NON_STATIONARY_TREND_TEST_PAPER_2 = [
-    # Gumbel models
-    GumbelVersusGumbel,
-    GumbelLocationTrendTest,
-    GumbelScaleTrendTest,
-    GumbelLocationAndScaleTrendTest,
-    # GEV models with constant shape
-    GevVersusGev,
-    GevLocationTrendTest,
-    GevScaleTrendTest,
-    GevLocationAndScaleTrendTest,
-    # GEV models with linear shape
-    #GevShapeTrendTest,
-    #GevLocationAndShapeTrendTest, GevScaleAndShapeTrendTest, GevLocationAndScaleAndShapeTrendTest,
-    # Quadratic model for the Gev/Gumbel and for the location/scale
-    GevQuadraticLocationTrendTest, GevQuadraticScaleTrendTest, GumbelLocationQuadraticTrendTest, GumbelScaleQuadraticTrendTest,
-]
-
 
 def get_trend_test_name(trend_test_class):
     years = list(range(10))
     trend_test = trend_test_class(years, years, None)
     return trend_test.name
-
-
-if __name__ == '__main__':
-    for trend_test_class in NON_STATIONARY_TREND_TEST_PAPER_2:
-        print(get_trend_test_name(trend_test_class))
diff --git a/projects/projected_snowfall/elevation_temporal_model_for_projections/abstract_ensemble_fit.py b/projects/projected_snowfall/elevation_temporal_model_for_projections/abstract_ensemble_fit.py
index ad85be10..6e5d9e03 100644
--- a/projects/projected_snowfall/elevation_temporal_model_for_projections/abstract_ensemble_fit.py
+++ b/projects/projected_snowfall/elevation_temporal_model_for_projections/abstract_ensemble_fit.py
@@ -1,8 +1,7 @@
-from typing import Dict, Tuple, List
+from typing import Dict, Tuple
 
 from extreme_fit.model.margin_model.utils import MarginFitMethod
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
-from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import DefaultAltitudeGroup
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 
 
 class AbstractEnsembleFit(object):
diff --git a/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_projection_ensemble.py b/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_projection_ensemble.py
index e7d9e38e..06f27ada 100644
--- a/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_projection_ensemble.py
+++ b/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_projection_ensemble.py
@@ -3,12 +3,12 @@ from typing import List
 from extreme_fit.model.margin_model.polynomial_margin_model.spatio_temporal_polynomial_model import \
     AbstractSpatioTemporalPolynomialModel
 from extreme_fit.model.margin_model.utils import MarginFitMethod
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import \
-    get_altitude_group_from_altitudes, get_altitude_class_from_altitudes
-from projects.altitude_spatial_model.altitudes_fit.plots.plot_histogram_altitude_studies import \
+    get_altitude_class_from_altitudes
+from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.plots.plot_histogram_altitude_studies import \
     plot_histogram_all_trends_against_altitudes, plot_shoe_plot_changes_against_altitude
-from projects.altitude_spatial_model.altitudes_fit.utils_altitude_studies_visualizer import compute_and_assign_max_abs
+from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.utils_altitude_studies_visualizer import compute_and_assign_max_abs
 from projects.projected_snowfall.elevation_temporal_model_for_projections.independent_ensemble_fit.independent_ensemble_fit import \
     IndependentEnsembleFit
 
diff --git a/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_sensitivity.py b/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_sensitivity.py
index 72392ee5..53058fca 100644
--- a/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_sensitivity.py
+++ b/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_sensitivity.py
@@ -8,12 +8,8 @@ from extreme_data.meteo_france_data.scm_models_data.utils import Season
 from extreme_fit.model.margin_model.polynomial_margin_model.spatio_temporal_polynomial_model import \
     AbstractSpatioTemporalPolynomialModel
 from extreme_fit.model.margin_model.utils import MarginFitMethod
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import \
-    get_altitude_group_from_altitudes, get_altitude_class_from_altitudes, get_linestyle_for_altitude_class
-from projects.altitude_spatial_model.altitudes_fit.plots.plot_histogram_altitude_studies import \
-    plot_histogram_all_trends_against_altitudes, plot_shoe_plot_changes_against_altitude
-from projects.altitude_spatial_model.altitudes_fit.utils_altitude_studies_visualizer import compute_and_assign_max_abs
+    get_altitude_class_from_altitudes, get_linestyle_for_altitude_class
 from projects.projected_snowfall.elevation_temporal_model_for_projections.independent_ensemble_fit.independent_ensemble_fit import \
     IndependentEnsembleFit
 from projects.projected_snowfall.elevation_temporal_model_for_projections.visualizer_for_projection_ensemble import \
diff --git a/projects/projected_snowfall/evaluation/comparison_historical_visualizer.py b/projects/projected_snowfall/evaluation/comparison_historical_visualizer.py
index e2c26b2e..098b5d5e 100644
--- a/projects/projected_snowfall/evaluation/comparison_historical_visualizer.py
+++ b/projects/projected_snowfall/evaluation/comparison_historical_visualizer.py
@@ -10,9 +10,8 @@ from extreme_data.meteo_france_data.adamont_data.adamont_scenario import gcm_rcm
 from extreme_data.meteo_france_data.adamont_data.adamont_studies import AdamontStudies
 from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
 from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
-    SCM_STUDY_CLASS_TO_ABBREVIATION, ADAMONT_STUDY_CLASS_TO_ABBREVIATION
+    ADAMONT_STUDY_CLASS_TO_ABBREVIATION
 from extreme_data.meteo_france_data.scm_models_data.visualization.study_visualizer import StudyVisualizer
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
 
 
 class ComparisonHistoricalVisualizer(StudyVisualizer):
diff --git a/projects/projected_snowfall/evaluation/main_comparison_on_quantile_period.py b/projects/projected_snowfall/evaluation/main_comparison_on_quantile_period.py
index 5eb9eb38..042cc1df 100644
--- a/projects/projected_snowfall/evaluation/main_comparison_on_quantile_period.py
+++ b/projects/projected_snowfall/evaluation/main_comparison_on_quantile_period.py
@@ -7,18 +7,15 @@ from extreme_data.meteo_france_data.adamont_data.adamont_gcm_rcm_couples import
     get_year_min_and_year_max_used_to_compute_quantile, gcm_rcm_couple_to_color
 from extreme_data.meteo_france_data.adamont_data.adamont_scenario import AdamontScenario, \
     gcm_rcm_couple_to_str, get_gcm_rcm_couples
-from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day, \
-    SafranSnowfallCenterOnDay1dayMeanRate, SafranSnowfallCenterOnDay1day
-from extreme_data.meteo_france_data.scm_models_data.safran.safran_max_snowf import SafranSnowfall2020, \
-    SafranSnowfall2019
-from extreme_data.meteo_france_data.scm_models_data.safran.safran_variable import SafranSnowfallVariableCenterOnDay
+from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
+from extreme_data.meteo_france_data.scm_models_data.safran.safran_max_snowf import SafranSnowfall2020
 
 matplotlib.use('Agg')
 
 import matplotlib.pyplot as plt
 from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
     STUDY_CLASS_TO_ABBREVIATION
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 
 
 def compute_bias_and_display_it(ax,
diff --git a/projects/projected_snowfall/evaluation/main_comparison_reanalysis.py b/projects/projected_snowfall/evaluation/main_comparison_reanalysis.py
index 4237d79c..dc0ab6ea 100644
--- a/projects/projected_snowfall/evaluation/main_comparison_reanalysis.py
+++ b/projects/projected_snowfall/evaluation/main_comparison_reanalysis.py
@@ -10,7 +10,7 @@ from extreme_data.meteo_france_data.scm_models_data.safran.gap_between_study imp
     GapBetweenSafranSnowfall2019AndMySafranSnowfall2019RecenteredMeanRate
 from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
     STUDY_CLASS_TO_ABBREVIATION
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 
 
 def comparison_plot(altitude_studies: AltitudesStudies, massif_name):
diff --git a/projects/projected_snowfall/main_inquiry_weird_pattern.py b/projects/projected_snowfall/main_inquiry_weird_pattern.py
index 718ba847..4cc564ef 100644
--- a/projects/projected_snowfall/main_inquiry_weird_pattern.py
+++ b/projects/projected_snowfall/main_inquiry_weird_pattern.py
@@ -1,6 +1,6 @@
 from extreme_data.meteo_france_data.adamont_data.adamont.adamont_snowfall import AdamontSnowfall
 from extreme_data.meteo_france_data.adamont_data.adamont_scenario import AdamontScenario
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 
 def main_rcm():
     for rcm in ['CCLM4-8-17', 'RACMO22E', 'RCA4', 'ALADIN63', 'ALADIN53']:
diff --git a/test/test_extreme_fit/test_estimator/test_gev_spatio_temporal_extremes_mle.py b/test/test_extreme_fit/test_estimator/test_gev_spatio_temporal_extremes_mle.py
index 2ab682cc..f40099cb 100644
--- a/test/test_extreme_fit/test_estimator/test_gev_spatio_temporal_extremes_mle.py
+++ b/test/test_extreme_fit/test_estimator/test_gev_spatio_temporal_extremes_mle.py
@@ -1,16 +1,9 @@
 import unittest
-from random import sample
 
-from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day, SafranPrecipitation1Day
-from extreme_fit.model.margin_model.polynomial_margin_model.gev_altitudinal_models import \
-    NonStationaryAltitudinalLocationQuadraticScaleLinearCrossTermForLocation, \
-    NonStationaryAltitudinalLocationQuadraticCrossTermForLocation, NonStationaryAltitudinalLocationLinear, \
-    NonStationaryAltitudinalLocationLinearCrossTermForLocation
-from extreme_fit.model.margin_model.polynomial_margin_model.utils import ALTITUDINAL_GEV_MODELS, \
-    MODELS_THAT_SHOULD_RAISE_AN_ASSERTION_ERROR, VARIOUS_SPATIO_TEMPORAL_MODELS, ALTITUDINAL_GUMBEL_MODELS
+from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.two_fold_analysis.two_fold_datasets_generator import \
     TwoFoldDatasetsGenerator
 from projects.altitude_spatial_model.altitudes_fit.two_fold_analysis.two_fold_fit import TwoFoldFit
diff --git a/test/test_extreme_fit/test_estimator/test_spatio_temporal_estimator/test_gev_spatio_temporal_polynomial_extremes_mle.py b/test/test_extreme_fit/test_estimator/test_spatio_temporal_estimator/test_gev_spatio_temporal_polynomial_extremes_mle.py
index 7959897d..e0ba51f1 100644
--- a/test/test_extreme_fit/test_estimator/test_spatio_temporal_estimator/test_gev_spatio_temporal_polynomial_extremes_mle.py
+++ b/test/test_extreme_fit/test_estimator/test_spatio_temporal_estimator/test_gev_spatio_temporal_polynomial_extremes_mle.py
@@ -3,34 +3,20 @@ import unittest
 import numpy as np
 import pandas as pd
 
-from extreme_fit.distribution.gev.gev_params import GevParams
 from extreme_fit.estimator.margin_estimator.utils import fitted_linear_margin_estimator_short
-from extreme_fit.model.margin_model.polynomial_margin_model.gev_altitudinal_models import StationaryAltitudinal
-from extreme_fit.model.margin_model.polynomial_margin_model.models_based_on_pariwise_analysis.gev_with_constant_shape_wrt_altitude import \
-    AltitudinalShapeConstantTimeLocationLinear
-from extreme_fit.model.margin_model.polynomial_margin_model.models_based_on_pariwise_analysis.gev_with_linear_shape_wrt_altitude import \
-    AltitudinalShapeLinearTimeLocationLinear, AltitudinalShapeLinearTimeLocScaleLinear, \
-    AltitudinalShapeLinearTimeStationary
-from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import \
-    NonStationaryQuadraticLocationModel, \
-    NonStationaryQuadraticScaleModel, NonStationaryQuadraticLocationGumbelModel, NonStationaryQuadraticScaleGumbelModel
 from extreme_fit.model.margin_model.polynomial_margin_model.utils import \
     ALTITUDINAL_GEV_MODELS_BASED_ON_POINTWISE_ANALYSIS
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
 from extreme_fit.model.result_from_model_fit.result_from_extremes.eurocode_return_level_uncertainties import \
     EurocodeConfidenceIntervalFromExtremes
-from extreme_trend.abstract_gev_trend_test import fitted_linear_margin_estimator
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.utils import r, set_seed_r
-from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
 from spatio_temporal_dataset.coordinates.spatial_coordinates.abstract_spatial_coordinates import \
     AbstractSpatialCoordinates
 from spatio_temporal_dataset.coordinates.spatio_temporal_coordinates.abstract_spatio_temporal_coordinates import \
     AbstractSpatioTemporalCoordinates
-from spatio_temporal_dataset.coordinates.temporal_coordinates.abstract_temporal_coordinates import \
-    AbstractTemporalCoordinates
 from spatio_temporal_dataset.coordinates.temporal_coordinates.generated_temporal_coordinates import \
     ConsecutiveTemporalCoordinates
 from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
diff --git a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_bayesian.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_bayesian.py
index 53bac7a2..a5c045e9 100644
--- a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_bayesian.py
+++ b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_bayesian.py
@@ -3,7 +3,7 @@ import unittest
 import numpy as np
 import pandas as pd
 
-from extreme_trend.abstract_gev_trend_test import fitted_linear_margin_estimator
+from extreme_trend.trend_test.abstract_gev_trend_test import fitted_linear_margin_estimator
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel, \
diff --git a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_gumbel.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_gumbel.py
index b790d0ab..7a2863f3 100644
--- a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_gumbel.py
+++ b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_gumbel.py
@@ -3,7 +3,7 @@ import unittest
 import numpy as np
 import pandas as pd
 
-from extreme_trend.abstract_gev_trend_test import fitted_linear_margin_estimator
+from extreme_trend.trend_test.abstract_gev_trend_test import fitted_linear_margin_estimator
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import GumbelTemporalModel
diff --git a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_l_moments.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_l_moments.py
index 78a933af..15304370 100644
--- a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_l_moments.py
+++ b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_l_moments.py
@@ -3,11 +3,11 @@ import unittest
 import numpy as np
 import pandas as pd
 
-from extreme_trend.abstract_gev_trend_test import fitted_linear_margin_estimator
+from extreme_trend.trend_test.abstract_gev_trend_test import fitted_linear_margin_estimator
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel, \
-    NonStationaryLocationTemporalModel, NonStationaryLocationAndScaleTemporalModel
+    NonStationaryLocationTemporalModel
 from extreme_fit.model.utils import r, set_seed_r
 from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
 from spatio_temporal_dataset.coordinates.temporal_coordinates.abstract_temporal_coordinates import \
diff --git a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_mle.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_mle.py
index 0a2796f0..d0682e18 100644
--- a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_mle.py
+++ b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_mle.py
@@ -3,7 +3,7 @@ import unittest
 import numpy as np
 import pandas as pd
 
-from extreme_trend.abstract_gev_trend_test import fitted_linear_margin_estimator
+from extreme_trend.trend_test.abstract_gev_trend_test import fitted_linear_margin_estimator
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel, \
diff --git a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py
index 1f8a50ed..95add8ef 100644
--- a/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py
+++ b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py
@@ -6,7 +6,7 @@ import pandas as pd
 from extreme_fit.distribution.gev.gev_params import GevParams
 from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
     NonStationaryQuadraticScaleModel, NonStationaryQuadraticLocationGumbelModel, NonStationaryQuadraticScaleGumbelModel
-from extreme_trend.abstract_gev_trend_test import fitted_linear_margin_estimator
+from extreme_trend.trend_test.abstract_gev_trend_test import fitted_linear_margin_estimator
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
 from extreme_fit.model.utils import r, set_seed_r
diff --git a/test/test_extreme_trend/test_extreme_trend.py b/test/test_extreme_trend/test_trend_test.py
similarity index 60%
rename from test/test_extreme_trend/test_extreme_trend.py
rename to test/test_extreme_trend/test_trend_test.py
index 9f1dec8e..adcd8ca9 100644
--- a/test/test_extreme_trend/test_extreme_trend.py
+++ b/test/test_extreme_trend/test_trend_test.py
@@ -1,8 +1,8 @@
 import unittest
 
 from extreme_fit.distribution.gev.gev_params import GevParams
-from extreme_trend.trend_test_one_parameter.gumbel_trend_test_one_parameter import GumbelVersusGumbel
-from projects.exceeding_snow_loads.utils import NON_STATIONARY_TREND_TEST_PAPER_1, NON_STATIONARY_TREND_TEST_PAPER_2
+from extreme_trend.trend_test.trend_test_one_parameter.gumbel_trend_test_one_parameter import GumbelVersusGumbel
+from projects.exceeding_snow_loads.utils import NON_STATIONARY_TREND_TEST_PAPER_1
 
 
 class TestTrendAnalysis(unittest.TestCase):
@@ -13,14 +13,6 @@ class TestTrendAnalysis(unittest.TestCase):
         for trend_test_class, nb in zip(trend_test_classes, nb_expected):
             self.assertEqual(trend_test_class.total_number_of_parameters_for_unconstrained_model, nb)
 
-    # def test_nb_parameters_paper2(self):
-    #     trend_test_classes = NON_STATIONARY_TREND_TEST_PAPER_2
-    #     nb_expected = [2, 3, 3, 4,
-    #                    3, 4, 4, 5,
-    #                    4, 5, 5, 6]
-    #     for trend_test_class, nb in zip(trend_test_classes, nb_expected):
-    #         self.assertEqual(trend_test_class.total_number_of_parameters_for_unconstrained_model, nb)
-
     def test_anderson_goodness_of_fit(self):
         nb_data = 50
         years = list(range(nb_data))
diff --git a/test/test_projects/test_altitude_spatial/test_one_fold_fit.py b/test/test_projects/test_altitude_spatial/test_one_fold_fit.py
index f9397686..e7fa22d4 100644
--- a/test/test_projects/test_altitude_spatial/test_one_fold_fit.py
+++ b/test/test_projects/test_altitude_spatial/test_one_fold_fit.py
@@ -4,14 +4,13 @@ from extreme_data.meteo_france_data.adamont_data.adamont.adamont_snowfall import
 from extreme_data.meteo_france_data.adamont_data.adamont_scenario import AdamontScenario
 from extreme_data.meteo_france_data.adamont_data.cmip5.temperature_to_year import temperature_minmax_to_year_minmax
 from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
-from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel
 from extreme_fit.model.margin_model.polynomial_margin_model.gev_altitudinal_models import StationaryAltitudinal
 from extreme_fit.model.margin_model.polynomial_margin_model.models_based_on_pariwise_analysis.gev_with_constant_shape_wrt_altitude import \
     AltitudinalShapeConstantTimeLocationLinear, AltitudinalShapeConstantTimeScaleLinear, \
     AltitudinalShapeConstantTimeLocScaleLinear
 from extreme_fit.model.margin_model.polynomial_margin_model.utils import \
     ALTITUDINAL_GEV_MODELS_BASED_ON_POINTWISE_ANALYSIS
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import VeyHighAltitudeGroup
 from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.one_fold_fit import OneFoldFit
 from spatio_temporal_dataset.coordinates.temporal_coordinates.abstract_temporal_covariate_for_fit import \
diff --git a/test/test_projects/test_contrasting/test_altitudes_studies.py b/test/test_projects/test_contrasting/test_altitudes_studies.py
index 6ef79a4f..c1525de2 100644
--- a/test/test_projects/test_contrasting/test_altitudes_studies.py
+++ b/test/test_projects/test_contrasting/test_altitudes_studies.py
@@ -3,7 +3,7 @@ import unittest
 from extreme_data.meteo_france_data.adamont_data.adamont.adamont_snowfall import AdamontSnowfall
 from extreme_data.meteo_france_data.adamont_data.adamont_scenario import AdamontScenario
 from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from spatio_temporal_dataset.slicer.split import Split
 
 
diff --git a/test/test_projects/test_contrasting/test_two_fold_datasets_generator.py b/test/test_projects/test_contrasting/test_two_fold_datasets_generator.py
index 9cbf5a16..2a1e6e7c 100644
--- a/test/test_projects/test_contrasting/test_two_fold_datasets_generator.py
+++ b/test/test_projects/test_contrasting/test_two_fold_datasets_generator.py
@@ -2,7 +2,7 @@ import unittest
 import numpy as np
 
 from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.two_fold_analysis.two_fold_datasets_generator import TwoFoldDatasetsGenerator
 from spatio_temporal_dataset.slicer.split import Split
 
diff --git a/test/test_projects/test_contrasting/test_two_fold_fit.py b/test/test_projects/test_contrasting/test_two_fold_fit.py
index eb89f82d..f34e8c28 100644
--- a/test/test_projects/test_contrasting/test_two_fold_fit.py
+++ b/test/test_projects/test_contrasting/test_two_fold_fit.py
@@ -6,7 +6,7 @@ from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranS
 from extreme_fit.model.margin_model.linear_margin_model.linear_margin_model import ConstantMarginModel
 from extreme_fit.model.margin_model.utils import MarginFitMethod
 from extreme_fit.model.utils import set_seed_for_test
-from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
+from extreme_data.meteo_france_data.scm_models_data.altitudes_studies import AltitudesStudies
 from projects.altitude_spatial_model.altitudes_fit.two_fold_analysis.two_fold_datasets_generator import TwoFoldDatasetsGenerator
 from projects.altitude_spatial_model.altitudes_fit.two_fold_analysis.two_fold_detail_fit import TwoFoldModelFit
 from projects.altitude_spatial_model.altitudes_fit.two_fold_analysis.two_fold_fit import TwoFoldFit
diff --git a/test/test_projects/test_exceeding_snow_loads/test_results.py b/test/test_projects/test_exceeding_snow_loads/test_results.py
index 79fca2df..1b3c79ef 100644
--- a/test/test_projects/test_exceeding_snow_loads/test_results.py
+++ b/test/test_projects/test_exceeding_snow_loads/test_results.py
@@ -1,14 +1,5 @@
 import unittest
 
-from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
-from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
-    ConfidenceIntervalMethodFromExtremes
-from extreme_trend.visualizers.utils import load_altitude_to_visualizer
-from projects.exceeding_snow_loads.section_results.plot_selection_curves import plot_selection_curves
-from projects.exceeding_snow_loads.section_results.plot_trend_curves import plot_trend_curves, plot_trend_map
-from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs
-from projects.exceeding_snow_loads.section_results.plot_uncertainty_histogram import plot_uncertainty_histogram
-import matplotlib.pyplot as plt
 
 class TestResults(unittest.TestCase):
     pass
-- 
GitLab