From 81f75bc5f2fadf2b6377194dfa6bc73476be8aaa Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Thu, 26 Mar 2020 13:36:29 +0100
Subject: [PATCH] [contrasting project] change some plot parameters

---
 .../scm_models_data/abstract_study.py         |  3 +-
 ...dy_visualizer_for_non_stationary_trends.py |  3 +-
 .../main_result.py                            |  4 +-
 .../plot_contrasting_trend_curves.py          |  5 +-
 .../main_distribution_wps.py                  | 60 +++++++++----------
 5 files changed, 38 insertions(+), 37 deletions(-)

diff --git a/extreme_data/meteo_france_data/scm_models_data/abstract_study.py b/extreme_data/meteo_france_data/scm_models_data/abstract_study.py
index ffd7d542..bf0824c3 100644
--- a/extreme_data/meteo_france_data/scm_models_data/abstract_study.py
+++ b/extreme_data/meteo_france_data/scm_models_data/abstract_study.py
@@ -151,7 +151,8 @@ class AbstractStudy(object):
         df.drop(columns=drop_columns, inplace=True)
         df.rename(columns={'50%': 'median'}, inplace=True)
         df = df.astype(int)
-        df.index.name = 'Top {} maxima ({} -{})'.format(nb_top, self.year_min, self.year_max)
+        start_year, end_year = self.start_year_and_stop_year
+        df.index.name = 'Top {} maxima ({} -{})'.format(nb_top, start_year, end_year)
         if limit_for_the_percentage is not None:
             ind = df['%'] > limit_for_the_percentage
             df = df.loc[ind]
diff --git a/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py b/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py
index dc2561dc..05bcf688 100644
--- a/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py
+++ b/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py
@@ -459,14 +459,13 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
         #     mean_decreases.append(compute_mean_decrease(change_values))
         return (self.altitude, percentage_decrease, percentage_decrease_significative, *mean_decreases)
 
-    def trend_summary_contrasting_values(self):
+    def trend_summary_contrasting_values(self, all_regions = False):
         # trend_tests = list(self.massif_name_to_trend_test_that_minimized_aic.values())
         # decreasing_trend_tests = [t for t in trend_tests if t.time_derivative_of_return_level < 0]
         # percentage_decrease = 100 * len(decreasing_trend_tests) / len(trend_tests)
         # significative_decrease_trend_tests = [t for t in decreasing_trend_tests if t.is_significant]
         # percentage_decrease_significative = 100 * len(significative_decrease_trend_tests) / len(trend_tests)
         compute_mean_change = lambda l: np.mean(np.array(list(l))) if len(l) > 0 else 0
-        all_regions = False
         massif_name_to_region_name = AbstractExtendedStudy.massif_name_to_region_name
         if all_regions:
             mean_changes = [compute_mean_change(self.massif_name_to_relative_change_value.values())]
diff --git a/projects/contrasting_trends_in_snow_loads/main_result.py b/projects/contrasting_trends_in_snow_loads/main_result.py
index 75b13547..a77384cb 100644
--- a/projects/contrasting_trends_in_snow_loads/main_result.py
+++ b/projects/contrasting_trends_in_snow_loads/main_result.py
@@ -57,7 +57,7 @@ def intermediate_result(altitudes, massif_names=None,
             _ = compute_minimized_aic(visualizer)
 
     # Plots
-    plot_contrasting_trend_curves(altitude_to_visualizer)
+    plot_contrasting_trend_curves(altitude_to_visualizer, all_regions=True)
 
 
 def major_result():
@@ -75,7 +75,7 @@ def major_result():
     rainfall_classes = [SafranRainfall1Day, SafranRainfall3Days, SafranRainfall5Days, SafranRainfall7Days]
     study_classes = precipitation_classes + snow_load_classes
     # study_classes = snowfall_classes + rainfall_classes
-    for study_class in study_classes[:]:
+    for study_class in [SafranPrecipitation3Days, CrocusSnowLoad3Days]:
         intermediate_result(altitudes, massif_names, model_subsets_for_uncertainty,
                             uncertainty_methods, study_class, multiprocessing=True)
 
diff --git a/projects/contrasting_trends_in_snow_loads/plot_contrasting_trend_curves.py b/projects/contrasting_trends_in_snow_loads/plot_contrasting_trend_curves.py
index 47c732bd..a84ca2f9 100644
--- a/projects/contrasting_trends_in_snow_loads/plot_contrasting_trend_curves.py
+++ b/projects/contrasting_trends_in_snow_loads/plot_contrasting_trend_curves.py
@@ -8,7 +8,8 @@ from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import
     StudyVisualizerForNonStationaryTrends
 
 
-def plot_contrasting_trend_curves(altitude_to_visualizer: Dict[int, StudyVisualizerForNonStationaryTrends]):
+def plot_contrasting_trend_curves(altitude_to_visualizer: Dict[int, StudyVisualizerForNonStationaryTrends],
+                                  all_regions=False):
     """
     Plot a single trend curves
     :return:
@@ -20,7 +21,7 @@ def plot_contrasting_trend_curves(altitude_to_visualizer: Dict[int, StudyVisuali
     ax_twinx = ax
     ax_twiny = ax.twiny()
 
-    trend_summary_values = list(zip(*[v.trend_summary_contrasting_values() for v in altitude_to_visualizer.values()]))
+    trend_summary_values = list(zip(*[v.trend_summary_contrasting_values(all_regions=all_regions) for v in altitude_to_visualizer.values()]))
     altitudes, *mean_changes = trend_summary_values
 
     # parameters
diff --git a/projects/contrasting_trends_in_snow_loads/weather_types_analysis/main_distribution_wps.py b/projects/contrasting_trends_in_snow_loads/weather_types_analysis/main_distribution_wps.py
index 52946ba3..570785ed 100644
--- a/projects/contrasting_trends_in_snow_loads/weather_types_analysis/main_distribution_wps.py
+++ b/projects/contrasting_trends_in_snow_loads/weather_types_analysis/main_distribution_wps.py
@@ -8,7 +8,7 @@ from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranP
 from extreme_data.meteo_france_data.scm_models_data.utils import SeasonForTheMaxima
 
 
-def main_spatial_distribution_wps(study_class, year_min=1954, year_max=2008, limit_for_the_percentage=None):
+def main_spatial_distribution_wps(study_class, year_min=1959, year_max=2008, limit_for_the_percentage=None):
     study = study_class(altitude=1800, year_min=year_min, year_max=year_max, season=SeasonForTheMaxima.winter_extended)
     for region_name in AbstractExtendedStudy.region_names:
         massif_names = AbstractExtendedStudy.region_name_to_massif_names[region_name]
@@ -47,56 +47,56 @@ Process finished with exit code 0
 """
 
 
-def main_temporal_distribution_wps(study_class, year_min=1954, year_max=2008, limit_for_the_percentage=None):
+def main_temporal_distribution_wps(study_class, year_min=1959, year_max=2008, limit_for_the_percentage=None):
     altitude = 1800
-    study_before = study_class(altitude=altitude, year_min=year_min, year_max=1981, season=SeasonForTheMaxima.winter_extended)
-    study_after = study_class(altitude=altitude, year_min=1981, year_max=year_max, season=SeasonForTheMaxima.winter_extended)
-    # todo: same min and max year ?
+    intermediate_year = year_min + round(float(year_max - year_min) / 2)
+    study_before = study_class(altitude=altitude, year_min=year_min, year_max=intermediate_year, season=SeasonForTheMaxima.winter_extended)
+    study_after = study_class(altitude=altitude, year_min=intermediate_year+1, year_max=year_max, season=SeasonForTheMaxima.winter_extended)
     for region_name in AbstractExtendedStudy.region_names:
         massif_names = AbstractExtendedStudy.region_name_to_massif_names[region_name]
         print('\n \n', '{} ({} massifs)'.format(region_name, len(massif_names)), '\n')
-        for nb_top in [study_before.nb_years, 10][1:]:
+        for nb_top in [study_before.nb_years, 10, 1, 10][3:]:
             print(study_before.df_for_top_annual_maxima(nb_top=nb_top, massif_names=massif_names, limit_for_the_percentage=limit_for_the_percentage), '\n')
             print(study_after.df_for_top_annual_maxima(nb_top=nb_top, massif_names=massif_names, limit_for_the_percentage=limit_for_the_percentage), '\n')
 
 """
  Northern Alps (7 massifs) 
                              %  count  mean  min  median  max
-Top 10 maxima (1954 -1981)                                   
-Steady Oceanic              94     66   130  102     127  202 
+Top 10 maxima (1959 -1983)                                   
+Steady Oceanic              92     65   131  106     128  202 
 
-Top 10 maxima (1981 -2008)                                   
-Steady Oceanic              82     58   151  104     134  282 
+Top 10 maxima (1984 -2008)                                   
+Steady Oceanic              87     61   149  103     133  282 
  
  Central Alps (7 massifs) 
                              %  count  mean  min  median  max
-Top 10 maxima (1954 -1981)                                   
-Steady Oceanic              71     50   110   76     107  190 
+Top 10 maxima (1959 -1983)                                   
+Steady Oceanic              68     48   111   76     109  190 
 
-Top 10 maxima (1981 -2008)                                   
-Steady Oceanic              74     52   125   87     115  235
-South Circulation           14     10   123  100     120  161 
+Top 10 maxima (1984 -2008)                                   
+Steady Oceanic              77     54   123   81     107  235
+South Circulation           14     10   122   93     120  161 
 
  Southern Alps (6 massifs) 
-                             %  count  mean  min  median  max
-Top 10 maxima (1954 -1981)                                   
-South Circulation           43     26   113   67     112  197
-Steady Oceanic              16     10    95   82      93  122
-Southwest Circulation       15      9   102   68      95  140 
-
-Top 10 maxima (1981 -2008)                                   
-South Circulation           63     38   134   73     127  235
-Steady Oceanic              21     13   110   80     105  187 
-
-
+                             %  count  mean  std  min  median  max
+Top 10 maxima (1959 -1983)                                        
+South Circulation           50     30   114   32   70     112  197
+Southwest Circulation       13      8   107   24   79      97  140
+Steady Oceanic              13      8    97   14   82      93  122 
+
+Top 10 maxima (1984 -2008)                                   
+South Circulation           58     35   135   73     125  235
+Steady Oceanic              23     14   107   69     104  187 
+ 
  Extreme South Alps (3 massifs) 
                              %  count  mean  min  median  max
-Top 10 maxima (1954 -1981)                                   
-South Circulation           63     19   136   84     139  194
+Top 10 maxima (1959 -1983)                                   
+South Circulation           66     20   141   84     146  212
 Southwest Circulation       13      4   122   95     123  146 
 
-Top 10 maxima (1981 -2008)                                   
-South Circulation           76     23   165   78     159  306 
+Top 10 maxima (1984 -2008)                                   
+South Circulation           76     23   158   74     138  306 
+
 
 
 
-- 
GitLab