From f9573477c5d0e214b628e8e491173d833cf92cdb Mon Sep 17 00:00:00 2001 From: Le Roux Erwan <erwan.le-roux@irstea.fr> Date: Fri, 8 Mar 2019 09:20:14 +0100 Subject: [PATCH] [SCM] fix issue of aggregation for temperatures. improve test. --- .../meteo_france_SCM_study/safran/safran_variable.py | 3 +-- .../study_visualization/main_study_visualizer.py | 6 ++++-- .../test_meteo_france_SCM_study/test_SCM_study.py | 1 + test/test_utils.py | 10 +++++++--- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/experiment/meteo_france_SCM_study/safran/safran_variable.py b/experiment/meteo_france_SCM_study/safran/safran_variable.py index 41a24eb3..e0efb29c 100644 --- a/experiment/meteo_france_SCM_study/safran/safran_variable.py +++ b/experiment/meteo_france_SCM_study/safran/safran_variable.py @@ -57,9 +57,8 @@ class SafranTemperatureVariable(AbstractVariable): super().__init__(dataset, altitude) # Temperature are in K, I transform them as celsius self.hourly_temperature = np.array(dataset.variables[keyword]) - 273.15 - print(self.hourly_temperature.shape) nb_days = len(self.hourly_temperature) // 24 - self.daily_temperature = [np.mean(self.hourly_temperature[24 * i:24 * (i + 1)]) for i in range(nb_days)] + self.daily_temperature = [np.mean(self.hourly_temperature[24 * i:24 * (i + 1)], axis=0) for i in range(nb_days)] @property diff --git a/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py index c317b9d3..1d5f0a3c 100644 --- a/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py +++ b/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py @@ -37,7 +37,8 @@ def extended_visualization(): only_first_one = True for study_class in SCM_EXTENDED_STUDIES[-1:]: for study in study_iterator(study_class, only_first_one=only_first_one): - study_visualizer = StudyVisualizer(study, save_to_file=save_to_file, only_one_graph=True, plot_block_maxima_quantiles=False) + study_visualizer = StudyVisualizer(study, save_to_file=save_to_file, only_one_graph=True, + plot_block_maxima_quantiles=False) # study_visualizer.visualize_all_mean_and_max_graphs() study_visualizer.visualize_all_experimental_law() # for study_class in SCM_EXTENDED_STUDIES[:]: @@ -48,11 +49,12 @@ def extended_visualization(): def annual_mean_vizu_compare_durand_study(): - for study_class in [SafranPrecipitation, SafranSnowfall, SafranTemperature][1:]: + for study_class in [SafranPrecipitation, SafranSnowfall, SafranTemperature][2:]: study = study_class(altitude=1800, year_min=1958, year_max=2002) study_visualizer = StudyVisualizer(study) study_visualizer.visualize_annual_mean_values() + def normal_visualization(): save_to_file = False only_first_one = True diff --git a/test/test_experiment/test_meteo_france_SCM_study/test_SCM_study.py b/test/test_experiment/test_meteo_france_SCM_study/test_SCM_study.py index 71bf3433..96d46e9c 100644 --- a/test/test_experiment/test_meteo_france_SCM_study/test_SCM_study.py +++ b/test/test_experiment/test_meteo_france_SCM_study/test_SCM_study.py @@ -32,6 +32,7 @@ class TestSCMStudy(unittest.TestCase): for study in load_scm_studies(): time_serie = study.year_to_daily_time_serie_array[1958] self.assertTrue(time_serie.ndim == 2, msg='for {} ndim={}'.format(study.__repr__(), time_serie.ndim)) + self.assertTrue(time_serie.shape[1] in [21, 23]) self.assertTrue(len(time_serie) in [365, 366], msg="current time serie length for {} is {}".format(study.__repr__(), len(time_serie))) diff --git a/test/test_utils.py b/test/test_utils.py index 3fb317c8..f6f865be 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -13,7 +13,8 @@ from extreme_estimator.extreme_models.max_stable_model.abstract_max_stable_model AbstractMaxStableModelWithCovarianceFunction, CovarianceFunction from extreme_estimator.extreme_models.max_stable_model.max_stable_models import Smith, BrownResnick, Schlather, \ Geometric, ExtremalT, ISchlather -from experiment.meteo_france_SCM_study.safran.safran import SafranSnowfall, Safran +from experiment.meteo_france_SCM_study.safran.safran import SafranSnowfall, Safran, SafranPrecipitation, \ + SafranTemperature from spatio_temporal_dataset.coordinates.spatial_coordinates.alps_station_3D_coordinates import \ AlpsStation3DCoordinatesWithAnisotropy from spatio_temporal_dataset.coordinates.spatial_coordinates.generated_spatial_coordinates import \ @@ -96,8 +97,11 @@ def load_test_spatiotemporal_coordinates(nb_points, nb_steps, train_split_ratio= def load_safran_studies(altitudes) -> List[Safran]: nb_days_list = [1] - return [SafranSnowfall(altitude=safran_altitude, nb_consecutive_days=nb_days) - for safran_altitude in altitudes for nb_days in nb_days_list] + safran_studies = [safran_class(altitude=safran_altitude, nb_consecutive_days=nb_days) + for safran_altitude in altitudes for nb_days in nb_days_list + for safran_class in [SafranSnowfall, SafranPrecipitation]] + safran_studies += [SafranTemperature(altitude) for altitude in altitudes] + return safran_studies def load_crocus_studies(altitudes) -> List[Crocus]: -- GitLab