diff --git a/experiment/meteo_france_data/scm_models_data/abstract_study.py b/experiment/meteo_france_data/scm_models_data/abstract_study.py
index 7badd0f55784a0ad7d0dccd96ff44b01d73aa809..96c348f2c10c40d765f908e907df8ffb4a3b279c 100644
--- a/experiment/meteo_france_data/scm_models_data/abstract_study.py
+++ b/experiment/meteo_france_data/scm_models_data/abstract_study.py
@@ -18,7 +18,7 @@ from netCDF4 import Dataset
 from experiment.meteo_france_data.scm_models_data.abstract_variable import AbstractVariable
 from experiment.meteo_france_data.scm_models_data.scm_constants import ALTITUDES, ZS_INT_23, ZS_INT_MASK, LONGITUDES, \
     LATITUDES
-from experiment.meteo_france_data.visualization.utils import get_km_formatter
+from experiment.meteo_france_data.scm_models_data.visualization.utils import get_km_formatter
 from extreme_estimator.extreme_models.margin_model.margin_function.abstract_margin_function import \
     AbstractMarginFunction
 from extreme_estimator.margin_fits.plot.create_shifted_cmap import get_color_rbga_shifted, create_colorbase_axis
diff --git a/experiment/meteo_france_data/visualization/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/__init__.py
similarity index 100%
rename from experiment/meteo_france_data/visualization/__init__.py
rename to experiment/meteo_france_data/scm_models_data/visualization/__init__.py
diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/__init__.py
similarity index 100%
rename from experiment/meteo_france_data/visualization/hypercube_visualization/__init__.py
rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/__init__.py
diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
similarity index 97%
rename from experiment/meteo_france_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
index d8eadaaed3570b701396d3ae29b3d3ebbf179ef5..72d51cc79c621c3102524a8a0a2531e2b5791756 100644
--- a/experiment/meteo_france_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
@@ -5,7 +5,7 @@ from typing import Dict, Tuple
 import matplotlib.pyplot as plt
 import pandas as pd
 
-from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer
+from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer
 from utils import cached_property, VERSION_TIME, get_display_name_from_object_type
 
 
diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py
similarity index 97%
rename from experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py
rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py
index 2e9beb56dc713df88e58b74875aeac9890c840e7..c45e49121b597dbb184119fe8498971840b7001d 100644
--- a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py
@@ -1,14 +1,11 @@
-from typing import List
-
 import matplotlib.pyplot as plt
 import numpy as np
 import pandas as pd
 
-from experiment.meteo_france_data.visualization.hypercube_visualization.abstract_hypercube_visualizer import \
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.abstract_hypercube_visualizer import \
     AbstractHypercubeVisualizer
-from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer
+from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer
 from experiment.trend_analysis.univariate_test.abstract_univariate_test import AbstractUnivariateTest
-from utils import get_display_name_from_object_type
 
 ALTITUDES_XLABEL = 'altitudes'
 
diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py
similarity index 91%
rename from experiment/meteo_france_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py
rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py
index 3009fd26cd76c9c1cebeeb6f0c858279f61bc03f..e7c000b8dab37b45aa1c2ffffa277d8fdff00592 100644
--- a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py
@@ -1,6 +1,6 @@
 import numpy as np
 
-from experiment.meteo_france_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \
+from experiment.meteo_france_data.scm_models_data.visualization import \
     AltitudeHypercubeVisualizer
 
 
diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py
similarity index 91%
rename from experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py
rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py
index cc84a572b4a91c00a7dedb94a14fc71157cf9234..4021a1015aea172caa70373075f0b9e5ecef60eb 100644
--- a/experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py
@@ -1,16 +1,16 @@
 import time
-from itertools import product
 from collections import OrderedDict
+from itertools import product
 
-from experiment.meteo_france_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \
+from experiment.meteo_france_data.scm_models_data.visualization import \
     AltitudeHypercubeVisualizer
-from experiment.meteo_france_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \
+from experiment.meteo_france_data.scm_models_data.visualization import \
     Altitude_Hypercube_Year_Visualizer
-from experiment.meteo_france_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \
+from experiment.meteo_france_data.scm_models_data.visualization import \
     QuantityAltitudeHypercubeVisualizer
-from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import ALL_ALTITUDES, \
+from experiment.meteo_france_data.scm_models_data.visualization import ALL_ALTITUDES, \
     SCM_STUDIES, study_iterator, study_iterator_global
-from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer
+from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer
 from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest, \
     GevScaleChangePointTest, GevShapeChangePointTest
 from utils import get_display_name_from_object_type
@@ -102,7 +102,8 @@ def full_altitude_year_hypercube():
     for study_class in SCM_STUDIES[:1]:
         for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest,
                                  GevShapeChangePointTest][:1]:
-            for last_starting_year in [1967, 1977, 1987, 1997, 2007, None][-1:]:
+            years = [1967, 1977, 1987, 1997, 2007, None][:-1][::-1]
+            for last_starting_year in years:
                 visualizers = [
                     StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True)
                     for study in study_iterator(study_class=study_class, only_first_one=only_first_one,
@@ -110,7 +111,8 @@ def full_altitude_year_hypercube():
                 altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers))
                 visualizer = Altitude_Hypercube_Year_Visualizer(altitude_to_visualizer,
                                                                 save_to_file=save_to_file,
-                                                                trend_test_class=trend_test_class, nb_data_reduced_for_speed=nb_data_reduced_for_speed,
+                                                                trend_test_class=trend_test_class,
+                                                                nb_data_reduced_for_speed=nb_data_reduced_for_speed,
                                                                 last_starting_year=last_starting_year)
                 visualizer.visualize_year_trend_test()
                 visualizer.visualize_massif_trend_test()
diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py
similarity index 93%
rename from experiment/meteo_france_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py
rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py
index 12f31e37821221de39c6edeca004a4c6927caaf5..399a075c247bae2afe95a8a49d68ed2b25508b6b 100644
--- a/experiment/meteo_france_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py
@@ -1,6 +1,6 @@
 import pandas as pd
 
-from experiment.meteo_france_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \
+from experiment.meteo_france_data.scm_models_data.visualization import \
     AltitudeHypercubeVisualizer
 
 
diff --git a/experiment/meteo_france_data/visualization/studies_visualization/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/__init__.py
similarity index 100%
rename from experiment/meteo_france_data/visualization/studies_visualization/__init__.py
rename to experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/__init__.py
diff --git a/experiment/meteo_france_data/visualization/studies_visualization/main_studies_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/main_studies_visualizer.py
similarity index 87%
rename from experiment/meteo_france_data/visualization/studies_visualization/main_studies_visualizer.py
rename to experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/main_studies_visualizer.py
index 9cd3132191b1d911a0b39753d2ffff4984307f6f..4b47fcbe6efd2564ec9e3b112bf2d6a76b9d40bd 100644
--- a/experiment/meteo_france_data/visualization/studies_visualization/main_studies_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/main_studies_visualizer.py
@@ -4,13 +4,13 @@ from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test im
     GevScaleChangePointTest, GevShapeChangePointTest
 from experiment.trend_analysis.univariate_test.abstract_univariate_test import MannKendallTrendTest
 from experiment.meteo_france_data.scm_models_data.safran.safran import ExtendedSafranTotalPrecip
-from experiment.meteo_france_data.visualization.studies_visualization.studies import Studies
-from experiment.meteo_france_data.visualization.studies_visualization.studies_visualizer import StudiesVisualizer, \
+from experiment.meteo_france_data.scm_models_data.visualization import Studies
+from experiment.meteo_france_data.scm_models_data.visualization import StudiesVisualizer, \
     AltitudeVisualizer
-from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import ALL_ALTITUDES, \
+from experiment.meteo_france_data.scm_models_data.visualization import ALL_ALTITUDES, \
     study_iterator_global, SCM_STUDIES
 
-from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer
+from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer
 from collections import OrderedDict
 
 
diff --git a/experiment/meteo_france_data/visualization/studies_visualization/studies.py b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies.py
similarity index 100%
rename from experiment/meteo_france_data/visualization/studies_visualization/studies.py
rename to experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies.py
diff --git a/experiment/meteo_france_data/visualization/studies_visualization/studies_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies_visualizer.py
similarity index 97%
rename from experiment/meteo_france_data/visualization/studies_visualization/studies_visualizer.py
rename to experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies_visualizer.py
index bdb536e2a085fc1e35f548b3079ff0c91c74b556..c9c979c4dcf83d3b7c9f8bc72205737bebb0d017 100644
--- a/experiment/meteo_france_data/visualization/studies_visualization/studies_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies_visualizer.py
@@ -11,10 +11,10 @@ from matplotlib.lines import Line2D
 
 from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy
 from experiment.trend_analysis.univariate_test.abstract_univariate_test import AbstractUnivariateTest
-from experiment.meteo_france_data.visualization.studies_visualization.studies import \
+from experiment.meteo_france_data.scm_models_data.visualization import \
     Studies
-from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer
-from experiment.meteo_france_data.visualization.utils import plot_df
+from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer
+from experiment.meteo_france_data.scm_models_data.visualization.utils import plot_df
 from utils import cached_property, get_display_name_from_object_type, VERSION_TIME
 
 
diff --git a/experiment/meteo_france_data/visualization/study_visualization/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/__init__.py
similarity index 100%
rename from experiment/meteo_france_data/visualization/study_visualization/__init__.py
rename to experiment/meteo_france_data/scm_models_data/visualization/study_visualization/__init__.py
diff --git a/experiment/meteo_france_data/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
similarity index 98%
rename from experiment/meteo_france_data/visualization/study_visualization/main_study_visualizer.py
rename to experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
index 6bed93e8dd8a8816f9251ed596cd3ea4bfcc14f0..e626ad6fcfbbc88f25e3274285f583bcd268c740 100644
--- a/experiment/meteo_france_data/visualization/study_visualization/main_study_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
@@ -1,6 +1,8 @@
 import time
 from typing import List
 
+from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
+    StudyVisualizer
 from experiment.trend_analysis.abstract_score import MannKendall
 from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusSwe, ExtendedCrocusDepth, \
@@ -8,7 +10,6 @@ from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDep
 from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall, ExtendedSafranSnowfall, SafranRainfall, \
     SafranTemperature, SafranTotalPrecip
 
-from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer
 from collections import OrderedDict
 
 from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest
diff --git a/experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
similarity index 99%
rename from experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py
rename to experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
index aa6d260a1d51f88c6220feeb4a560324074a0129..ad99f02945112a21467e7052786e7a98654880ed 100644
--- a/experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
@@ -15,7 +15,7 @@ from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test im
 from experiment.trend_analysis.univariate_test.abstract_univariate_test import AbstractUnivariateTest
 from experiment.trend_analysis.non_stationary_trends import \
     ConditionalIndedendenceLocationTrendTest, MaxStableLocationTrendTest, IndependenceLocationTrendTest
-from experiment.meteo_france_data.visualization.utils import create_adjusted_axes
+from experiment.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes
 from experiment.utils import average_smoothing_with_sliding_window
 from extreme_estimator.estimator.full_estimator.abstract_full_estimator import \
     FullEstimatorInASingleStepWithSmoothMargin
diff --git a/experiment/meteo_france_data/visualization/utils.py b/experiment/meteo_france_data/scm_models_data/visualization/utils.py
similarity index 100%
rename from experiment/meteo_france_data/visualization/utils.py
rename to experiment/meteo_france_data/scm_models_data/visualization/utils.py
diff --git a/experiment/meteo_france_data/stations_data/__init__.py b/experiment/meteo_france_data/stations_data/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/experiment/meteo_france_data/stations_data/comparison_analysis.py b/experiment/meteo_france_data/stations_data/comparison_analysis.py
index 76c7d3da9035cf72961aa104b17a26631cd1881e..daf5e81938bbc58c188ef92114bd3977e0b4f4f6 100644
--- a/experiment/meteo_france_data/stations_data/comparison_analysis.py
+++ b/experiment/meteo_france_data/stations_data/comparison_analysis.py
@@ -5,11 +5,10 @@ from typing import List
 from cached_property import cached_property
 
 from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall
-from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import \
+from experiment.meteo_france_data.scm_models_data.visualization import \
     ALL_ALTITUDES
 from extreme_estimator.estimator.full_estimator.abstract_full_estimator import \
     FullEstimatorInASingleStepWithSmoothMargin
-from extreme_estimator.extreme_models.margin_model.linear_margin_model import LinearAllParametersAllDimsMarginModel
 from extreme_estimator.extreme_models.max_stable_model.abstract_max_stable_model import CovarianceFunction
 from extreme_estimator.extreme_models.max_stable_model.max_stable_models import ExtremalT, BrownResnick
 from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
@@ -237,67 +236,3 @@ class ComparisonAnalysis(object):
             different_sign = [k for k, v in coefs[0].items() if np.sign(coefs[1][k]) != np.sign(v) ]
             print('All linear coefficient have the same sign: {}, different_signs for: {}'.format(len(different_sign) == 0, different_sign))
 
-def choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan():
-    for margin in [50, 100, 150, 200, 250, 300][2:3]:
-        for altitude in [900, 1200, 1800][:1]:
-            for nb in range(1, 4):
-                s = ComparisonAnalysis(altitude=altitude, nb_border_data_to_remove=nb, margin=margin)
-                print(margin, altitude, nb, 'nb massifs', len(s.intersection_massif_names), 'nb stations',
-                      len(s.stations_observations), 'nb observations', s.stations_observations.nb_obs,
-                      s.study_observations.nb_obs,
-                      s.stations_coordinates.index)
-
-
-def run_comparison_for_optimal_parameters_for_altitude_900():
-    for nb in [0, 1, 2][:]:
-        for transformation_class in [None, BetweenZeroAndOneNormalization][1:]:
-            comparison = ComparisonAnalysis(altitude=900, nb_border_data_to_remove=nb, margin=150,
-                                            exclude_some_massifs_from_the_intersection=nb == 2,
-                                            transformation_class=transformation_class,
-                                            normalize_observations=True)
-            print('\n-----------\nnb:', nb, comparison.intersection_massif_names)
-            # margin_model_classes = [LinearShapeAllDimsMarginModel, LinearLocationAllDimsMarginModel,
-            #           LinearAllParametersAllDimsMarginModel]
-            for margin_model_class in [LinearAllParametersAllDimsMarginModel]:
-                print(get_display_name_from_object_type(margin_model_class))
-                comparison.spatial_comparison(margin_model_class)
-
-
-"""
-Comparaison données de re-analysis et données de stations
-
-J'ai utilisé le fichier "PrecipitationsAvalanches_MaxPrecipit_ParPoste_ParHiver_traites.xls"
-
-Après des analyses avec la fonction 'choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan'
-j'ai choisis de lancer mes analyses avec:
-    -une altitude de 900m 
-    -une margin de 150m (donc je selectionne toutes les stations entre 750m et 1050m). 
-Je ne choisis que des stations qui ont des observations complètes sur toute la periode d'observation. 
-et je m'asssure de n'avoir une seule station par massif (qui appartient à l intersection des massifs entre les study et les stations)
-
-Souvent les observations manquantes se situaient dans les premières ou dans les dernières années
-j'ai donc ajouté un parametre nb_to_remove_border qui enlever ces observations (à la fois pour les study et les stations).
-Ce parametre entrainent donc des datasets avec moins d observations, mais avec plus de masssifs/stations
-
-Par contre, dans le cas nb_to_remove=2, il y avait de grosses différences si j'incluais ou non le massif Mercantour
-donc en tout attendant de mieux comprendre, j'ai prefere exclure ce massif dans ce cas
-
-Dans tous les cas, nb_to_remove de 0 à 2
-pour n'importe quel modele de marges
-et pour un max stable BrownResnick ou ExtremalT
-alors le signe des coefficient de marges selon les coordonées Lambert sont toujours les mêmes que l'on utilise les données 
-de reanalysis ou les données de stations
-"""
-
-
-"""
-A way to improve the analysis would be to have another altitude of reference with a lot of data
-But for the other altitude, we have data issues because there is a Nan in the middle of the data
-Instead of removing on the side, I should remove the years that concerns as much station from the same altitude level
-I should find the "optimal" years to remove
-Then I should find a way to remove the same years in the study
-"""
-
-if __name__ == '__main__':
-    run_comparison_for_optimal_parameters_for_altitude_900()
-    # choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan()
diff --git a/experiment/meteo_france_data/stations_data/main_spatial_comparison.py b/experiment/meteo_france_data/stations_data/main_spatial_comparison.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3b50c4c8c5b727ee1ef4c67ca841b043961794f
--- /dev/null
+++ b/experiment/meteo_france_data/stations_data/main_spatial_comparison.py
@@ -0,0 +1,71 @@
+from experiment.meteo_france_data.stations_data.comparison_analysis import ComparisonAnalysis
+from extreme_estimator.extreme_models.margin_model.linear_margin_model import LinearAllParametersAllDimsMarginModel
+from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.uniform_normalization import \
+    BetweenZeroAndOneNormalization
+from utils import get_display_name_from_object_type
+
+
+def choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan():
+    for margin in [50, 100, 150, 200, 250, 300][2:3]:
+        for altitude in [900, 1200, 1800][:1]:
+            for nb in range(1, 4):
+                s = ComparisonAnalysis(altitude=altitude, nb_border_data_to_remove=nb, margin=margin)
+                print(margin, altitude, nb, 'nb massifs', len(s.intersection_massif_names), 'nb stations',
+                      len(s.stations_observations), 'nb observations', s.stations_observations.nb_obs,
+                      s.study_observations.nb_obs,
+                      s.stations_coordinates.index)
+
+
+def run_comparison_for_optimal_parameters_for_altitude_900():
+    for nb in [0, 1, 2][:]:
+        for transformation_class in [None, BetweenZeroAndOneNormalization][1:]:
+            comparison = ComparisonAnalysis(altitude=900, nb_border_data_to_remove=nb, margin=150,
+                                            exclude_some_massifs_from_the_intersection=nb == 2,
+                                            transformation_class=transformation_class,
+                                            normalize_observations=True)
+            print('\n-----------\nnb:', nb, comparison.intersection_massif_names)
+            # margin_model_classes = [LinearShapeAllDimsMarginModel, LinearLocationAllDimsMarginModel,
+            #           LinearAllParametersAllDimsMarginModel]
+            for margin_model_class in [LinearAllParametersAllDimsMarginModel]:
+                print(get_display_name_from_object_type(margin_model_class))
+                comparison.spatial_comparison(margin_model_class)
+
+
+"""
+Comparaison données de re-analysis et données de stations
+
+J'ai utilisé le fichier "PrecipitationsAvalanches_MaxPrecipit_ParPoste_ParHiver_traites.xls"
+
+Après des analyses avec la fonction 'choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan'
+j'ai choisis de lancer mes analyses avec:
+    -une altitude de 900m 
+    -une margin de 150m (donc je selectionne toutes les stations entre 750m et 1050m). 
+Je ne choisis que des stations qui ont des observations complètes sur toute la periode d'observation. 
+et je m'asssure de n'avoir une seule station par massif (qui appartient à l intersection des massifs entre les study et les stations)
+
+Souvent les observations manquantes se situaient dans les premières ou dans les dernières années
+j'ai donc ajouté un parametre nb_to_remove_border qui enlever ces observations (à la fois pour les study et les stations).
+Ce parametre entrainent donc des datasets avec moins d observations, mais avec plus de masssifs/stations
+
+Par contre, dans le cas nb_to_remove=2, il y avait de grosses différences si j'incluais ou non le massif Mercantour
+donc en tout attendant de mieux comprendre, j'ai prefere exclure ce massif dans ce cas
+
+Dans tous les cas, nb_to_remove de 0 à 2
+pour n'importe quel modele de marges
+et pour un max stable BrownResnick ou ExtremalT
+alors le signe des coefficient de marges selon les coordonées Lambert sont toujours les mêmes que l'on utilise les données 
+de reanalysis ou les données de stations
+"""
+
+
+"""
+A way to improve the analysis would be to have another altitude of reference with a lot of data
+But for the other altitude, we have data issues because there is a Nan in the middle of the data
+Instead of removing on the side, I should remove the years that concerns as much station from the same altitude level
+I should find the "optimal" years to remove
+Then I should find a way to remove the same years in the study
+"""
+
+if __name__ == '__main__':
+    run_comparison_for_optimal_parameters_for_altitude_900()
+    # choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan()
diff --git a/experiment/meteo_france_data/stations_data/main_station_comparison.py b/experiment/meteo_france_data/stations_data/main_station_comparison.py
new file mode 100644
index 0000000000000000000000000000000000000000..bbfcfd17c077418f3ae4d3a253794e7195e27a64
--- /dev/null
+++ b/experiment/meteo_france_data/stations_data/main_station_comparison.py
@@ -0,0 +1,7 @@
+from experiment.meteo_france_data.stations_data.comparison_analysis import ComparisonAnalysis
+
+if __name__ == '__main__':
+    comparison = ComparisonAnalysis(altitude=900, nb_border_data_to_remove=nb, margin=150,
+                       exclude_some_massifs_from_the_intersection=nb == 2,
+                       transformation_class=transformation_class,
+                       normalize_observations=True)
\ No newline at end of file
diff --git a/experiment/meteo_france_data/stations_data/visualization/__init__.py b/experiment/meteo_france_data/stations_data/visualization/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/__init__.py b/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/comparisons_visualization.py b/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/comparisons_visualization.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/main_comparison_visualization.py b/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/main_comparison_visualization.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/extreme_estimator/extreme_models/margin_model/margin_function/abstract_margin_function.py b/extreme_estimator/extreme_models/margin_model/margin_function/abstract_margin_function.py
index 7d9c2a7af6d1cd7ed4c0c2992664cae008054bdb..571507699fc16695f9bbc00f87566ac34acdab93 100644
--- a/extreme_estimator/extreme_models/margin_model/margin_function/abstract_margin_function.py
+++ b/extreme_estimator/extreme_models/margin_model/margin_function/abstract_margin_function.py
@@ -1,11 +1,10 @@
 from typing import Dict, List
 
-import matplotlib.cm as cm
 import matplotlib.pyplot as plt
 import numpy as np
 import pandas as pd
 
-from experiment.meteo_france_data.visualization.utils import create_adjusted_axes
+from experiment.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes
 from extreme_estimator.margin_fits.gev.gev_params import GevParams
 from extreme_estimator.margin_fits.plot.create_shifted_cmap import imshow_shifted
 from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
diff --git a/test/test_experiment/test_SCM_study.py b/test/test_experiment/test_SCM_study.py
index eeed25f937ffeca2b6f885fc7855b5c3ea44bb2c..05c0e83d9dfe22d94bae87ac11a5c729ea7690cb 100644
--- a/test/test_experiment/test_SCM_study.py
+++ b/test/test_experiment/test_SCM_study.py
@@ -8,9 +8,10 @@ from experiment.meteo_france_data.scm_models_data.cumulated_study import NB_DAYS
 from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall, ExtendedSafranSnowfall, \
     SafranTemperature, \
     SafranTotalPrecip
-from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import study_iterator, \
-    study_iterator_global, SCM_STUDIES, ALL_ALTITUDES
-from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer
+from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
+    study_iterator, study_iterator_global, SCM_STUDIES, ALL_ALTITUDES
+from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
+    StudyVisualizer
 from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest
 from utils import get_display_name_from_object_type
 
diff --git a/test/test_experiment/test_coordinate_sensitivity.py b/test/test_experiment/test_coordinate_sensitivity.py
index da06bb49cdc1cd8358c3afbe9e2d8f966f019310..75f4525b7914dd42694e22d9ca85cadbfc16ca25 100644
--- a/test/test_experiment/test_coordinate_sensitivity.py
+++ b/test/test_experiment/test_coordinate_sensitivity.py
@@ -1,11 +1,12 @@
 import unittest
 
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSwe
-from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import \
+from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
     study_iterator_global
+from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
+    StudyVisualizer
 from experiment.trend_analysis.non_stationary_trends import \
     ConditionalIndedendenceLocationTrendTest
-from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer
 from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.uniform_normalization import \
     BetweenZeroAndOneNormalization, BetweenZeroAndOneNormalizationMinEpsilon, BetweenZeroAndOneNormalizationMaxEpsilon
 from utils import get_display_name_from_object_type