Commit 8593b441 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[HYPERCUBE] add seed in fast hypercube mode. some refactoring.

parent 94aa79b3
No related merge requests found
Showing with 15 additions and 13 deletions
+15 -13
...@@ -39,8 +39,7 @@ class AbstractHypercubeVisualizer(object): ...@@ -39,8 +39,7 @@ class AbstractHypercubeVisualizer(object):
self.nb_data_for_fast_mode = nb_data_reduced_for_speed self.nb_data_for_fast_mode = nb_data_reduced_for_speed
if exact_starting_year is not None: if exact_starting_year is not None:
assert first_starting_year is None assert first_starting_year is None and last_starting_year is None
assert last_starting_year is None
self.first_starting_year, self.last_starting_year = exact_starting_year, exact_starting_year self.first_starting_year, self.last_starting_year = exact_starting_year, exact_starting_year
else: else:
default_first_starting_year, *_, default_last_starting_year = self.all_potential_starting_years default_first_starting_year, *_, default_last_starting_year = self.all_potential_starting_years
......
...@@ -327,7 +327,6 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): ...@@ -327,7 +327,6 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
show_label=False, scaled=True, add_text=add_text, show_label=False, scaled=True, add_text=add_text,
massif_name_to_value=massif_name_to_value) massif_name_to_value=massif_name_to_value)
print(subtitle)
title = self.set_trend_test_reparition_title(subtitle, set=False) title = self.set_trend_test_reparition_title(subtitle, set=False)
# row_title = self.get_title_plot(xlabel='massifs', ax_idx=i) # row_title = self.get_title_plot(xlabel='massifs', ax_idx=i)
......
...@@ -2,7 +2,7 @@ import os ...@@ -2,7 +2,7 @@ import os
import os.path as op import os.path as op
from collections import OrderedDict from collections import OrderedDict
from multiprocessing.pool import Pool from multiprocessing.pool import Pool
from random import sample from random import sample, seed
from typing import Dict from typing import Dict
import math import math
...@@ -423,16 +423,20 @@ class StudyVisualizer(VisualizationParameters): ...@@ -423,16 +423,20 @@ class StudyVisualizer(VisualizationParameters):
massif_name_to_gev_change_point_test_results = {} massif_name_to_gev_change_point_test_results = {}
if self.nb_massif_for_change_point_test is None: if self.nb_massif_for_change_point_test is None:
massif_names = self.study.study_massif_names 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: 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): for massif_id, massif_name in enumerate(massif_names):
years, smooth_maxima = self.smooth_maxima_x_y(massif_id) years, smooth_maxima = self.smooth_maxima_x_y(massif_id)
......
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