diff --git a/experiment/eurocode_data/eurocode_region.py b/experiment/eurocode_data/eurocode_region.py index 479069f97bb6ceb94496002d391e5133a49e32fc..5d94b524d6c44c016d2aac08565300ad5d764f19 100644 --- a/experiment/eurocode_data/eurocode_region.py +++ b/experiment/eurocode_data/eurocode_region.py @@ -47,6 +47,11 @@ class AbstractEurocodeRegion(object): def plot_eurocode_snow_load_on_ground_characteristic_value_variable_action(self, ax, altitudes, label='French standards', linestyle=None): + # The breaking point must be exactly at 500 and 1000 + for threshold in [500, 1000]: + if min(altitudes) < threshold < max(altitudes): + assert threshold in altitudes + # Plot the curve ax.plot(altitudes, [self.valeur_caracteristique(altitude) for altitude in altitudes], label=label, color=self.eurocode_color, linewidth=5, linestyle=linestyle) 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 bd8417354b50704b77f191e28532ff73902e736b..3160bed20702f60653df4a2d4cb41a51ef26cc13 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,12 +66,12 @@ 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_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) + # plot_uncertainty_histogram(altitude_to_visualizer) + # plot_selection_curves(altitude_to_visualizer) def major_result(): @@ -91,11 +91,11 @@ def major_result(): if __name__ == '__main__': - major_result() - # intermediate_result(altitudes=[1500, 1800][:1], massif_names=None, - # uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes, - # ConfidenceIntervalMethodFromExtremes.ci_mle][1:], - # multiprocessing=True) + # major_result() + intermediate_result(altitudes=paper_altitudes, massif_names=['Beaufortain', 'Vercors'], + uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes, + ConfidenceIntervalMethodFromExtremes.ci_mle][1:], + multiprocessing=True) # intermediate_result(altitudes=[900, 1200], massif_names=['Maurienne'], # uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes, # ConfidenceIntervalMethodFromExtremes.ci_mle][1:], diff --git a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_curves.py b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_curves.py index 674c4f80acb4595154394a66810eabaf1ad77815..51a2646f1eb930c1a44ce79c7e115ef9feddca11 100644 --- a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_curves.py +++ b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_curves.py @@ -99,8 +99,9 @@ def plot_single_uncertainty_massif_and_non_stationary_context(ax, massif_name, m for j, uncertainty_method in enumerate(visualizer.uncertainty_methods): if j == 0: # Plot eurocode norm + altitudes_for_plot = list(range(min(altitudes), max(altitudes)+1, 100)) eurocode_region.plot_eurocode_snow_load_on_ground_characteristic_value_variable_action(ax, - altitudes=altitudes) + altitudes=altitudes_for_plot) # Plot uncertainties color = ci_method_to_color[uncertainty_method] @@ -162,8 +163,9 @@ def plot_tdrl_bars(altitude_to_visualizer, ax, massif_name, valid_altitudes, leg width=150, color=colors, label=visualizers[0].label_tdrl_bar, edgecolor='black', hatch='//') # Plot markers markers_kwargs = [v.massif_name_to_marker_style[massif_name] for v in visualizers] + markersize = 20 for k in markers_kwargs: - k['markersize'] = 10 + k['markersize'] = markersize for altitude, marker_kwargs, value in zip(valid_altitudes, markers_kwargs, tdrl_values): # ax.plot([altitude], [value / 2], **marker_kwargs) # Better to plot all the markers on the same line @@ -172,13 +174,16 @@ def plot_tdrl_bars(altitude_to_visualizer, ax, massif_name, valid_altitudes, leg visualizer = visualizers[0] markers = [v.massif_name_to_marker_style[massif_name]['marker'] for v in visualizers] marker_to_label = {m: visualizer.all_marker_style_to_label_name[m] for m in markers} - legend_elements = AbstractStudy.get_legend_for_model_symbol(marker_to_label, markersize=9) + legend_elements = AbstractStudy.get_legend_for_model_symbol(marker_to_label, markersize=markersize) ax2 = ax.twinx() # ax2.legend(handles=legend_elements, bbox_to_anchor=(0.93, 0.7), loc='upper right') # ax2.annotate("Filled symbol = significant trend ", xy=(0.85, 0.5), xycoords='axes fraction', fontsize=7) ax2.legend(handles=legend_elements, loc='center left', prop={'size': legend_size}) + # for handle in lgnd.legendHandles: + # handle.set_sizes([6.0]) # ax2.annotate("Filled symbol =\nsignificant trend \nw.r.t $\mathcal{M}_0$", xy=(0.6, 0.85), xycoords='axes fraction', fontsize=fontsize) ax2.annotate('\n'.join(filled_marker_legend_list), xy=(0.23, 0.43), xycoords='axes fraction', fontsize=fontsize) + ax2.annotate('Markers show selected model $\mathcal{M}_N$', xy=(0.02, 0.605), xycoords='axes fraction', fontsize=fontsize) ax2.set_yticks([])