diff --git a/experiment/meteo_france_SCM_study/safran/safran_extended.py b/experiment/meteo_france_SCM_study/abstract_extended_study.py similarity index 91% rename from experiment/meteo_france_SCM_study/safran/safran_extended.py rename to experiment/meteo_france_SCM_study/abstract_extended_study.py index 17cc73a364faa86c09308eefc5b5de22c85051f3..2da5a1e8de34dae4929b2c4cb8959a5f5a7e9911 100644 --- a/experiment/meteo_france_SCM_study/safran/safran_extended.py +++ b/experiment/meteo_france_SCM_study/abstract_extended_study.py @@ -1,11 +1,10 @@ import numpy as np from collections import OrderedDict -from experiment.meteo_france_SCM_study.safran.safran import Safran -from utils import cached_property +from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy -class ExtendedSafran(Safran): +class AbstractExtendedStudy(AbstractStudy): @property def region_names(self): @@ -33,15 +32,14 @@ class ExtendedSafran(Safran): for massif_name, region_name in self.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() + for massif_id, massif_name in + self.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 """ Properties """ - - @property def _year_to_daily_time_serie(self) -> OrderedDict: return self._year_to_extended_time_serie(aggregation_function=np.mean) @@ -62,8 +60,3 @@ class ExtendedSafran(Safran): year_to_extended_time_serie[year] = new_time_serie return year_to_extended_time_serie - - - - - diff --git a/experiment/meteo_france_SCM_study/crocus/crocus.py b/experiment/meteo_france_SCM_study/crocus/crocus.py index 27331668a17237f2a7e88d4ff79a594f6fa3b6e8..c68a04fbf6b7c68a8f821a1d80ad8ba9ad72bdc0 100644 --- a/experiment/meteo_france_SCM_study/crocus/crocus.py +++ b/experiment/meteo_france_SCM_study/crocus/crocus.py @@ -1,3 +1,4 @@ +from experiment.meteo_france_SCM_study.abstract_extended_study import AbstractExtendedStudy from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy from experiment.meteo_france_SCM_study.crocus.crocus_variables import CrocusSweVariable, CrocusDepthVariable @@ -19,12 +20,20 @@ class CrocusSwe(Crocus): super().__init__(CrocusSweVariable, altitude) +class ExtendedCrocusSwe(AbstractExtendedStudy, CrocusSwe): + pass + + class CrocusDepth(Crocus): def __init__(self, altitude=1800): super().__init__(CrocusDepthVariable, altitude) +class ExtendedCrocusDepth(AbstractExtendedStudy, CrocusDepth): + pass + + if __name__ == '__main__': for variable_class in [CrocusSweVariable, CrocusDepthVariable]: study = Crocus(variable_class=variable_class) diff --git a/experiment/meteo_france_SCM_study/main_visualize.py b/experiment/meteo_france_SCM_study/main_visualize.py index 822001c8f97305119ac881d1bb56ad3b5eedf80d..48eb5f401912929701d5d369a92f7b9ce13af14b 100644 --- a/experiment/meteo_france_SCM_study/main_visualize.py +++ b/experiment/meteo_france_SCM_study/main_visualize.py @@ -1,9 +1,9 @@ from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy -from experiment.meteo_france_SCM_study.crocus.crocus import CrocusDepth, CrocusSwe -from experiment.meteo_france_SCM_study.safran.safran import Safran +from experiment.meteo_france_SCM_study.crocus.crocus import CrocusDepth, CrocusSwe, ExtendedCrocusDepth, \ + ExtendedCrocusSwe +from experiment.meteo_france_SCM_study.safran.safran import Safran, ExtendedSafran from itertools import product -from experiment.meteo_france_SCM_study.safran.safran_extended import ExtendedSafran from experiment.meteo_france_SCM_study.safran.safran_visualizer import StudyVisualizer @@ -21,7 +21,7 @@ def load_all_studies(study_class, only_first_one=False): if __name__ == '__main__': - for study_class in [ExtendedSafran, Safran, CrocusSwe, CrocusDepth][:1]: + for study_class in [ExtendedSafran, ExtendedCrocusSwe, ExtendedCrocusDepth][:]: for study in load_all_studies(study_class, only_first_one=True): study_visualizer = StudyVisualizer(study) # study_visualizer.visualize_independent_margin_fits(threshold=[None, 20, 40, 60][0]) diff --git a/experiment/meteo_france_SCM_study/safran/fit_safran.py b/experiment/meteo_france_SCM_study/safran/fit_safran.py index 47fe572cbad03ac1180cd1a2a24af48593c3b5de..7e4a8ecc35cab81f671ed71b1fbb3bc102d98770 100644 --- a/experiment/meteo_france_SCM_study/safran/fit_safran.py +++ b/experiment/meteo_france_SCM_study/safran/fit_safran.py @@ -1,6 +1,6 @@ import pandas as pd -from experiment.meteo_france_SCM_study.safran.safran_extended import ExtendedSafran +from experiment.meteo_france_SCM_study.safran.safran import ExtendedSafran from utils import VERSION diff --git a/experiment/meteo_france_SCM_study/safran/safran.py b/experiment/meteo_france_SCM_study/safran/safran.py index 44288118d27806d429d4d4afb2732f665dcd8a89..f5877b9e60750d6dbf3b663c5dc35a29e54b2ff3 100644 --- a/experiment/meteo_france_SCM_study/safran/safran.py +++ b/experiment/meteo_france_SCM_study/safran/safran.py @@ -1,3 +1,4 @@ +from experiment.meteo_france_SCM_study.abstract_extended_study import AbstractExtendedStudy from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy from experiment.meteo_france_SCM_study.abstract_variable import AbstractVariable from experiment.meteo_france_SCM_study.safran.safran_snowfall_variable import SafranSnowfallVariable @@ -17,3 +18,6 @@ class Safran(AbstractStudy): def variable_name(self): return super().variable_name + ' cumulated over {} days'.format(self.nb_days_of_snowfall) + +class ExtendedSafran(AbstractExtendedStudy, Safran): + pass