diff --git a/experiment/meteo_france_SCM_study/abstract_study.py b/experiment/meteo_france_SCM_study/abstract_study.py
index f29b6a5a86361430521e1fd21b9018f0c036bd13..ab121ceae9e346cd05fa2a96c4f0ab0a8746d49d 100644
--- a/experiment/meteo_france_SCM_study/abstract_study.py
+++ b/experiment/meteo_france_SCM_study/abstract_study.py
@@ -313,7 +313,7 @@ class AbstractStudy(object):
 
     @property
     def title(self):
-        return "{} at altitude {}m ({} mountain chains)".format(self.variable_name, self.altitude,
+        return "{}/at altitude {}m ({} mountain chains)".format(self.variable_name, self.altitude,
                                                                 len(self.study_massif_names))
 
     @property
diff --git a/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py
index 818c4be0fca4861c81466c94f7dd1bd2e55e51d9..0abcf0e6a57a32c0db5e673329a17e469373c2c4 100644
--- a/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py
+++ b/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py
@@ -114,15 +114,15 @@ def complete_analysis(only_first_one=False):
 
 
 def trend_analysis():
-    save_to_file = False
-    only_first_one = True
+    save_to_file = True
+    only_first_one = False
     # [0, 300, 600, 900, 1200, 1500, 1800, 2100, 2400, 2700, 3000, 3300, 3600, 3900, 4200, 4500, 4800] to test for others
     altitudes = [300, 1200, 2100, 3000][-1:]
-    study_classes = [CrocusSwe, CrocusDepth, SafranSnowfall, SafranRainfall, SafranTemperature]
+    study_classes = [CrocusSwe, CrocusDepth, SafranSnowfall, SafranRainfall, SafranTemperature][:1]
     for study in study_iterator_global(study_classes, only_first_one=only_first_one, altitudes=altitudes):
         study_visualizer = StudyVisualizer(study, save_to_file=save_to_file,
                                            transformation_2D=BetweenZeroAndOne2DNormalization())
-        study_visualizer.visualize_temporal_trend_relevance(complete_analysis=False)
+        study_visualizer.visualize_temporal_trend_relevance(complete_analysis=True)
 
 
 if __name__ == '__main__':
diff --git a/experiment/meteo_france_SCM_study/visualization/study_visualization/non_stationary_trends.py b/experiment/meteo_france_SCM_study/visualization/study_visualization/non_stationary_trends.py
index 889fd80a79dda28c06ae5d76e16612969aff8fe6..77050e97f29b6436d3476a0b50f3f5ac7aba81d0 100644
--- a/experiment/meteo_france_SCM_study/visualization/study_visualization/non_stationary_trends.py
+++ b/experiment/meteo_france_SCM_study/visualization/study_visualization/non_stationary_trends.py
@@ -70,12 +70,12 @@ class AbstractNonStationaryTrendTest(object):
         ax.set_ylabel(self.RESULT_ATTRIBUTE_METRIC + ' difference', color=color_difference)
 
         # Plot zero line
-        years_line = [years[0] -10, years[-1]  + 10]
-        ax.plot(years_line, [0 for _ in years_line], 'k-', label='zero line')
+        # years_line = [years[0] -10, years[-1]  + 10]
+        ax.plot(years, [0 for _ in years], 'k-', label='zero line')
         # Plot significative line corresponding to 0.05 relevance
         alpha = 0.05
         significative_deviance = chi2.ppf(q=1 - alpha, df=1)
-        ax.plot(years_line, [significative_deviance for _ in years_line], 'g-', label='significative line')
+        ax.plot(years, [significative_deviance for _ in years], 'g-', label='significative line')
 
         # Plot the mu1 parameter
         mu1_trends = [self.get_mu1(starting_point=year) for year in years]
@@ -111,7 +111,7 @@ class ConditionalIndedendenceLocationTrendTest(AbstractNonStationaryTrendTest):
 
     @property
     def display_name(self):
-        return get_display_name_from_object_type('conditional independence')
+        return 'conditional independence'
 
 
 class MaxStableLocationTrendTest(AbstractNonStationaryTrendTest):
diff --git a/experiment/meteo_france_SCM_study/visualization/study_visualization/study_visualizer.py b/experiment/meteo_france_SCM_study/visualization/study_visualization/study_visualizer.py
index 457bf951c39b239365c94d928d588b2ff0f4e1a8..f479d985a732b276d434425012f47a34fb6eac90 100644
--- a/experiment/meteo_france_SCM_study/visualization/study_visualization/study_visualizer.py
+++ b/experiment/meteo_france_SCM_study/visualization/study_visualization/study_visualizer.py
@@ -385,9 +385,11 @@ class StudyVisualizer(object):
         if self.show:
             plt.show()
         if self.save_to_file:
-            filename = "{}/{}".format(VERSION_TIME, '_'.join(self.study.title.split()))
+            main_title, specific_title = '_'.join(self.study.title.split()).split('/')
+            filename = "{}/{}/".format(VERSION_TIME, main_title)
             if not self.only_one_graph:
-                filename += "/{}".format('_'.join(self.plot_name.split()))
+                filename += "{}".format('_'.join(self.plot_name.split())) + '_'
+            filename += specific_title
             filepath = op.join(self.study.result_full_path, filename + '.png')
             dirname = op.dirname(filepath)
             if not op.exists(dirname):
diff --git a/spatio_temporal_dataset/coordinates/abstract_coordinates.py b/spatio_temporal_dataset/coordinates/abstract_coordinates.py
index b3bf403983c30f8fbaf54e6d3e9bb30b117d4a25..e81aea16c5297a129ab98aef69fd17ec158be94d 100644
--- a/spatio_temporal_dataset/coordinates/abstract_coordinates.py
+++ b/spatio_temporal_dataset/coordinates/abstract_coordinates.py
@@ -176,6 +176,10 @@ class AbstractCoordinates(object):
         else:
             return self.df_coordinates(split).loc[:, self.coordinates_spatial_names].drop_duplicates()
 
+    @property
+    def nb_stations(self, split: Split = Split.all) -> int:
+        return len(self.df_spatial_coordinates(split))
+
     def spatial_index(self, split: Split = Split.all) -> pd.Index:
         df_spatial = self.df_spatial_coordinates(split)
         if self.has_spatio_temporal_coordinates:
@@ -205,7 +209,7 @@ class AbstractCoordinates(object):
             return self.df_coordinates(split).loc[:, self.coordinates_temporal_names].drop_duplicates()
 
     @property
-    def nb_steps(self, split: Split = Split.all):
+    def nb_steps(self, split: Split = Split.all) -> int:
         return len(self.df_temporal_coordinates(split))
 
     def df_temporal_range(self, split: Split = Split.all) -> Tuple[int, int]:
diff --git a/spatio_temporal_dataset/coordinates/spatial_coordinates/alps_station_3D_coordinates.py b/spatio_temporal_dataset/coordinates/spatial_coordinates/alps_station_3D_coordinates.py
index 30e241a14872e726bdc2a8330d1e28e0c1f6e5e6..92e6ed424a7133b0557f2578dcf9154260b2e38b 100644
--- a/spatio_temporal_dataset/coordinates/spatial_coordinates/alps_station_3D_coordinates.py
+++ b/spatio_temporal_dataset/coordinates/spatial_coordinates/alps_station_3D_coordinates.py
@@ -34,7 +34,6 @@ class AlpsStation3DCoordinates(AbstractSpatialCoordinates):
                 station_to_coordinates[station_name] = coordinates
         df = pd.DataFrame.from_dict(data=station_to_coordinates, orient='index',
                                     columns=[cls.COORDINATE_X, cls.COORDINATE_Y, cls.COORDINATE_Z])
-        print(df.head())
         filepath = op.join(cls.FULL_PATH, 'coord-lambert2.csv')
         assert not op.exists(filepath)
         df.to_csv(filepath)
@@ -45,6 +44,5 @@ class AlpsStation3DCoordinatesWithAnisotropy(AlpsStation3DCoordinates):
     @classmethod
     def from_csv(cls, csv_file='coord-lambert2'):
         coord = super().from_csv(csv_file)
-        print(coord)
         return TransformedCoordinates.from_coordinates(coordinates=coord,
                                                        transformation_function=AnisotropyTransformation())
diff --git a/spatio_temporal_dataset/dataset/abstract_dataset.py b/spatio_temporal_dataset/dataset/abstract_dataset.py
index 2dbb64761a2e303a5c0dc1dcb6792b856399c68c..91add0b4b0801a531c2fdee42189435ea8d9f2e5 100644
--- a/spatio_temporal_dataset/dataset/abstract_dataset.py
+++ b/spatio_temporal_dataset/dataset/abstract_dataset.py
@@ -56,11 +56,18 @@ class AbstractDataset(object):
     def transform_maxima_for_spatial_extreme_package(self, maxima_function, split) -> np.ndarray:
         array = maxima_function(split)
         if self.coordinates.has_spatio_temporal_coordinates:
-            inverted_shape = list(self.coordinates.spatio_temporal_shape(split)[::-1])
-            inverted_shape[0] *= self.observations.nb_obs
-            return array.reshape(inverted_shape)
-        else:
-            return np.transpose(array)
+            nb_obs = self.observations.nb_obs
+            nb_stations = self.coordinates.nb_stations
+            nb_steps = self.coordinates.nb_steps
+            # Permute array lines
+            time_steps = np.array(range(nb_steps))
+            c = [time_steps * nb_stations + i for i in range(nb_stations)]
+            permutation = np.concatenate(c)
+            array = array[permutation]
+            # Reshape array
+            shape = (nb_stations, nb_steps * nb_obs)
+            array = array.reshape(shape)
+        return np.transpose(array)
 
     def maxima_gev_for_spatial_extremes_package(self, split: Split = Split.all) -> np.ndarray:
         return self.transform_maxima_for_spatial_extreme_package(self.maxima_gev, split)
diff --git a/test/test_spatio_temporal_dataset/test_dataset.py b/test/test_spatio_temporal_dataset/test_dataset.py
index 481314b90cbeed5c4831506d2c6ef9d6ebfe38cb..357028fa8200282d6d21806190e11e090179c810 100644
--- a/test/test_spatio_temporal_dataset/test_dataset.py
+++ b/test/test_spatio_temporal_dataset/test_dataset.py
@@ -99,21 +99,17 @@ class TestSpatioTemporalDataset(unittest.TestCase):
             coordinate_name=AbstractCoordinates.COORDINATE_X,
             value=-1)
         observation_at_station_0_v1 = self.dataset.observations.df_maxima_gev.loc[ind_station_0].values.flatten()
-
         # Load observation correspond to time 0
         maxima_gev = self.dataset.maxima_gev_for_spatial_extremes_package()
-        self.assertEqual(maxima_gev.shape[1], self.nb_points)
         maxima_gev = np.transpose(maxima_gev)
         self.assertEqual(maxima_gev.shape, (3, 2 * 2))
-        observation_at_time_0_v2 = maxima_gev[1, :]
-        self.assertEqual(len(observation_at_time_0_v2), 4, msg='{}'.format(observation_at_time_0_v2))
+        observation_at_station_0_v2 = maxima_gev[0, :]
+        self.assertEqual(len(observation_at_station_0_v2), 4, msg='{}'.format(observation_at_station_0_v2))
 
         # The order does not really matter here but we check it anyway
-        self.assertTrue(np.equal(observation_at_station_0_v1, observation_at_time_0_v2).all(),
+        self.assertTrue(np.equal(observation_at_station_0_v1, observation_at_station_0_v2).all(),
                         msg='v1={} is different from v2={}'.format(observation_at_station_0_v1,
-                                                                   observation_at_time_0_v2))
-
-        print(self.dataset.maxima_gev_for_spatial_extremes_package())
+                                                                   observation_at_station_0_v2))
 
 
 if __name__ == '__main__':