Commit 8341bd13 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[contrasting] add gap between study. and add safran 2019 from max files. add...

[contrasting] add gap between study. and add safran 2019 from max files. add main_comparison_histo.py
parent e96c7ccc
No related merge requests found
Showing with 47 additions and 0 deletions
+47 -0
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from extreme_data.meteo_france_data.scm_models_data.safran.gap_between_study import GapBetweenSafranSnowfall2019And2020, \
GapBetweenSafranSnowfall2019AndMySafranSnowfall2019Recentered, GapBetweenSafranSnowfall2019AndMySafranSnowfall2019
from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
STUDY_CLASS_TO_ABBREVIATION
from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
def comparison_plot(altitude_studies: AltitudesStudies, massif_name):
ax = plt.gca()
altitudes = [a for a, s in altitude_studies.altitude_to_study.items() if massif_name in s.study_massif_names]
annual_maxima = [altitude_studies.altitude_to_study[a].massif_name_to_annual_maxima[massif_name] for a in altitudes]
min_bias, mean_bias, max_bias = [[f(maxima) for maxima in annual_maxima] for f in [np.min, np.mean, np.max]]
color = 'blue'
ax.plot(mean_bias, altitudes, label='Mean bias', color=color, marker='o')
ax.fill_betweenx(altitudes, min_bias, max_bias, label='Range for the bias', alpha=0.2, color=color)
ax.vlines(0, ymin=altitudes[0], ymax=altitudes[-1], color='k')
massif_name_str = massif_name.replace('_', '-')
study_str = STUDY_CLASS_TO_ABBREVIATION[type(altitude_studies.study)]
plot_name = '{} - Bias between of {}'.format(massif_name_str, study_str)
plot_name += '\nWe consider maxima between {} and {}'.format(altitude_studies.study.year_min,
altitude_studies.study.year_max)
ax.yaxis.set_ticks(altitudes)
ax.set_ylim(top=altitudes[-1] + 500)
ax.legend()
altitude_studies.show_or_save_to_file(plot_name=plot_name)
plt.close()
def main_comparaison_plot():
altitudes = [600, 900, 1200, 1500, 1800, 2100, 2400, 2700, 3000, 3300, 3600]
for study_class in [GapBetweenSafranSnowfall2019AndMySafranSnowfall2019Recentered,
GapBetweenSafranSnowfall2019AndMySafranSnowfall2019,
GapBetweenSafranSnowfall2019And2020]:
altitude_studies = AltitudesStudies(study_class=study_class,
altitudes=altitudes)
for massif_name in altitude_studies.study.all_massif_names():
comparison_plot(altitude_studies, massif_name)
if __name__ == '__main__':
main_comparaison_plot()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment