From 08f4c04c1fb08a41b345456832c628b0e7af2612 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Wed, 12 Feb 2020 13:46:32 +0100
Subject: [PATCH] [paper 1] fix imports. create qqplot when wrong shape
 parameters are removed

---
 .../qqplot/plot_qqplot.py                     | 32 +++++++++++++++----
 .../shape/main_shape_repartition.py           |  4 +--
 .../data/main_example_swe_total_plot.py       |  2 +-
 .../main_result_trends_and_return_levels.py   | 11 ++++---
 4 files changed, 34 insertions(+), 15 deletions(-)

diff --git a/papers/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/plot_qqplot.py b/papers/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/plot_qqplot.py
index 5ff62713..f45034e1 100644
--- a/papers/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/plot_qqplot.py
+++ b/papers/exceeding_snow_loads/check_mle_convergence_for_trends/qqplot/plot_qqplot.py
@@ -8,8 +8,10 @@ from matplotlib.ticker import PercentFormatter
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
     ALL_ALTITUDES_WITHOUT_NAN
-from experiment.exceeding_snow_loads.data.main_example_swe_total_plot import tuples_for_examples_paper1
-from experiment.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \
+    TemporalMarginFitMethod
+from papers.exceeding_snow_loads.data.main_example_swe_total_plot import tuples_for_examples_paper1
+from papers.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 from extreme_fit.distribution.gev.gev_params import GevParams
 
@@ -26,7 +28,7 @@ def plot_qqplot_for_time_series_with_missing_zeros(
     print('Worst examples:')
     for a, v, m, p in l:
         print(a, m, p)
-        print(last_quantile(p))
+        print('Last standard quantile (depends on the number of data):', last_quantile(p))
         v.qqplot(m)
 
 
@@ -81,13 +83,29 @@ def last_quantile(psnow):
 
 
 if __name__ == '__main__':
-    # altitudes = [300, 600, 900, 1200, 1500, 1800][:2]
-    altitudes = ALL_ALTITUDES_WITHOUT_NAN
+    """
+    Worst examples:
+    300 Mercantour 0.38333333333333336
+    3.1568494936985307
+    300 Haut_Var-Haut_Verdon 0.6
+    3.5972497046789322
+    600 Mercantour 0.75
+    3.817672071062871
+    
+    For the two time series with less values:
+    300 Mercantour 1.0857026816954518
+    300 Haut_Var-Haut_Verdon 0.8446498197950775
+
+    """
+    altitudes = [300, 600, 900, 1200, 1500, 1800][:2]
+    # altitudes = ALL_ALTITUDES_WITHOUT_NAN
     # altitudes = [900, 1800, 2700]
     altitude_to_visualizer = {altitude: StudyVisualizerForNonStationaryTrends(CrocusSnowLoadTotal(altitude=altitude),
+                                                                              select_only_acceptable_shape_parameter=True,
+                                                                              fit_method=TemporalMarginFitMethod.extremes_fevd_bayesian,
                                                                               multiprocessing=True)
                               for altitude in altitudes}
     # plot_qqplot_wrt_standard_gumbel(altitude_to_visualizer)
-    plot_hist_psnow(altitude_to_visualizer)
+    # plot_hist_psnow(altitude_to_visualizer)
     # plot_qqplot_for_time_series_examples(altitude_to_visualizer)
-    # plot_qqplot_for_time_series_with_missing_zeros(altitude_to_visualizer, nb_worst_examples=3)
+    plot_qqplot_for_time_series_with_missing_zeros(altitude_to_visualizer, nb_worst_examples=3)
diff --git a/papers/exceeding_snow_loads/check_mle_convergence_for_trends/shape/main_shape_repartition.py b/papers/exceeding_snow_loads/check_mle_convergence_for_trends/shape/main_shape_repartition.py
index f12726be..d9344122 100644
--- a/papers/exceeding_snow_loads/check_mle_convergence_for_trends/shape/main_shape_repartition.py
+++ b/papers/exceeding_snow_loads/check_mle_convergence_for_trends/shape/main_shape_repartition.py
@@ -1,7 +1,7 @@
 from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
-from experiment.exceeding_snow_loads.check_mle_convergence_for_trends.shape.study_visualizer_for_shape_repartition import \
+from papers.exceeding_snow_loads.check_mle_convergence_for_trends.shape.study_visualizer_for_shape_repartition import \
     StudyVisualizerForShape
-from experiment.exceeding_snow_loads.paper_main_utils import load_altitude_to_visualizer
+from papers.exceeding_snow_loads.paper_main_utils import load_altitude_to_visualizer
 
 
 def main_shape_repartition(altitudes, massif_names=None,
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 f654e168..cbfe15e3 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
@@ -5,7 +5,7 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizat
     study_iterator_global, SCM_STUDY_CLASS_TO_ABBREVIATION
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
     StudyVisualizer
-from experiment.exceeding_snow_loads.paper_utils import dpi_paper1_figure
+from papers.exceeding_snow_loads.paper_utils import dpi_paper1_figure
 
 
 def tuples_for_examples_paper1(examples_for_the_paper=True):
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 d0a7ab8d..bd841735 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
@@ -7,7 +7,8 @@ from papers.exceeding_snow_loads.paper_main_utils import load_altitude_to_visual
 from papers.exceeding_snow_loads.paper_utils import paper_study_classes, paper_altitudes
 from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_diagnosis_risk import plot_diagnosis_risk
 from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_selection_curves import plot_selection_curves
-from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_trend_curves import plot_trend_curves
+from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_trend_curves import plot_trend_curves, \
+    plot_trend_map
 from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_uncertainty_curves import plot_uncertainty_massifs
 from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_uncertainty_histogram import \
     plot_uncertainty_histogram
@@ -65,11 +66,11 @@ 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_diagnosis_risk(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_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)
 
 
-- 
GitLab