diff --git a/experiment/meteo_france_data/scm_models_data/abstract_variable.py b/experiment/meteo_france_data/scm_models_data/abstract_variable.py index 62e9457cede02af02b2445ae30a2d722cdda1214..2ed37e127d7f23d93ba9525fe1dd8aa24b76e9ae 100644 --- a/experiment/meteo_france_data/scm_models_data/abstract_variable.py +++ b/experiment/meteo_france_data/scm_models_data/abstract_variable.py @@ -9,12 +9,11 @@ class AbstractVariable(object): NAME = '' UNIT = '' - def __init__(self, variable_array, nb_consecutive_days=3): + def __init__(self, variable_array): self.variable_array = variable_array - self.nb_consecutive_days = nb_consecutive_days @classmethod - def keyword(cls, nb_consecutive_days=3): + def keyword(cls): raise NotImplementedError @property diff --git a/experiment/meteo_france_data/scm_models_data/crocus/crocus.py b/experiment/meteo_france_data/scm_models_data/crocus/crocus.py index 11fe787e96357c92b05624f9e927a82889c96725..c25c0af6b0c82436947943064bc77db639c649a9 100644 --- a/experiment/meteo_france_data/scm_models_data/crocus/crocus.py +++ b/experiment/meteo_france_data/scm_models_data/crocus/crocus.py @@ -3,7 +3,6 @@ import numpy as np from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy from experiment.meteo_france_data.scm_models_data.crocus.crocus_variables import CrocusSweVariable, CrocusDepthVariable -from experiment.meteo_france_data.scm_models_data.cumulated_study import CumulatedStudy class Crocus(AbstractStudy): @@ -26,10 +25,9 @@ class Crocus(AbstractStudy): return super().apply_annual_aggregation(time_serie[91:-92, ...]) -class CrocusSwe(Crocus, CumulatedStudy): +class CrocusSwe(Crocus): def __init__(self, *args, **kwargs): - CumulatedStudy.__init__(self, CrocusSweVariable, *args, **kwargs) Crocus.__init__(self, CrocusSweVariable, *args, **kwargs) def apply_annual_aggregation(self, time_serie): @@ -40,10 +38,9 @@ class ExtendedCrocusSwe(AbstractExtendedStudy, CrocusSwe): pass -class CrocusDepth(Crocus, CumulatedStudy): +class CrocusDepth(Crocus): def __init__(self, *args, **kwargs): - CumulatedStudy.__init__(self, CrocusDepthVariable, *args, **kwargs) Crocus.__init__(self, CrocusDepthVariable, *args, **kwargs) def apply_annual_aggregation(self, time_serie): @@ -65,9 +62,6 @@ class CrocusDaysWithSnowOnGround(Crocus): if __name__ == '__main__': - for study in [CrocusSwe(altitude=900)]: - d = study.year_to_dataset_ordered_dict[1960] - print(study.df_massifs_longitude_and_latitude) - time_arr = np.array(d.variables['time']) + for study in [CrocusSwe(altitude=900), CrocusSwe(altitude=3000)]: a = study.year_to_daily_time_serie_array[1960] print(a.shape) diff --git a/experiment/meteo_france_data/scm_models_data/crocus/crocus_variables.py b/experiment/meteo_france_data/scm_models_data/crocus/crocus_variables.py index cb51b05f5b3b7645701326ca514cfb5c0d79aa29..065d641e67f1553765fb3d82bfd31d91b3d4c419 100644 --- a/experiment/meteo_france_data/scm_models_data/crocus/crocus_variables.py +++ b/experiment/meteo_france_data/scm_models_data/crocus/crocus_variables.py @@ -15,8 +15,8 @@ class CrocusSweVariable(CrocusVariable): UNIT = 'kg per m2 or mm' @classmethod - def keyword(cls, nb_consecutive_days=3): - return 'SWE_{}DY_ISBA'.format(nb_consecutive_days) + def keyword(cls): + return 'WSN_T_ISBA' class CrocusDepthVariable(CrocusVariable): @@ -24,5 +24,5 @@ class CrocusDepthVariable(CrocusVariable): UNIT = 'm' @classmethod - def keyword(cls, nb_consecutive_days=3): - return "SD_{}DY_ISBA".format(nb_consecutive_days) + def keyword(cls): + return "DSN_T_ISBA" diff --git a/experiment/meteo_france_data/scm_models_data/cumulated_study.py b/experiment/meteo_france_data/scm_models_data/cumulated_study.py index 15166779e43d084431932890461a24b07eb2254b..0d0897556144d2fcc029a1f901611286295d25fd 100644 --- a/experiment/meteo_france_data/scm_models_data/cumulated_study.py +++ b/experiment/meteo_france_data/scm_models_data/cumulated_study.py @@ -13,9 +13,6 @@ class CumulatedStudy(AbstractStudy): def instantiate_variable_object(self, variable_array) -> AbstractVariable: return self.variable_class(variable_array, self.nb_consecutive_days) - def load_keyword(self): - return self.variable_class.keyword(self.nb_consecutive_days) - @property def variable_name(self): return super().variable_name + ' cumulated over {} day(s)'.format(self.nb_consecutive_days) diff --git a/experiment/meteo_france_data/scm_models_data/safran/safran_variable.py b/experiment/meteo_france_data/scm_models_data/safran/safran_variable.py index ef9cf61079b6871eaa572ab849193396c111df46..9484b1de6fd186eb693710e4e226ae25b9f768e8 100644 --- a/experiment/meteo_france_data/scm_models_data/safran/safran_variable.py +++ b/experiment/meteo_france_data/scm_models_data/safran/safran_variable.py @@ -25,10 +25,10 @@ class SafranSnowfallVariable(AbstractVariable): UNIT = 'kg per m2 or mm' @classmethod - def keyword(cls, nb_consecutive_days=3): + def keyword(cls): return 'Snowf' - def __init__(self, variable_array, nb_consecutive_days): + def __init__(self, variable_array, nb_consecutive_days=3): super().__init__(variable_array) self.nb_consecutive_days_of_snowfall = nb_consecutive_days # Compute the daily snowfall in kg/m2 @@ -70,7 +70,7 @@ class SafranRainfallVariable(SafranSnowfallVariable): UNIT = 'kg per m2 or mm' @classmethod - def keyword(cls, nb_consecutive_days=3): + def keyword(cls): return 'Rainf' @@ -82,7 +82,7 @@ class SafranTotalPrecipVariable(AbstractVariable): self.rain_precipitation = SafranRainfallVariable(rain_variable_array, nb_consecutive_days) @classmethod - def keyword(cls, nb_consecutive_days=3): + def keyword(cls): return [SafranSnowfallVariable.keyword(), SafranRainfallVariable.keyword()] @property @@ -95,7 +95,7 @@ class SafranTemperatureVariable(AbstractVariable): UNIT = 'Celsius Degrees' @classmethod - def keyword(cls, nb_consecutive_days=3): + def keyword(cls): return 'Tair' def __init__(self, variable_array): diff --git a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py index c709209ff37f8e3c8a8a14547727129d3af3e03a..8ef168bd58450d77cd6d01c18d3c6280793dd631 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py @@ -38,9 +38,8 @@ List[AbstractStudy]: break -def study_iterator(study_class, only_first_one=False, verbose=True, altitudes=None, nb_consecutive_days=None) -> List[AbstractStudy]: +def study_iterator(study_class, only_first_one=False, verbose=True, altitudes=None, nb_consecutive_days=3) -> List[AbstractStudy]: # Default argument - nb_consecutive_days = 1 if nb_consecutive_days is None else nb_consecutive_days altis = [1800] if altitudes is None else altitudes if verbose: @@ -49,8 +48,7 @@ def study_iterator(study_class, only_first_one=False, verbose=True, altitudes=No if verbose: print('alti: {}, nb_day: {} '.format(alti, nb_consecutive_days), end='') - study = study_class(altitude=alti, - nb_consecutive_days=nb_consecutive_days) + study = study_class(altitude=alti) if verbose: massifs = study.altitude_to_massif_names[alti] diff --git a/test/test_experiment/test_SCM_study.py b/test/test_experiment/test_SCM_study.py index 05c0e83d9dfe22d94bae87ac11a5c729ea7690cb..0379f390dad5b87968d45321dc8b903eaf3e61d3 100644 --- a/test/test_experiment/test_SCM_study.py +++ b/test/test_experiment/test_SCM_study.py @@ -32,7 +32,6 @@ class TestSCMAllStudy(unittest.TestCase): for study in study_iterator_global(study_classes=SCM_STUDIES, only_first_one=False, verbose=False, altitudes=sample(set(ALL_ALTITUDES), k=nb_sample), nb_days=nb_days): - self.assertTrue('day' in study.variable_name) first_path_file = study.ordered_years_and_path_files[0][0] variable_object = study.load_variable_object(path_file=first_path_file) self.assertEqual((365, 263), variable_object.daily_time_serie_array.shape,