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 b9be5632c3b2391dfad98b8c889f5f762922db28..a7cb1b9800f8527d6eae597d70f377a1fe63c01f 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 @@ -33,7 +33,7 @@ class AbstractHypercubeVisualizer(object): if exact_starting_year is not None: assert first_starting_year is None assert last_starting_year is None - self.first_starting_year, self.first_starting_year = exact_starting_year, exact_starting_year + 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 self.first_starting_year = first_starting_year if first_starting_year is not None else default_first_starting_year @@ -46,6 +46,7 @@ class AbstractHypercubeVisualizer(object): if self.verbose: print('Hypercube with parameters:') + print('First starting year: {}, Last starting year: {}'.format(self.first_starting_year, self.last_starting_year)) print('Starting years:', self.starting_years) print('Trend test class:', get_display_name_from_object_type(self.trend_test_class)) @@ -61,7 +62,8 @@ class AbstractHypercubeVisualizer(object): @cached_property def starting_years(self): - starting_years = [year for year in self.all_potential_starting_years if self.first_starting_year <= year <= self.last_starting_year] + starting_years = [year for year in self.all_potential_starting_years + if self.first_starting_year <= year <= self.last_starting_year] if self.nb_data_for_fast_mode is not None: starting_years = starting_years[:self.nb_data_for_fast_mode] return 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 000032616d6fe865fcd82ceb823f7ca7215fba0a..8508305c86a6d8d05b49e2b8ad0e73506630fc16 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 @@ -84,7 +84,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): if xlabel != 'starting years': labels.remove('starting years') common_txt = 'averaged on {}'.format(' & '.join(labels)) - common_txt += ' with any starting year <= {}'.format(str(self.last_starting_year)) + common_txt += ' with any starting year between {} and {}'.format(self.first_starting_year, + self.last_starting_year) return common_txt def visualize_trend_test_evolution(self, reduction_function, xlabel, xlabel_values, axes=None, marker='o', @@ -223,8 +224,7 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): def load_axes_for_trend_test_repartition(self, nb_rows): nb_trend_type = len(self.display_trend_type_to_style) - fig, axes = plt.subplots(nb_rows, nb_trend_type, figsize=self.study_visualizer.figsize, - constrained_layout=True) + fig, axes = plt.subplots(nb_rows, nb_trend_type, figsize=self.study_visualizer.figsize) return axes @property diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py index 8fabfd1c31d4909b605c5090b5cf53796cb49e49..38badb9b5d56704075dc72d374e8c4fdbc8be8af 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py @@ -116,10 +116,10 @@ def fast_altitude_without_trend_type_hypercube_extended(): altitudes=altitudes)] altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) visualizer = QuantityHypercubeWithoutTrendExtended(altitude_to_visualizer, - save_to_file=save_to_file, - trend_test_class=trend_test_class, - nb_data_reduced_for_speed=nb_data_reduced_for_speed, - last_starting_year=last_starting_year) + save_to_file=save_to_file, + trend_test_class=trend_test_class, + nb_data_reduced_for_speed=nb_data_reduced_for_speed, + last_starting_year=last_starting_year) visualizer.vsualize_year_trend_by_regions_and_altitudes() # visualizer = QuantityHypercubeWithoutTrend(altitude_to_visualizer, @@ -131,13 +131,13 @@ def fast_altitude_without_trend_type_hypercube_extended(): def fast_altitude_year_hypercube_extended(): - save_to_file = False + save_to_file = True only_first_one = False nb_data_reduced_for_speed = True altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]] - for study_class in SCM_STUDIES[:2]: - for exact_starting_year in [1982]: - for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, GevShapeChangePointTest][:2]: + for study_class in SCM_STUDIES[:1]: + for exact_starting_year in [1980, 1981]: + for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, GevShapeChangePointTest][:1]: visualizers = [ StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) for study in study_iterator(study_class=study_class, only_first_one=only_first_one, @@ -146,7 +146,7 @@ def fast_altitude_year_hypercube_extended(): visualizer = AltitudeHypercubeVisualizerExtended(altitude_to_visualizer, save_to_file=save_to_file, trend_test_class=trend_test_class, nb_data_reduced_for_speed=nb_data_reduced_for_speed, - last_starting_year=exact_starting_year) + exact_starting_year=exact_starting_year) # visualizer.visualize_year_trend_test() # visualizer.visualize_altitude_trend_test() # visualizer.visualize_massif_trend_test_by_altitudes() @@ -181,6 +181,31 @@ def full_altitude_year_hypercube(): visualizer.visualize_altitude_trend_test() +def full_exact_altitude_year_hypercube(): + save_to_file = True + only_first_one = False + nb_data_reduced_for_speed = False + altitudes = ALL_ALTITUDES[3:-6] + for study_class in SCM_STUDIES[:]: + for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, + GevShapeChangePointTest][:1]: + years = [1980, 1981, 1982][:] + for exact_starting_year in years: + visualizers = [ + StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) + for study in study_iterator(study_class=study_class, only_first_one=only_first_one, + altitudes=altitudes)] + altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) + visualizer = Altitude_Hypercube_Year_Visualizer(altitude_to_visualizer, + save_to_file=save_to_file, + trend_test_class=trend_test_class, + nb_data_reduced_for_speed=nb_data_reduced_for_speed, + exact_starting_year=exact_starting_year) + visualizer.visualize_year_trend_test() + visualizer.visualize_massif_trend_test() + visualizer.visualize_altitude_trend_test() + + def full_altitude_year_hypercube_extended(): save_to_file = True only_first_one = False @@ -250,7 +275,7 @@ def fast_quantity_altitude_hypercube(): quantity_altitude_tuples = list(product(study_classes_str, altitudes)) quantity_altitude_to_visualizer = OrderedDict(zip(quantity_altitude_tuples, visualizers)) visualizer = QuantityHypercubeWithoutTrend(quantity_altitude_to_visualizer, save_to_file=save_to_file, - trend_test_class=trend_test_class, nb_data_reduced_for_speed=True) + trend_test_class=trend_test_class, nb_data_reduced_for_speed=True) visualizer.visualize_year_trend_test() # visualizer.visualize_massif_trend_test() # visualizer.visualize_altitude_trend_test() @@ -261,9 +286,11 @@ def main_run(): # fast_altitude_year_hypercube() # fast_quantity_altitude_hypercube() - # fast_altitude_without_trend_type_hypercube_extended() + # fast_altitude_year_hypercube_extended() + full_exact_altitude_year_hypercube() # full_altitude_year_hypercube__without_trend_extended() - full_quantity_altitude_hypercube() + # fast_altitude_without_trend_type_hypercube_extended() + # full_quantity_altitude_hypercube() # fast_altitude_year_hypercube_extended() # full_altitude_year_hypercube_extended()