From 8593b441ea6c552245317e09abcbee5bf19ffe2c Mon Sep 17 00:00:00 2001 From: Le Roux Erwan <erwan.le-roux@irstea.fr> Date: Wed, 17 Jul 2019 11:06:40 +0200 Subject: [PATCH] [HYPERCUBE] add seed in fast hypercube mode. some refactoring. --- .../abstract_hypercube_visualizer.py | 3 +-- .../altitude_hypercube_visualizer.py | 1 - .../study_visualization/study_visualizer.py | 24 +++++++++++-------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py index 0b0d2689..c516794e 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py @@ -39,8 +39,7 @@ class AbstractHypercubeVisualizer(object): self.nb_data_for_fast_mode = nb_data_reduced_for_speed if exact_starting_year is not None: - assert first_starting_year is None - assert last_starting_year is None + assert first_starting_year is None and last_starting_year is None self.first_starting_year, self.last_starting_year = exact_starting_year, exact_starting_year else: default_first_starting_year, *_, default_last_starting_year = self.all_potential_starting_years diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py index c4079ad2..33b76a75 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py @@ -327,7 +327,6 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): show_label=False, scaled=True, add_text=add_text, massif_name_to_value=massif_name_to_value) - print(subtitle) title = self.set_trend_test_reparition_title(subtitle, set=False) # row_title = self.get_title_plot(xlabel='massifs', ax_idx=i) 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 4e696e1a..a038c142 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 @@ -2,7 +2,7 @@ import os import os.path as op from collections import OrderedDict from multiprocessing.pool import Pool -from random import sample +from random import sample, seed from typing import Dict import math @@ -423,16 +423,20 @@ class StudyVisualizer(VisualizationParameters): massif_name_to_gev_change_point_test_results = {} if self.nb_massif_for_change_point_test is None: massif_names = self.study.study_massif_names - elif self.sample_one_massif_from_each_region: - # 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) else: - massif_names = sample(self.study.study_massif_names, k=self.nb_massif_for_change_point_test) + # Set the random seed to the same number so that + print('Setting the random seed to ensure similar sampling in the fast mode') + seed(42) + if self.sample_one_massif_from_each_region: + # 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) + else: + massif_names = sample(self.study.study_massif_names, k=self.nb_massif_for_change_point_test) for massif_id, massif_name in enumerate(massif_names): years, smooth_maxima = self.smooth_maxima_x_y(massif_id) -- GitLab