From 00bd8a558b6aab58ede78d4293141665d77f9755 Mon Sep 17 00:00:00 2001 From: Le Roux Erwan <erwan.le-roux@irstea.fr> Date: Tue, 11 Jun 2019 18:34:58 +0200 Subject: [PATCH] [HYPERCUBE] refactor main scripts. add two main. add utils_hypercube. --- .../main_fast_hypercube.py | 66 ++++ .../main_full_hypercube.py | 69 ++++ .../main_hypercube_visualization.py | 307 ------------------ .../utils_hypercube.py | 47 +++ 4 files changed, 182 insertions(+), 307 deletions(-) create mode 100644 experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_fast_hypercube.py create mode 100644 experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_full_hypercube.py delete mode 100644 experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py create mode 100644 experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/utils_hypercube.py diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_fast_hypercube.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_fast_hypercube.py new file mode 100644 index 00000000..b91c497c --- /dev/null +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_fast_hypercube.py @@ -0,0 +1,66 @@ +import time + +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \ + AltitudeHypercubeVisualizer +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \ + AltitudeHypercubeVisualizerBisExtended, QuantityHypercubeWithoutTrendExtended, \ + AltitudeHypercubeVisualizerWithoutTrendExtended +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \ + QuantityAltitudeHypercubeVisualizer +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.utils_hypercube import \ + load_altitude_visualizer, load_quantity_visualizer +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \ + ALL_ALTITUDES, SCM_STUDIES +from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest + + +def get_fast_parameters(): + save_to_file = False + only_first_one = False + nb_data_reduced_for_speed = 4 + altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]] + last_starting_year = None + trend_test_class = GevLocationChangePointTest + return altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class + + +def get_fast_altitude_visualizer(altitude_hypercube_class): + altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters() + study_classes = SCM_STUDIES[:1] + visualizer = load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year, + nb_data_reduced_for_speed, only_first_one, save_to_file, study_classes, + trend_test_class) + return visualizer + + +def get_fast_quantity_visualizer(quantity_hypercube_class): + altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters() + study_classes = SCM_STUDIES[:2] + visualizer = load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, + save_to_file, study_classes, trend_test_class) + return visualizer + + +def main_mean_log_likelihood(): + get_fast_quantity_visualizer(QuantityHypercubeWithoutTrendExtended).vsualize_year_trend_by_regions_and_altitudes( + add_detailed_plot=True) + # get_fast_altitude_visualizer(AltitudeHypercubeVisualizerWithoutTrendExtended).vsualize_year_trend_by_regions_and_altitudes() + + +def main_percentage_trend(): + visualizer = get_fast_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended) + visualizer.vsualize_year_trend_by_regions_and_altitudes() + visualizer.visualize_massif_trend_test_by_altitudes() + visualizer.visualize_altitute_trend_test_by_regions() + + +def main_run(): + main_mean_log_likelihood() + # main_percentage_trend() + + +if __name__ == '__main__': + start = time.time() + main_run() + duration = time.time() - start + print('Full run took {}s'.format(round(duration, 1))) diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_full_hypercube.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_full_hypercube.py new file mode 100644 index 00000000..00684f7f --- /dev/null +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_full_hypercube.py @@ -0,0 +1,69 @@ +import time + +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \ + AltitudeHypercubeVisualizer +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \ + AltitudeHypercubeVisualizerBisExtended, QuantityHypercubeWithoutTrendExtended, \ + AltitudeHypercubeVisualizerWithoutTrendExtended +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \ + QuantityAltitudeHypercubeVisualizer +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.utils_hypercube import \ + load_altitude_visualizer, load_quantity_visualizer +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \ + ALL_ALTITUDES, SCM_STUDIES +from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest + + +def get_full_parameters(): + save_to_file = True + only_first_one = False + nb_data_reduced_for_speed = False + altitudes = ALL_ALTITUDES[3:-6] + last_starting_year = 2007 + trend_test_class = GevLocationChangePointTest + return altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class + + +def get_full_altitude_visualizer(altitude_hypercube_class, exact_starting_year=None): + altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters() + study_classes = SCM_STUDIES[:1] + if exact_starting_year is not None: + last_starting_year = None + visualizer = load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year, + nb_data_reduced_for_speed, only_first_one, save_to_file, study_classes, + trend_test_class, exact_starting_year=exact_starting_year) + return visualizer + + +def get_full_quantity_visualizer(quantity_hypercube_class): + altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters() + study_classes = SCM_STUDIES[:3] + visualizer = load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_year, + nb_data_reduced_for_speed, only_first_one, + save_to_file, study_classes, trend_test_class) + return visualizer + + +def main_mean_log_likelihood(): + get_full_quantity_visualizer(QuantityHypercubeWithoutTrendExtended).vsualize_year_trend_by_regions_and_altitudes( + add_detailed_plot=True) + # get_full_altitude_visualizer(AltitudeHypercubeVisualizerWithoutTrendExtended).vsualize_year_trend_by_regions_and_altitudes() + + +def main_percentage_trend(): + visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, exact_starting_year=1981) + visualizer.vsualize_year_trend_by_regions_and_altitudes() + visualizer.visualize_massif_trend_test_by_altitudes() + visualizer.visualize_altitute_trend_test_by_regions() + + +def main_run(): + # main_mean_log_likelihood() + main_percentage_trend() + + +if __name__ == '__main__': + start = time.time() + main_run() + duration = time.time() - start + print('Full run took {}s'.format(round(duration, 1))) 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 deleted file mode 100644 index 38badb9b..00000000 --- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py +++ /dev/null @@ -1,307 +0,0 @@ -import time -from collections import OrderedDict -from itertools import product - -from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \ - AltitudeHypercubeVisualizer -from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \ - AltitudeYearHypercubeVisualizerExtended, AltitudeHypercubeVisualizerExtended, \ - AltitudeHypercubeVisualizerBisExtended, AltitudeHypercubeVisualizerWithoutTrendExtended, \ - QuantityHypercubeWithoutTrend, QuantityHypercubeWithoutTrendExtended -from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \ - Altitude_Hypercube_Year_Visualizer, AltitudeHypercubeVisualizerWithoutTrendType -from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \ - QuantityAltitudeHypercubeVisualizer -from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \ - ALL_ALTITUDES, SCM_STUDIES, study_iterator, study_iterator_global -from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \ - StudyVisualizer -from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest, \ - GevScaleChangePointTest, GevShapeChangePointTest -from utils import get_display_name_from_object_type - - -def full_trends_with_altitude_hypercube(): - save_to_file = True - only_first_one = False - fast = False - altitudes = ALL_ALTITUDES[3:-6] - for study_class in SCM_STUDIES[:1]: - 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, - altitudes=altitudes)] - altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) - visualizer = AltitudeHypercubeVisualizer(altitude_to_visualizer, save_to_file=save_to_file, - trend_test_class=trend_test_class, nb_data_reduced_for_speed=False) - visualizer.visualize_massif_trend_test() - visualizer.visualize_year_trend_test() - visualizer.visualize_altitude_trend_test() - - -def full_quantity_altitude_hypercube(): - save_to_file = True - only_first_one = False - fast = False - add_detailed_plots = True - altitudes = ALL_ALTITUDES[3:-6] - study_classes = SCM_STUDIES - 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_global(study_classes=study_classes, only_first_one=only_first_one, - altitudes=altitudes)] - study_classes_str = [get_display_name_from_object_type(c) for c in study_classes] - quantity_altitude_tuples = list(product(study_classes_str, altitudes)) - quantity_altitude_to_visualizer = OrderedDict(zip(quantity_altitude_tuples, visualizers)) - visualizer = QuantityHypercubeWithoutTrendExtended(quantity_altitude_to_visualizer, - save_to_file=save_to_file, - trend_test_class=trend_test_class, - nb_data_reduced_for_speed=False, - last_starting_year=2007, - ) - visualizer.vsualize_year_trend_by_regions_and_altitudes() - - -def fast_altitude_hypercube(): - save_to_file = False - only_first_one = False - fast = True - altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]] - for study_class in SCM_STUDIES[:1]: - 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, - altitudes=altitudes)] - altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) - visualizer = AltitudeHypercubeVisualizer(altitude_to_visualizer, save_to_file=save_to_file, - trend_test_class=trend_test_class, nb_data_reduced_for_speed=fast) - # visualizer.visualize_year_trend_test() - # visualizer.visualize_massif_trend_test() - visualizer.visualize_altitude_trend_test() - - -def fast_altitude_year_hypercube(): - save_to_file = False - only_first_one = False - nb_data_reduced_for_speed = True - altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]] - for study_class in SCM_STUDIES[:1]: - for last_starting_year in [None, 1989, 1999][:1]: - 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, - 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, - last_starting_year=last_starting_year) - # visualizer.visualize_year_trend_test() - visualizer.visualize_altitude_trend_test() - # visualizer.visualize_massif_trend_test() - - -def fast_altitude_without_trend_type_hypercube_extended(): - save_to_file = False - only_first_one = False - nb_data_reduced_for_speed = True - altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]] - for study_class in SCM_STUDIES[:1]: - for last_starting_year in [None, 1989, 1999][:1]: - 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, - 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) - visualizer.vsualize_year_trend_by_regions_and_altitudes() - - # visualizer = QuantityHypercubeWithoutTrend(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) - # visualizer.visualize_year_trend_test() - - -def fast_altitude_year_hypercube_extended(): - 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[: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, - altitudes=altitudes)] - altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) - 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, - exact_starting_year=exact_starting_year) - # visualizer.visualize_year_trend_test() - # visualizer.visualize_altitude_trend_test() - # visualizer.visualize_massif_trend_test_by_altitudes() - visualizer.vsualize_year_trend_by_regions_and_altitudes() - visualizer.visualize_massif_trend_test_by_altitudes() - visualizer.visualize_altitute_trend_test_by_regions() - # visualizer.visualize_massif_trend_test() - - -def full_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[:1]: - for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, - GevShapeChangePointTest][:1]: - years = [1967, 1977, 1987, 1997, 2007, None][-2:-1][::-1] - for last_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, - last_starting_year=last_starting_year) - visualizer.visualize_year_trend_test() - visualizer.visualize_massif_trend_test() - 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 - nb_data_reduced_for_speed = False - altitudes = ALL_ALTITUDES[3:-6] - for study_class in SCM_STUDIES[1:]: - for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, - GevShapeChangePointTest][:1]: - years = [1967, 1977, 1987, 1997, 2007, None][-4:] - for last_starting_year in years: - for days in [1, 3][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, - altitudes=altitudes, nb_consecutive_days=days)] - altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) - visualizer = AltitudeHypercubeVisualizerBisExtended(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, - ) - visualizer.vsualize_year_trend_by_regions_and_altitudes() - visualizer.visualize_altitute_trend_test_by_regions() - visualizer.visualize_massif_trend_test_by_altitudes() - # visualizer.visualize_year_trend_test() - # visualizer.visualize_massif_trend_test() - # visualizer.visualize_altitude_trend_test() - - -def full_altitude_year_hypercube__without_trend_extended(): - 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 = [2007, None][:] - for last_starting_year in years: - for days in [1, 3][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, - altitudes=altitudes, nb_consecutive_days=days)] - 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, - # ) - # visualizer.vsualize_year_trend_by_regions_and_altitudes() - - -def fast_quantity_altitude_hypercube(): - save_to_file = False - only_first_one = False - fast = True - altitudes = ALL_ALTITUDES[2:4] - study_classes = SCM_STUDIES[:2] - 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_global(study_classes=study_classes, only_first_one=only_first_one, - altitudes=altitudes)] - study_classes_str = [get_display_name_from_object_type(c) for c in study_classes] - 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) - visualizer.visualize_year_trend_test() - # visualizer.visualize_massif_trend_test() - # visualizer.visualize_altitude_trend_test() - - -def main_run(): - # fast_altitude_hypercube() - # fast_altitude_year_hypercube() - - # fast_quantity_altitude_hypercube() - # fast_altitude_year_hypercube_extended() - full_exact_altitude_year_hypercube() - # full_altitude_year_hypercube__without_trend_extended() - # fast_altitude_without_trend_type_hypercube_extended() - # full_quantity_altitude_hypercube() - - # fast_altitude_year_hypercube_extended() - # full_altitude_year_hypercube_extended() - - # full_altitude_year_hypercube() - # fast_quantity_altitude_hypercube() - # full_quantity_altitude_hypercube() - - -if __name__ == '__main__': - start = time.time() - main_run() - duration = time.time() - start - print('Full run took {}s'.format(round(duration, 1))) diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/utils_hypercube.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/utils_hypercube.py new file mode 100644 index 00000000..f0eac21a --- /dev/null +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/utils_hypercube.py @@ -0,0 +1,47 @@ +from collections import OrderedDict +from itertools import product + +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \ + AltitudeHypercubeVisualizer +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \ + QuantityAltitudeHypercubeVisualizer +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \ + study_iterator_global +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \ + StudyVisualizer +from utils import get_display_name_from_object_type + + +def load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, + save_to_file, study_classes, trend_test_class): + visualizers = [StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) + for study in study_iterator_global(study_classes=study_classes, only_first_one=only_first_one, + altitudes=altitudes)] + study_classes_str = [get_display_name_from_object_type(c) for c in study_classes] + quantity_altitude_tuples = list(product(study_classes_str, altitudes)) + quantity_altitude_to_visualizer = OrderedDict(zip(quantity_altitude_tuples, visualizers)) + visualizer = quantity_hypercube_class(quantity_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) + assert isinstance(visualizer, QuantityAltitudeHypercubeVisualizer) + return visualizer + + +def load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year, nb_data_reduced_for_speed, + only_first_one, save_to_file, study_classes, trend_test_class + , exact_starting_year=None): + visualizers = [StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) + for study in study_iterator_global(study_classes=study_classes, only_first_one=only_first_one, + altitudes=altitudes)] + altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) + visualizer = altitude_hypercube_class(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, + exact_starting_year=exact_starting_year, + ) + assert isinstance(visualizer, AltitudeHypercubeVisualizer) + return visualizer -- GitLab