From e6c54f991c2e8114436dc79f8610ae48c374b4c0 Mon Sep 17 00:00:00 2001 From: Le Roux Erwan <erwan.le-roux@irstea.fr> Date: Tue, 16 Jul 2019 12:08:54 +0200 Subject: [PATCH] [PAPER1] create a folder with all the analysis steps for the first paper --- .../1-main_good_stationary_gev_fit.py | 22 +++++++++++++ .../2-main_choice_starting_years.py} | 0 .../scm_models_data/paper1_steps/__init__.py | 0 .../study_visualization/study_visualizer.py | 31 +++++++++++++------ 4 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 experiment/meteo_france_data/scm_models_data/paper1_steps/1-main_good_stationary_gev_fit.py rename experiment/meteo_france_data/scm_models_data/{visualization/hypercube_visualization/main_files_after_conf/main_choice_starting_years.py => paper1_steps/2-main_choice_starting_years.py} (100%) create mode 100644 experiment/meteo_france_data/scm_models_data/paper1_steps/__init__.py diff --git a/experiment/meteo_france_data/scm_models_data/paper1_steps/1-main_good_stationary_gev_fit.py b/experiment/meteo_france_data/scm_models_data/paper1_steps/1-main_good_stationary_gev_fit.py new file mode 100644 index 00000000..4bcf26cb --- /dev/null +++ b/experiment/meteo_france_data/scm_models_data/paper1_steps/1-main_good_stationary_gev_fit.py @@ -0,0 +1,22 @@ +from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusRecentSwe +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \ + study_iterator_global +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \ + StudyVisualizer + + +def maxima_analysis(): + save_to_file = True + only_first_one = False + durand_altitude = [900, 1500, 2100, 2700] + altitudes = durand_altitude + study_classes = [CrocusRecentSwe][:] + for study in study_iterator_global(study_classes, only_first_one=only_first_one, altitudes=altitudes): + study_visualizer = StudyVisualizer(study, save_to_file=save_to_file, + verbose=True, + multiprocessing=True) + study_visualizer.visualize_summary_of_annual_values_and_stationary_gev_fit() + + +if __name__ == '__main__': + maxima_analysis() diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files_after_conf/main_choice_starting_years.py b/experiment/meteo_france_data/scm_models_data/paper1_steps/2-main_choice_starting_years.py similarity index 100% rename from experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files_after_conf/main_choice_starting_years.py rename to experiment/meteo_france_data/scm_models_data/paper1_steps/2-main_choice_starting_years.py diff --git a/experiment/meteo_france_data/scm_models_data/paper1_steps/__init__.py b/experiment/meteo_france_data/scm_models_data/paper1_steps/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py index 059c6afc..74dbf0a1 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py @@ -6,6 +6,7 @@ from random import sample from typing import Dict import math +import matplotlib import matplotlib.pyplot as plt import numpy as np import pandas as pd @@ -751,14 +752,7 @@ class StudyVisualizer(VisualizationParameters): else: *clean_axes, ax0 = axes for ax in clean_axes: - ax.tick_params(axis=u'both', which=u'both', length=0) - ax.spines['top'].set_visible(False) - ax.spines['right'].set_visible(False) - ax.spines['bottom'].set_visible(False) - ax.spines['left'].set_visible(False) - ax.get_xaxis().set_visible(False) - ax.get_yaxis().set_visible(False) - ax.set_aspect('equal') + StudyVisualizer.clean_ax(ax) ax0.get_yaxis().set_visible(True) sub_title = ax0.yaxis.get_label() full_title = title + '\n\n' + sub_title._text @@ -766,6 +760,17 @@ class StudyVisualizer(VisualizationParameters): label_function(full_title) ax0.tick_params(axis=u'both', which=u'both', length=0) + @staticmethod + def clean_ax(ax): + ax.tick_params(axis=u'both', which=u'both', length=0) + ax.spines['top'].set_visible(False) + ax.spines['right'].set_visible(False) + ax.spines['bottom'].set_visible(False) + ax.spines['left'].set_visible(False) + ax.get_xaxis().set_visible(False) + ax.get_yaxis().set_visible(False) + ax.set_aspect('equal') + def show_or_save_to_file(self, add_classic_title=True, no_title=False, tight_layout=False): if tight_layout: plt.tight_layout() @@ -842,7 +847,9 @@ class StudyVisualizer(VisualizationParameters): show=False, replace_blue_by_white=gev_param_name != GevParams.SHAPE, label=gev_param_name) - # self.clean_axes_write_title_on_the_left(axes, title='Independent fits') + # todo: add qqplot drawn for each massif on the map in the last cell + # or just it could be some fitting score based on the qqplot... and we just display the value + # like the log likelihood, (or we could also display some uncertainty here) # 3) Third row, gev indicator axes_third_row = axes[2] @@ -852,7 +859,11 @@ class StudyVisualizer(VisualizationParameters): show=False, label='gev ' + indicator_name) - plt.show() + # Clean all ax + for ax in axes.flatten(): + StudyVisualizer.clean_ax(ax) + self.plot_name = 'Overview of empirical and stationary gev indicators' + self.show_or_save_to_file() def visualize_annual_mean_values(self, ax=None, take_mean_value=True): if ax is None: -- GitLab