From e214b6ec8ce39035e1ffe181bf5316e3cd30c8f3 Mon Sep 17 00:00:00 2001 From: Le Roux Erwan <erwan.le-roux@irstea.fr> Date: Tue, 11 Jun 2019 18:36:52 +0200 Subject: [PATCH] [HYPERCUBE] add real region names. improve sampling of massif names for the fast mode --- .../scm_models_data/abstract_extended_study.py | 8 +++++--- .../study_visualization/study_visualizer.py | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/experiment/meteo_france_data/scm_models_data/abstract_extended_study.py b/experiment/meteo_france_data/scm_models_data/abstract_extended_study.py index d95b8709..b832fe11 100644 --- a/experiment/meteo_france_data/scm_models_data/abstract_extended_study.py +++ b/experiment/meteo_france_data/scm_models_data/abstract_extended_study.py @@ -9,11 +9,13 @@ from utils import classproperty class AbstractExtendedStudy(AbstractStudy): - - @classproperty def region_names(cls): - return ['Alps', 'Northern Alps', 'Central Alps', 'Southern Alps', 'Extreme South Alps'] + return ['Alps'] + cls.real_region_names + + @classproperty + def real_region_names(self): + return ['Northern Alps', 'Central Alps', 'Southern Alps', 'Extreme South Alps'] @property def nb_region_names(self): 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 0311cdb3..3eef0900 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 @@ -10,6 +10,7 @@ import numpy as np import pandas as pd import seaborn as sns +from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy from experiment.trend_analysis.abstract_score import MeanScore, AbstractTrendScore from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import AbstractGevChangePointTest @@ -414,9 +415,17 @@ class StudyVisualizer(VisualizationParameters): @cached_property def _massif_name_to_gev_change_point_test_results(self): massif_name_to_gev_change_point_test_results = {} - massif_names = self.study.study_massif_names - if self.nb_massif_for_change_point_test is not None: - massif_names = sample(massif_names, self.nb_massif_for_change_point_test) + if self.nb_massif_for_change_point_test is None: + massif_names = self.study.study_massif_names + else: + # Get one massif from each region to ensure that the fast plot will not crash + assert self.nb_massif_for_change_point_test >= 4, 'we need at least one massif from each region' + massif_names = [AbstractExtendedStudy.region_name_to_massif_names[r][0] + for r in AbstractExtendedStudy.real_region_names] + massif_names_for_sampling = list(set(self.study.study_massif_names) - set(massif_names)) + nb_massif_for_sampling = self.nb_massif_for_change_point_test - len(AbstractExtendedStudy.real_region_names) + massif_names += sample(massif_names_for_sampling, k=nb_massif_for_sampling) + for massif_id, massif_name in enumerate(massif_names): years, smooth_maxima = self.smooth_maxima_x_y(massif_id) gev_change_point_test_results = compute_gev_change_point_test_results(self.multiprocessing, smooth_maxima, -- GitLab