diff --git a/experiment/meteo_france_data/scm_models_data/abstract_extended_study.py b/experiment/meteo_france_data/scm_models_data/abstract_extended_study.py index 93e98334cfd0dd9f3cdb50008c3e2d53ce685e6e..d95b87097c047484748e1641ad1a30d0da18b440 100644 --- a/experiment/meteo_france_data/scm_models_data/abstract_extended_study.py +++ b/experiment/meteo_france_data/scm_models_data/abstract_extended_study.py @@ -4,14 +4,15 @@ from collections import OrderedDict from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy from spatio_temporal_dataset.coordinates.spatial_coordinates.abstract_spatial_coordinates import \ AbstractSpatialCoordinates +from utils import classproperty class AbstractExtendedStudy(AbstractStudy): - @property - def region_names(self): + @classproperty + def region_names(cls): return ['Alps', 'Northern Alps', 'Central Alps', 'Southern Alps', 'Extreme South Alps'] @property @@ -22,22 +23,27 @@ class AbstractExtendedStudy(AbstractStudy): def study_massif_names(self): return self.region_names + super().study_massif_names - @property - def massif_name_to_region_name(self): - df_centroid = self.load_df_centroid() + @classproperty + def massif_name_to_region_name(cls): + df_centroid = cls.load_df_centroid() return OrderedDict(zip(df_centroid.index, df_centroid['REGION'])) - @property - def region_name_to_massif_ids(self): + @classproperty + def region_name_to_massif_names(cls): + return {k: [cls.original_safran_massif_id_to_massif_name[i] for i in v] + for k, v in cls.region_name_to_massif_ids.items()} + + @classproperty + def region_name_to_massif_ids(cls): region_name_to_massifs_ids = {} - for region_name_loop in self.region_names: + for region_name_loop in cls.region_names: # We use "is in" so that the "Alps" will automatically regroup all the massif data massif_names_belong_to_the_group = [massif_name - for massif_name, region_name in self.massif_name_to_region_name.items() + for massif_name, region_name in cls.massif_name_to_region_name.items() if region_name_loop in region_name] massif_ids_belong_to_the_group = [massif_id for massif_id, massif_name in - self.original_safran_massif_id_to_massif_name.items() + cls.original_safran_massif_id_to_massif_name.items() if massif_name in massif_names_belong_to_the_group] region_name_to_massifs_ids[region_name_loop] = massif_ids_belong_to_the_group return region_name_to_massifs_ids diff --git a/experiment/meteo_france_data/scm_models_data/abstract_study.py b/experiment/meteo_france_data/scm_models_data/abstract_study.py index 6fe1e078b5d19065ec5def8cca49ae2196954ad5..7eebbec1a0958f6fcbf4c9d9633f01a88ce826dc 100644 --- a/experiment/meteo_france_data/scm_models_data/abstract_study.py +++ b/experiment/meteo_france_data/scm_models_data/abstract_study.py @@ -327,11 +327,10 @@ class AbstractStudy(object): """ Spatial properties """ - @property - def original_safran_massif_id_to_massif_name(self) -> Dict[int, str]: - return {massif_id: massif_name for massif_id, massif_name in enumerate(self.all_massif_names)} + @classproperty + def original_safran_massif_id_to_massif_name(cls) -> Dict[int, str]: + return {massif_id: massif_name for massif_id, massif_name in enumerate(cls.all_massif_names)} - # @cached_property @classproperty def all_massif_names(cls) -> List[str]: """ 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 c577d90eae3cb186689f855010e976d29e2994fc..71e060ec548b0997a498b77b8dbe5fef94a45269 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 @@ -90,9 +90,9 @@ def fast_altitude_year_hypercube(): 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_year_trend_test() visualizer.visualize_altitude_trend_test() - visualizer.visualize_massif_trend_test() + # visualizer.visualize_massif_trend_test() def full_altitude_year_hypercube():