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