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 f90fcb9472d052578528374450a475ee69d189a7..420cc2d705274a3bf4613257d58e0e5fb13bc3c4 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 @@ -35,10 +35,10 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): # Map each trend type to its serie with percentages # Define here all the trend type we might need in the results/displays trend_types_to_process = list(self.display_trend_types) + [AbstractUnivariateTest.SIGNIFICATIVE_ALL_TREND] - return {trend_type: self.trend_type_reduction(reduction_function, trend_type) + return {trend_type: self.trend_type_reduction_series(reduction_function, trend_type) for trend_type in trend_types_to_process} - def trend_type_reduction(self, reduction_function, display_trend_type): + def trend_type_reduction_series(self, reduction_function, display_trend_type): # Reduce df_bool df to a serie s_trend_type_percentage s_trend_type_percentage = reduction_function(self.df_bool(display_trend_type)) assert isinstance(s_trend_type_percentage, pd.Series) diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer_extended.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer_extended.py new file mode 100644 index 0000000000000000000000000000000000000000..14a1c0c35deda9bb77002650b30c6300ea7ff211 --- /dev/null +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer_extended.py @@ -0,0 +1,18 @@ +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.abstract_hypercube_visualizer import \ + AbstractHypercubeVisualizer +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_year_hypercube_visualizer import \ + Altitude_Hypercube_Year_Visualizer + + +class AltitudeHypercubeVisualizerExtended(AltitudeHypercubeVisualizer): + + def df_bool(self, display_trend_type): + df_bool = super().df_bool(display_trend_type) + print(df_bool) + return df_bool + + +class AltitudeYearHypercubeVisualizerExtended(AltitudeHypercubeVisualizerExtended, Altitude_Hypercube_Year_Visualizer): + pass \ No newline at end of file diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py index fb0be5f27a56eeaa640364f809943db07cf31f46..ae0d689ddca3cb1c227d616a098a876f37a65515 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py @@ -26,8 +26,8 @@ class Altitude_Hypercube_Year_Visualizer(AltitudeHypercubeVisualizer): # Take the mean with respect to the level of interest return df.mean(level=level) - def trend_type_reduction(self, reduction_function, display_trend_type): - series = super().trend_type_reduction(reduction_function, display_trend_type) + def trend_type_reduction_series(self, reduction_function, display_trend_type): + series = super().trend_type_reduction_series(reduction_function, display_trend_type) # Create df argmax df_bool = self.df_bool(display_trend_type) df = df_bool.copy() 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 71e060ec548b0997a498b77b8dbe5fef94a45269..17dc97510ef9aa7f07c2fc18fb4affb47564f218 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 @@ -4,6 +4,8 @@ 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 from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \ Altitude_Hypercube_Year_Visualizer from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \ @@ -95,6 +97,27 @@ def fast_altitude_year_hypercube(): # visualizer.visualize_massif_trend_test() +def fast_altitude_year_hypercube_extendede(): + 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 = AltitudeYearHypercubeVisualizerExtended(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 full_altitude_year_hypercube(): save_to_file = True only_first_one = False @@ -142,7 +165,8 @@ def fast_quantity_altitude_hypercube(): def main_run(): # fast_altitude_hypercube() - fast_altitude_year_hypercube() + # fast_altitude_year_hypercube() + fast_altitude_year_hypercube_extendede() # full_altitude_year_hypercube() # fast_quantity_altitude_hypercube() # full_quantity_altitude_hypercube()