From 8ed07dbb0d4e612cb16c37e9038f54cf1a9566a4 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Wed, 4 Mar 2020 15:00:01 +0100
Subject: [PATCH] [paper 1] fix main plots for the paper - adapt them to the
 new data

---
 .../scm_models_data/crocus/crocus_variables.py    |  3 ++-
 .../study_visualization/main_study_visualizer.py  |  3 ++-
 .../data/main_example_swe_total_plot.py           |  8 ++++----
 .../main_comparison_with_eurocode_examples.py     | 15 ++++++++++-----
 .../main_result_trends_and_return_levels.py       |  3 ++-
 .../plot_trend_curves.py                          |  2 +-
 .../plot_uncertainty_histogram.py                 |  2 +-
 7 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/experiment/meteo_france_data/scm_models_data/crocus/crocus_variables.py b/experiment/meteo_france_data/scm_models_data/crocus/crocus_variables.py
index ec226fae..aba169d2 100644
--- a/experiment/meteo_france_data/scm_models_data/crocus/crocus_variables.py
+++ b/experiment/meteo_france_data/scm_models_data/crocus/crocus_variables.py
@@ -90,7 +90,8 @@ class CrocusDepthVariable(CrocusVariable):
 
 class CrocusDensityVariable(CrocusVariable):
     NAME = 'Snow Density'
-    UNIT = 'kg $m^-3$'
+    # UNIT = '$\\textnormal{kg m}^{-3}$'
+    UNIT = 'kg $m^{-3}$'
 
     @classmethod
     def keyword(cls):
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
index f1e6d9fd..2629457b 100644
--- a/experiment/meteo_france_data/scm_models_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,7 @@
 import time
 from typing import List
 
+from experiment.meteo_france_data.scm_models_data.crocus.crocus_variables import CrocusDensityVariable
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
     StudyVisualizer
 from papers.exceeding_snow_loads.discussion_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import \
@@ -25,7 +26,7 @@ from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.
 from root_utils import get_display_name_from_object_type
 
 snow_density_str = '$\\rho_{SNOW}$'
-eurocode_snow_density = '{}=150 kg $m^-3$'.format(snow_density_str)
+eurocode_snow_density = '{}=150 {}'.format(snow_density_str, CrocusDensityVariable.UNIT)
 SLEurocode = 'SL from max HS with ' + eurocode_snow_density
 
 SCM_STUDIES = [SafranSnowfall, CrocusSweTotal, CrocusDepth, CrocusSwe3Days]
diff --git a/papers/exceeding_snow_loads/data/main_example_swe_total_plot.py b/papers/exceeding_snow_loads/data/main_example_swe_total_plot.py
index d65e6479..c96cc96b 100644
--- a/papers/exceeding_snow_loads/data/main_example_swe_total_plot.py
+++ b/papers/exceeding_snow_loads/data/main_example_swe_total_plot.py
@@ -18,14 +18,13 @@ def tuples_for_examples_paper1(examples_for_the_paper=True):
         ]
     else:
         marker_altitude_massif_name_for_paper1 = [
-            ('magenta', 600, 'Ubaye'),
-            ('darkmagenta', 600, 'Parpaillon'),
+            ('magenta', 600, 'Parpaillon'),
+            ('darkmagenta', 300, 'Devoluy'),
             ('mediumpurple', 300, 'Aravis'),
         ]
     return marker_altitude_massif_name_for_paper1
 
 
-
 def max_graph_annual_maxima_poster():
     """
     We choose these massif because each represents a different eurocode region
@@ -53,9 +52,10 @@ def max_graph_annual_maxima_poster():
                                                verbose=True,
                                                multiprocessing=True)
             snow_abbreviation = SCM_STUDY_CLASS_TO_ABBREVIATION[study_class]
-            last_plot = massif_name == "Ubaye"
+            last_plot = color == "magenta"
             label = '{} massif at {}m'.format(massif_name, altitude)
             tight_pad = {'h_pad': 0.2}
+            snow_abbreviation = 'max ' + snow_abbreviation
             study_visualizer.visualize_max_graphs_poster(massif_name, altitude, snow_abbreviation, color, label,
                                                          last_plot, ax, tight_pad=tight_pad,
                                                          dpi=dpi_paper1_figure,
diff --git a/papers/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_examples.py b/papers/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_examples.py
index fefd645f..a7026f8f 100644
--- a/papers/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_examples.py
+++ b/papers/exceeding_snow_loads/discussion_data_comparison_with_eurocode/main_comparison_with_eurocode_examples.py
@@ -1,3 +1,7 @@
+import matplotlib as mpl
+# mpl.rcParams['text.usetex'] = True
+# mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
+
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth
 from experiment.meteo_france_data.scm_models_data.crocus.crocus_variables import CrocusDepthVariable
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
@@ -6,11 +10,11 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizat
     StudyVisualizer
 import matplotlib.pyplot as plt
 
-from experiment.exceeding_snow_loads.discussion_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import \
+from papers.exceeding_snow_loads.discussion_data_comparison_with_eurocode.crocus_study_comparison_with_eurocode import \
     CrocusDifferenceSnowLoad, \
     CrocusSnowDensityAtMaxofSwe, CrocusDifferenceSnowLoadRescaledAndEurocodeToSeeSynchronization, \
     CrocusSnowDepthAtMaxofSwe, CrocusSnowDepthDifference
-from experiment.exceeding_snow_loads.paper_utils import dpi_paper1_figure
+from papers.exceeding_snow_loads.paper_utils import dpi_paper1_figure
 
 
 def max_graph_annual_maxima_comparison():
@@ -28,7 +32,7 @@ def max_graph_annual_maxima_comparison():
                      CrocusSnowDepthDifference,
                      ][:]
     study_class_to_ylim_and_yticks = {
-        CrocusSnowDensityAtMaxofSwe: ([100, 500], [50*i for i in range(2, 11)]),
+        CrocusSnowDensityAtMaxofSwe: ([100, 600], [50*i for i in range(2, 13)]),
         CrocusDifferenceSnowLoad: ([0, 12], [2*i for i in range(0, 7)]),
         CrocusSnowDepthDifference: ([0, 1], [0.2*i for i in range(0, 6)]),
     }
@@ -59,10 +63,11 @@ def max_graph_annual_maxima_comparison():
                     ax.legend()
                     tight_pad = {'h_pad': 0.2}
                     ax.set_ylim(ylim)
-                    ax.set_xlim([1957, 2018])
+                    ax.set_xlim([1958, 2020])
                     ax.yaxis.set_ticks(yticks)
                     study_visualizer.show_or_save_to_file(no_title=True, tight_layout=True,
-                                                          tight_pad=tight_pad, dpi=dpi_paper1_figure)
+                                                          tight_pad=tight_pad, dpi=dpi_paper1_figure,
+                                                          folder_for_variable=False)
                     ax.clear()
 
 
diff --git a/papers/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py b/papers/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
index 8826ac1e..86ed3b60 100644
--- a/papers/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
+++ b/papers/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
@@ -66,13 +66,14 @@ def intermediate_result(altitudes, massif_names=None,
             _ = compute_minimized_aic(visualizer)
 
     # Plots
-    plot_trend_map(altitude_to_visualizer)
+    # plot_trend_map(altitude_to_visualizer)
     # plot_trend_curves(altitude_to_visualizer={a: v for a, v in altitude_to_visualizer.items() if a >= 900})
     # plot_uncertainty_massifs(altitude_to_visualizer)
     plot_uncertainty_histogram(altitude_to_visualizer)
     # plot_selection_curves(altitude_to_visualizer)
 
 
+
 def major_result():
     uncertainty_methods = [ConfidenceIntervalMethodFromExtremes.my_bayes,
                            ConfidenceIntervalMethodFromExtremes.ci_mle][1:]
diff --git a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_trend_curves.py b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_trend_curves.py
index 2d47750f..51e554a7 100644
--- a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_trend_curves.py
+++ b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_trend_curves.py
@@ -17,7 +17,7 @@ def plot_trend_map(altitude_to_visualizer):
 
     for altitude, visualizer in altitude_to_visualizer.items():
         if 900 <= altitude <= 4200:
-            add_color = (visualizer.study.altitude - 1500) % 1200 == 0
+            add_color = (visualizer.study.altitude - 1800) % 1200 == 0
             visualizer.plot_trends(max_abs_tdrl_above_900, add_colorbar=add_color)
             # Plot 2700 also with a colorbar
             if altitude == 2700:
diff --git a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py
index 3d9c660f..dea54bfd 100644
--- a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py
+++ b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py
@@ -63,7 +63,7 @@ def plot_histogram(altitude_to_visualizer, model_subset_for_uncertainty):
     ax_twiny.tick_params(labelsize=fontsize_label)
     ax_twiny.set_xlim(ax.get_xlim())
     ax_twiny.set_xticks(altitudes)
-    nb_massif_names = [v.study.nb_study_massif_names for v in altitude_to_visualizer.values()]
+    nb_massif_names = [len(v.massif_names_fitted) for v in altitude_to_visualizer.values()]
     print(nb_massif_names)
     ax_twiny.set_xticklabels(nb_massif_names)
     ax_twiny.set_xlabel('Total number of massifs at each altitude (for the percentage)', fontsize=fontsize_label)
-- 
GitLab