From c5b1739879579bf3aa0532d7afb03c74dd94bea7 Mon Sep 17 00:00:00 2001 From: Le Roux Erwan <erwan.le-roux@irstea.fr> Date: Thu, 19 Mar 2020 17:43:47 +0100 Subject: [PATCH] [refactor] refactor some folder name. add test_results.py --- ...dy_visualizer_for_non_stationary_trends.py | 5 ++- .../__init__.py | 0 .../__init__.py | 0 .../gelman_convergence_test.py | 0 .../main_bayesian_mcmc.py | 0 .../main_gelman_convergence_test.py | 0 .../main_result.py | 2 +- ...tive_change_in_maxima_at_fixed_altitude.py | 0 .../plot_contrasting_trend_curves.py | 0 .../main_result_trends_and_return_levels.py | 15 ++++----- .../plot_uncertainty_curves.py | 5 +++ projects/exceeding_snow_loads/utils.py | 2 ++ test/test_projects/__init__.py | 0 .../test_exceeding_snow_loads/__init__.py | 0 .../test_exceeding_snow_loads/test_results.py | 31 +++++++++++++++++++ 15 files changed, 51 insertions(+), 9 deletions(-) rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/__init__.py (100%) rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/check_mcmc_convergence_for_return_levels/__init__.py (100%) rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py (100%) rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py (100%) rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py (100%) rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/main_result.py (97%) rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/main_spatial_relative_change_in_maxima_at_fixed_altitude.py (100%) rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/plot_contrasting_trend_curves.py (100%) create mode 100644 test/test_projects/__init__.py create mode 100644 test/test_projects/test_exceeding_snow_loads/__init__.py create mode 100644 test/test_projects/test_exceeding_snow_loads/test_results.py diff --git a/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py b/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py index bb429ee4..b4c14f5e 100644 --- a/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py +++ b/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py @@ -82,6 +82,8 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer): ConfidenceIntervalMethodFromExtremes.ci_mle][1:] if self.uncertainty_massif_names is None: self.uncertainty_massif_names = self.study.study_massif_names + else: + assert set(self.uncertainty_massif_names).issubset(set(self.study.study_massif_names)) if self.non_stationary_trend_test_to_marker is None: # Assign default argument for the non stationary trends self.non_stationary_trend_test = NON_STATIONARY_TREND_TEST_PAPER @@ -95,7 +97,7 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer): @cached_property def massif_name_to_years_and_maxima(self): d = {} - df_maxima = self.study.observations_annual_maxima.df_maxima_gev + df_maxima = self.study.observations_annual_maxima.df_maxima_gev.loc[self.uncertainty_massif_names] years = np.array(df_maxima.columns) for massif_name, s_maxima in df_maxima.iterrows(): d[massif_name] = (years, np.array(s_maxima)) @@ -135,6 +137,7 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer): # In both cases, we remove any massif with psnow < 0.9 if self.fit_only_time_series_with_ninety_percent_of_non_null_values: d = {m: v for m, v in d.items() if self.massif_name_to_psnow[m] >= 0.9} + print(d.keys()) return d @property diff --git a/projects/contrasting_snow_loads/__init__.py b/projects/contrasting_trends_in_snow_loads/__init__.py similarity index 100% rename from projects/contrasting_snow_loads/__init__.py rename to projects/contrasting_trends_in_snow_loads/__init__.py diff --git a/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py b/projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py similarity index 100% rename from projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py rename to projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py diff --git a/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py b/projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py similarity index 100% rename from projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py rename to projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py diff --git a/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py b/projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py similarity index 100% rename from projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py rename to projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py diff --git a/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py b/projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py similarity index 100% rename from projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py rename to projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py diff --git a/projects/contrasting_snow_loads/main_result.py b/projects/contrasting_trends_in_snow_loads/main_result.py similarity index 97% rename from projects/contrasting_snow_loads/main_result.py rename to projects/contrasting_trends_in_snow_loads/main_result.py index 79b07f79..ccd44348 100644 --- a/projects/contrasting_snow_loads/main_result.py +++ b/projects/contrasting_trends_in_snow_loads/main_result.py @@ -18,7 +18,7 @@ from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusS CrocusSnowLoad5Days, CrocusSnowLoad7Days, CrocusSnowLoad1Day from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \ ConfidenceIntervalMethodFromExtremes -from projects.contrasting_snow_loads.plot_contrasting_trend_curves import plot_contrasting_trend_curves +from projects.contrasting_trends_in_snow_loads.plot_contrasting_trend_curves import plot_contrasting_trend_curves from projects.exceeding_snow_loads.section_results.main_result_trends_and_return_levels import \ compute_minimized_aic from root_utils import NB_CORES diff --git a/projects/contrasting_snow_loads/main_spatial_relative_change_in_maxima_at_fixed_altitude.py b/projects/contrasting_trends_in_snow_loads/main_spatial_relative_change_in_maxima_at_fixed_altitude.py similarity index 100% rename from projects/contrasting_snow_loads/main_spatial_relative_change_in_maxima_at_fixed_altitude.py rename to projects/contrasting_trends_in_snow_loads/main_spatial_relative_change_in_maxima_at_fixed_altitude.py diff --git a/projects/contrasting_snow_loads/plot_contrasting_trend_curves.py b/projects/contrasting_trends_in_snow_loads/plot_contrasting_trend_curves.py similarity index 100% rename from projects/contrasting_snow_loads/plot_contrasting_trend_curves.py rename to projects/contrasting_trends_in_snow_loads/plot_contrasting_trend_curves.py diff --git a/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py b/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py index 6a99cc1a..3a426840 100644 --- a/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py +++ b/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py @@ -1,19 +1,20 @@ from multiprocessing.pool import Pool import matplotlib as mpl +mpl.rcParams['text.usetex'] = True +mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}'] from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal -from extreme_trend.visualizers.utils import load_altitude_to_visualizer -from projects.exceeding_snow_loads.utils import paper_study_classes, paper_altitudes -from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs -from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \ - StudyVisualizerForNonStationaryTrends from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \ ConfidenceIntervalMethodFromExtremes +from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \ + StudyVisualizerForNonStationaryTrends +from extreme_trend.visualizers.utils import load_altitude_to_visualizer +from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs +from projects.exceeding_snow_loads.utils import paper_study_classes, paper_altitudes from root_utils import NB_CORES -mpl.rcParams['text.usetex'] = True -mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}'] + import matplotlib.pyplot as plt diff --git a/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py b/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py index 78cdc298..04403d6b 100644 --- a/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py +++ b/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py @@ -1,4 +1,9 @@ from typing import Dict + +import matplotlib as mpl +mpl.rcParams['text.usetex'] = True +mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}'] + import matplotlib.pyplot as plt import numpy as np diff --git a/projects/exceeding_snow_loads/utils.py b/projects/exceeding_snow_loads/utils.py index 74fdd345..0847e667 100644 --- a/projects/exceeding_snow_loads/utils.py +++ b/projects/exceeding_snow_loads/utils.py @@ -24,3 +24,5 @@ NON_STATIONARY_TREND_TEST_PAPER = [GumbelVersusGumbel, GevLocationAgainstGumbel, GevScaleAgainstGumbel, GevLocationAndScaleTrendTestAgainstGumbel] + + diff --git a/test/test_projects/__init__.py b/test/test_projects/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/test_projects/test_exceeding_snow_loads/__init__.py b/test/test_projects/test_exceeding_snow_loads/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/test_projects/test_exceeding_snow_loads/test_results.py b/test/test_projects/test_exceeding_snow_loads/test_results.py new file mode 100644 index 00000000..c636f28b --- /dev/null +++ b/test/test_projects/test_exceeding_snow_loads/test_results.py @@ -0,0 +1,31 @@ +import unittest + +from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal +from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \ + ConfidenceIntervalMethodFromExtremes +from extreme_trend.visualizers.utils import load_altitude_to_visualizer +from projects.exceeding_snow_loads.section_results.plot_selection_curves import plot_selection_curves +from projects.exceeding_snow_loads.section_results.plot_trend_curves import plot_trend_curves, plot_trend_map +from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs +from projects.exceeding_snow_loads.section_results.plot_uncertainty_histogram import plot_uncertainty_histogram + + +class TestResults(unittest.TestCase): + + def test_run_intermediate_results(self): + # Load data + altitude_to_visualizer = load_altitude_to_visualizer(altitudes=[300, 600], massif_names=['Chartreuse'], + study_class=CrocusSnowLoadTotal, + model_subsets_for_uncertainty=None, + uncertainty_methods=[ + ConfidenceIntervalMethodFromExtremes.ci_mle]) + plot_trend_map(altitude_to_visualizer) + plot_trend_curves(altitude_to_visualizer) + plot_uncertainty_massifs(altitude_to_visualizer) + plot_uncertainty_histogram(altitude_to_visualizer) + plot_selection_curves(altitude_to_visualizer) + self.assertTrue(True) + + +if __name__ == '__main__': + unittest.main() -- GitLab